Commit f18215a8 authored by Hiro's avatar Hiro 🏄
Browse files

Test that filtered_out streams are excluded at the visualize step

parent d5331194
Loading
Loading
Loading
Loading
+55 −13
Original line number Diff line number Diff line
@@ -16,7 +16,8 @@ def absolute_data_path(relative_path=""):
DATA_DIR = absolute_data_path()

def test_create_data_frame_v3():
    path = DATA_DIR + "analyses/2021-01-01.op-hk5.onionperf.analysis.json.xz"
    path = DATA_DIR + "analyses/"
    filename = "2021-01-01.op-hk5.onionperf.analysis.json.xz"

    known_ttfbs = [4.134508, 1.129437, 11.376374, 4.29965, 1.49145]
    known_ttlbs = [34.725328, 11.817973, 18.613478, 26.635889, 11.187625]
@@ -36,9 +37,12 @@ def test_create_data_frame_v3():
    known_total_public_dls = 3

    tgen_viz = TGenVisualization()
    analysis = OPAnalysis.load(filename=path)
    tgen_viz.add_dataset([analysis], "test")
    tgen_viz._TGenVisualization__extract_data_frame()
    analyses = []
    analysis = OPAnalysis.load(filename=filename, input_prefix=path)
    analyses.append(analysis)
    tgen_viz.add_dataset(analyses, "test")
    tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False)


    onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')]
    public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')]
@@ -55,7 +59,8 @@ def test_create_data_frame_v3():


def test_create_data_frame_v3p1_filters():
    path = DATA_DIR + "analyses/2021-06-01.op-hk6a.onionperf.analysis.json.xz"
    path = DATA_DIR + "analyses/"
    filename = "2021-06-01.op-hk6a.onionperf.analysis.json.xz"

    known_ttfbs = [0.926961, 1.056154, 7.770001]
    known_ttlbs = [10.061804, 10.787324, 286.022849]
@@ -73,9 +78,12 @@ def test_create_data_frame_v3p1_filters():
                    'ECF1060A8597A846C0C705A1AE260EADEE93B50D']

    tgen_viz = TGenVisualization()
    analysis = OPAnalysis.load(filename=path)
    tgen_viz.add_dataset([analysis], "test")
    tgen_viz._TGenVisualization__extract_data_frame()
    analyses = []
    analysis = OPAnalysis.load(filename=filename, input_prefix=path)
    analyses.append(analysis)
    tgen_viz.add_dataset(analyses, "test")
    tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False)


    onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')]
    public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')]
@@ -93,7 +101,8 @@ def test_create_data_frame_v3p1_filters():


def test_create_data_frame_v3p1_no_filters():
    path = DATA_DIR + "analyses/2021-06-01.op-hk6a.onionperf.analysis_no_filters.json.xz"
    path = DATA_DIR + "analyses/"
    filename = "2021-06-01.op-hk6a.onionperf.analysis_no_filters.json.xz"
    known_ttfbs = [0.926961, 1.056154, 1.083673, 1.098328, 1.191881, 7.770001]
    known_ttlbs = [9.095904, 10.061804, 10.787324, 10.992984, 20.517444, 286.022849]

@@ -118,13 +127,14 @@ def test_create_data_frame_v3p1_no_filters():
                    'A96DA63E4415E776FBFCCF3DA7154C804534B6E7']

    tgen_viz = TGenVisualization()
    analysis = OPAnalysis.load(filename=path)
    tgen_viz.add_dataset([analysis], "test")
    tgen_viz._TGenVisualization__extract_data_frame()
    analyses = []
    analysis = OPAnalysis.load(filename=filename, input_prefix=path)
    analyses.append(analysis)
    tgen_viz.add_dataset(analyses, "test")
    tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False)

    onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')]
    public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')]

    assert_equals(sorted(tgen_viz.data["time_to_first_byte"].to_list()), sorted(known_ttfbs))
    assert_equals(sorted(tgen_viz.data["time_to_last_byte"].to_list()), sorted(known_ttlbs))
    assert_equals(tgen_viz.data["filesize_bytes"].unique().tolist(), known_filesize_bytes)
@@ -133,3 +143,35 @@ def test_create_data_frame_v3p1_no_filters():
    assert_equals(len(onion_downloads), known_total_onion_dls)
    assert_equals(len(public_downloads), known_total_public_dls)
    assert_equals(sorted(tgen_viz.data["guard"].dropna().to_list()), sorted(known_guards))

def test_exclude_cbt_option():
    path = DATA_DIR + "analyses/"
    filename = "2021-06-01.op-hk6a.onionperf.analysis.json.xz"

    tgen_viz = TGenVisualization()
    analyses = []
    analysis = OPAnalysis.load(filename=filename, input_prefix=path)
    analyses.append(analysis)
    tgen_viz.add_dataset(analyses, "test")
    tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False)
    circuit_id = "181935"
    measurements = analysis.json_db['data']['op-hk6a']['tor']['circuits'][circuit_id]
    assert_false(measurements['cbt_set'])
    assert_true(measurements['filtered_out'])
    fingerprints = []
    for guard in measurements['current_guards']:
        fg = "${}~{}".format(guard['fingerprint'], guard['nickname'])
        fingerprints.append(fg)
    check = False
    control = ['$0C8CDE060281DDA38F69F1765049D16D9DE9320E~vulgarismagistralis',
               '$A96DA63E4415E776FBFCCF3DA7154C804534B6E7~3735928559',
               '$248A96B2A88A3EAB14699B9096CE6ABF77D0606A~Illuminati']

    check_ctl = False
    for fs in tgen_viz.data["fingerprints"]:
        if fs == fingerprints:
            check = True
        if fs == control:
            check_ctl = True
    assert_false(check)
    assert_true(check_ctl)