You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: admission_validation.rs
    path of file: ./repos/trow/tests
    
    the code of the file until where you have to start completion: #[cfg(test)]
mod common;

#[cfg(test)]
mod validation_tests {
    use std::collections::HashMap;
    use std::process::{Child, Command};
    use std::thread;
    use std::time::Duration;

    use environment::Environment;
    use k8s_openapi::api::core::v1::Pod;
    use kube::core::admission::AdmissionReview;
    use reqwest::{header, StatusCode};
    use trow::trow_server::ImageValidationConfig;

    use crate::common;

    const PORT: &str = "39366";
    const HOST: &str 
    
    async fn test_runner() {
        let client = reqwest::Client::new();

        //Had issues with stopping and starting trow causing test fails.
        //It might be possible to improve things with a thread_local
        let _trow = start_trow().await;
        validate_example(&client).await;

        // explicitly allowed
        test_image(&client, "trow.test/am/test:tag", true).await;
        test_image(&client, "k8s.gcr.io/metrics-server-amd64:v0.2.1", true).await;
        test_image(&client, "docker.io/amouat/myimage:test", true).await;
        test_image(&client, "localhost:8000/hello/world", true).await;

        // explicitly denied
        test_image(&client, "localhost:8000/secret/shine-box", false).await;

        // default denied
        test_image(&client, "virus.land.cc/not/suspect", false).await;

        // invalid image ref
        // Some very weird refs are actually technically valid, like `example.com` !
        test_image(&client, "hello human", false).await;
        test_image(&client, "docker.io/voyager@jasper-byrne", false).await;
    }