Ejemplo n.º 1
0
def test_measure_loop_end(_, __, ___, ____, _____, ______, experiment_config,
                          db_experiment):
    """Tests that measure_loop stops when there is nothing left to measure. In
    this test, there is nothing left to measure on the first call."""

    measure_manager.measure_loop(
        experiment_config, 100,
        detailed_coverage_data_utils.DetailedCoverageData())
Ejemplo n.º 2
0
def test_measure_all_trials_not_ready(mocked_rsync, mocked_ls, mocked_manager,
                                      experiment):
    """Test running measure_all_trials before it is ready works as intended."""
    mocked_ls.return_value = new_process.ProcessResult(1, '', False)
    assert measure_manager.measure_all_trials(
        experiment_utils.get_experiment_name(), MAX_TOTAL_TIME,
        test_utils.MockPool(), mocked_manager, queue.Queue(),
        detailed_coverage_data_utils.DetailedCoverageData())
    assert not mocked_rsync.called
Ejemplo n.º 3
0
def test_measure_all_trials_no_more(mocked_directories_have_same_files,
                                    mocked_execute, mocked_manager):
    """Test measure_all_trials does what is intended when the experiment is
    done."""
    mocked_directories_have_same_files.return_value = True
    mocked_execute.return_value = new_process.ProcessResult(0, '', False)
    mock_pool = test_utils.MockPool()
    assert not measure_manager.measure_all_trials(
        experiment_utils.get_experiment_name(), MAX_TOTAL_TIME, mock_pool,
        mocked_manager, queue.Queue(),
        detailed_coverage_data_utils.DetailedCoverageData())
Ejemplo n.º 4
0
def main():
    """Measure the experiment."""
    initialize_logs()
    multiprocessing.set_start_method('spawn')

    experiment_name = experiment_utils.get_experiment_name()

    try:
        measure_loop(experiment_name, int(sys.argv[1]),
                     detailed_coverage_data_utils.DetailedCoverageData())
    except Exception as error:
        logs.error('Error conducting experiment.')
        raise error
Ejemplo n.º 5
0
def measure_main(experiment_config):
    """Do the continuously measuring and the final measuring."""
    initialize_logs()
    logger.info('Start measuring.')

    # Create data frame container for segment and function coverage info.
    detailed_coverage_data = (
        detailed_coverage_data_utils.DetailedCoverageData())

    # Start the measure loop first.
    experiment = experiment_config['experiment']
    max_total_time = experiment_config['max_total_time']
    measure_loop(experiment, max_total_time, detailed_coverage_data)

    # Clean up resources.
    gc.collect()

    # Do the final measuring and store the coverage data.
    coverage_utils.generate_coverage_reports(experiment_config)

    # Generate segment and function coverage CSV files.
    detailed_coverage_data.generate_csv_files()

    logger.info('Finished measuring.')
Ejemplo n.º 6
0
def test_measure_loop_loop_until_end(mocked_measure_all_trials, _, __, ___,
                                     ____, _____, experiment_config,
                                     db_experiment):
    """Test that measure loop will stop measuring when all trials have ended. In
    this test, there is more to measure for a few iterations, then the mocked
    functions will indicate that there is nothing left to measure."""
    call_count = 0
    # Scheduler is running.
    loop_iterations = 6

    def mock_measure_all_trials(*args, **kwargs):
        # Do the assertions here so that there will be an assert fail on failure
        # instead of an infinite loop.
        nonlocal call_count
        call_count += 1
        if call_count >= loop_iterations:
            return False
        return True

    mocked_measure_all_trials.side_effect = mock_measure_all_trials
    measure_manager.measure_loop(
        experiment_config, 100,
        detailed_coverage_data_utils.DetailedCoverageData())
    assert call_count == loop_iterations