예제 #1
0
def test_collect_metric_with_dead_container():
    id_ = hlp.dummy_container(2)
    stream = util.client().stats(id_, decode = True, stream = True)
    time.sleep(1)
    cgroup.collect_metric(stream)
    time.sleep(1)
    assert cgroup.collect_metric(stream) == None
    hlp.clean_up_container(id_)
예제 #2
0
def test_collect_metric_with_dead_container():
    id_ = hlp.dummy_container(2)
    stream = util.client().stats(id_, decode=True, stream=True)
    time.sleep(1)
    cgroup.collect_metric(stream)
    time.sleep(1)
    assert cgroup.collect_metric(stream) == None
    hlp.clean_up_container(id_)
def test_executing_container():
    out_dir = tempfile.mkdtemp()
    cnt = exe.create_container(IMAGE, biobox_cfg(hlp.short_read_fastq()),
                               {"output": out_dir}, "default",
                               {"detach": False})
    id_ = cnt['Id']
    util.client().start(id_)
    util.client().wait(id_)
    assert funcy.get_in(util.client().inspect_container(id_),
                        ['State', 'ExitCode']) == 0
    assert os.path.isfile(os.path.join(out_dir, 'contigs.fa'))
    hlp.clean_up_container(id_)
예제 #4
0
def test_create_container_with_cgroup_data():
    # Currently {'cpuset' : "0"} is too hard to test because I don't know
    # how to get the CPU IDs for the machine being used for testing
    args = [{'cpu_shares' : 1}, {'mem_limit' : 10000000}]
    out_dir = tempfile.mkdtemp()
    for arg in args:
        cnt = exe.create_container(
                IMAGE,
                CONFIG,
                {"output" : out_dir},
                "default",
                arg)
        helper.clean_up_container(cnt['Id'])
예제 #5
0
def test_collect_metrics():
    id_ = hlp.dummy_container(10, False)
    stats = cgroup.collect_runtime_metrics(id_, interval=2)
    hlp.clean_up_container(id_)

    cgroup_time = funcy.rpartial(funcy.get_in, ['read'])

    timepoints = list(map(cgroup_time, stats))
    assert len(timepoints) >= 3
    assert len(timepoints) < 5

    duration = cgroup.time_diff_in_seconds(timepoints[0], timepoints[-1])
    assert duration >= 6
    assert duration < 10
def test_executing_container():
    out_dir = tempfile.mkdtemp()
    cnt = exe.create_container(
            IMAGE,
            biobox_cfg(hlp.short_read_fastq()),
            {"output" : out_dir},
            "default",
            {"detach" : False})
    id_ = cnt['Id']
    util.client().start(id_)
    util.client().wait(id_)
    assert funcy.get_in(util.client().inspect_container(id_), ['State', 'ExitCode']) == 0
    assert os.path.isfile(os.path.join(out_dir, 'contigs.fa'))
    hlp.clean_up_container(id_)
예제 #7
0
def test_collect_metrics():
    id_ = hlp.dummy_container(10, False)
    stats = cgroup.collect_runtime_metrics(id_, interval = 2)
    hlp.clean_up_container(id_)

    cgroup_time = funcy.rpartial(funcy.get_in, ['read'])

    timepoints = list(map(cgroup_time, stats))
    assert len(timepoints) >= 3
    assert len(timepoints)  < 5

    duration = cgroup.time_diff_in_seconds(timepoints[0], timepoints[-1])
    assert duration >= 6
    assert duration < 10
예제 #8
0
def test_collect_metric_with_running_container():
    id_ = hlp.dummy_container(10, False)
    stream = util.client().stats(id_, decode=True, stream=True)
    assert 'read' in cgroup.collect_metric(stream)
    util.client().kill(id_)
    hlp.clean_up_container(id_)
예제 #9
0
def test_did_container_succesfully_exit():
    id_ = hlp.dummy_container(0.01)
    assert ctn.did_exit_succcessfully(id_)
    hlp.clean_up_container(id_)
예제 #10
0
def test_is_container_running():
    id_ = hlp.dummy_container(10, False)
    time.sleep(0.1)
    assert ctn.is_running(id_)
    util.client().kill(id_)
    hlp.clean_up_container(id_)
예제 #11
0
def test_is_not_container_running():
    id_ = hlp.dummy_container('bad-argument')
    assert not ctn.is_running(id_)
    hlp.clean_up_container(id_)
예제 #12
0
def test_did_container_unssuccesfully_exit():
    id_ = hlp.dummy_container('bad-argument')
    assert not ctn.did_exit_succcessfully(id_)
    hlp.clean_up_container(id_)
예제 #13
0
def test_collect_metric_with_running_container():
    id_ = hlp.dummy_container(10, False)
    stream = util.client().stats(id_, decode = True, stream = True)
    assert 'read' in cgroup.collect_metric(stream)
    util.client().kill(id_)
    hlp.clean_up_container(id_)