コード例 #1
0
ファイル: test_p4c_bm.py プロジェクト: stoderica/p4c-bm
def test_gen_of_pd(tmpdir):
    input_p4 = os.path.join("tests", "p4_programs", "l2_openflow.p4")
    assert os.path.exists(input_p4)
    p = str(tmpdir)
    h = HLIR(input_p4)
    more_primitives = json.loads(
        resource_string(__name__,
                        os.path.join('..', 'p4c_bm', 'primitives.json')))
    h.add_primitives(more_primitives)
    assert h.build()
    json_dict = gen_json.json_dict_create(h)
    assert json_dict

    # hack the args
    from argparse import Namespace
    args = Namespace(plugin_list=["of"],
                     openflow_mapping_dir=os.path.join("tests", "of_mapping"),
                     openflow_mapping_mod="l2_openflow")

    gen_pd.generate_pd_source(json_dict, p, "pref", args)
    # now we check for all generated files
    of_path = tmpdir.join("plugin", "of")
    inc_path = of_path.join("inc")
    src_path = of_path.join("src")
    assert inc_path.ensure_dir()
    assert src_path.ensure_dir()
    expected_inc_path = "p4c_bm/plugin/of/inc"
    expected_inc = [f for f in os.listdir(expected_inc_path)]
    expected_src_path = "p4c_bm/plugin/of/src/"
    expected_src = [f for f in os.listdir(expected_src_path)]
    assert set(expected_inc) == set([f.basename for f in inc_path.listdir()])
    assert set(expected_src) == set([f.basename for f in src_path.listdir()])
コード例 #2
0
ファイル: test_p4c_bm.py プロジェクト: Lineson/p4c-bm
def test_gen_of_pd(tmpdir):
    input_p4 = os.path.join("tests", "p4_programs", "l2_openflow.p4")
    assert os.path.exists(input_p4)
    p = str(tmpdir)
    h = HLIR(input_p4)
    more_primitives = json.loads(
        resource_string(__name__,
                        os.path.join('..', 'p4c_bm', 'primitives.json'))
    )
    h.add_primitives(more_primitives)
    assert h.build()
    json_dict = gen_json.json_dict_create(h)
    assert json_dict

    # hack the args
    from argparse import Namespace
    args = Namespace(plugin_list=["of"],
                     openflow_mapping_dir=os.path.join("tests", "of_mapping"),
                     openflow_mapping_mod="l2_openflow")

    gen_pd.generate_pd_source(json_dict, p, "pref", args)
    # now we check for all generated files
    of_path = tmpdir.join("plugin", "of")
    inc_path = of_path.join("inc")
    src_path = of_path.join("src")
    assert inc_path.ensure_dir()
    assert src_path.ensure_dir()
    expected_inc_path = "p4c_bm/plugin/of/inc"
    expected_inc = [f for f in os.listdir(expected_inc_path)]
    expected_src_path = "p4c_bm/plugin/of/src/"
    expected_src = [f for f in os.listdir(expected_src_path)]
    assert set(expected_inc) == set([f.basename for f in inc_path.listdir()])
    assert set(expected_src) == set([f.basename for f in src_path.listdir()])
コード例 #3
0
ファイル: test_p4c_bm.py プロジェクト: hanw/p4c-bm
def test_gen_pd(input_p4, tmpdir):
    assert os.path.exists(input_p4)
    p = str(tmpdir)
    h = HLIR(input_p4)
    assert h.build()
    json_dict = gen_json.json_dict_create(h)
    assert json_dict
    gen_pd.generate_pd_source(json_dict, p, "pref")
    # now we check for all generated files
    inc_path = tmpdir.join("pd")
    src_path = tmpdir.join("src")
    assert inc_path.ensure_dir()
    assert src_path.ensure_dir()
    expected_inc_path = "p4c_bm/templates/pd/"
    expected_inc = [f for f in os.listdir(expected_inc_path)]
    expected_src_path = "p4c_bm/templates/src/"
    expected_src = [f for f in os.listdir(expected_src_path)]
    assert set(expected_inc) == set([f.basename for f in inc_path.listdir()])
    assert set(expected_src) == set([f.basename for f in src_path.listdir()])
コード例 #4
0
ファイル: test_p4c_bm.py プロジェクト: stoderica/p4c-bm
def test_gen_pd(input_p4, tmpdir):
    assert os.path.exists(input_p4)
    p = str(tmpdir)
    h = HLIR(input_p4)
    more_primitives = json.loads(
        resource_string(__name__,
                        os.path.join('..', 'p4c_bm', 'primitives.json')))
    h.add_primitives(more_primitives)
    assert h.build()
    json_dict = gen_json.json_dict_create(h)
    assert json_dict
    gen_pd.generate_pd_source(json_dict, p, "pref")
    # now we check for all generated files
    inc_path = tmpdir.join("pd")
    src_path = tmpdir.join("src")
    assert inc_path.ensure_dir()
    assert src_path.ensure_dir()
    expected_inc_path = "p4c_bm/templates/pd/"
    expected_inc = [f for f in os.listdir(expected_inc_path)]
    expected_src_path = "p4c_bm/templates/src/"
    expected_src = [f for f in os.listdir(expected_src_path)]
    assert set(expected_inc) == set([f.basename for f in inc_path.listdir()])
    assert set(expected_src) == set([f.basename for f in src_path.listdir()])