fn do_run_loop_raw_test()

in src/reconfig.rs [646:683]


    fn do_run_loop_raw_test(requests: &str, exp_responses: &[Response], exp_log: &[String])
        -> Fallible<()> {
        let fs: MockFS = Default::default();

        let reader = io::BufReader::new(requests.as_bytes());

        // Using a file is the lazy way of getting a concurrently-accessible buffer across the
        // reconfiguration threads.
        let mut file = tempfile::tempfile().unwrap();

        let result = {
            let output = file.try_clone().unwrap();
            let writer = io::BufWriter::new(output);
            run_loop(reader, writer, 1, &fs)
        };

        file.seek(io::SeekFrom::Start(0)).unwrap();
        let mut output = io::BufReader::new(file);
        let stream = serde_json::Deserializer::from_reader(&mut output).into_iter::<Response>();
        let mut responses = HashMap::new();
        for response in stream {
            let response = response.unwrap();
            responses.insert(response.id.clone(), response);
        }

        let exp_responses: HashMap<Option<String>, FuzzyResponse> =
            exp_responses.iter().map(|v| (v.id.clone(), FuzzyResponse::from(v))).collect();
        assert_eq!(exp_responses.len(), responses.len());
        for response in responses {
            assert_eq!(
                exp_responses.get(&response.0).unwrap_or_else(
                    || panic!("No expected response id={:?}, error={:?}", response.0, response.1)),
                &response.1);
        }
        assert_eq!(exp_log, fs.get_log().as_slice());

        result
    }