xref: /aosp_15_r20/external/bcc/tests/python/test_shared_table.py (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard Worker#!/usr/bin/env python3
2*387f9dfdSAndroid Build Coastguard Worker# Copyright (c) 2016 Facebook, Inc.
3*387f9dfdSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License")
4*387f9dfdSAndroid Build Coastguard Worker
5*387f9dfdSAndroid Build Coastguard Workerimport ctypes as ct
6*387f9dfdSAndroid Build Coastguard Workerimport unittest
7*387f9dfdSAndroid Build Coastguard Workerfrom bcc import BPF
8*387f9dfdSAndroid Build Coastguard Worker
9*387f9dfdSAndroid Build Coastguard Workerclass TestSharedTable(unittest.TestCase):
10*387f9dfdSAndroid Build Coastguard Worker    def test_close_extern(self):
11*387f9dfdSAndroid Build Coastguard Worker        b1 = BPF(text=b"""BPF_TABLE_PUBLIC("array", int, int, table1, 10);""")
12*387f9dfdSAndroid Build Coastguard Worker
13*387f9dfdSAndroid Build Coastguard Worker        with BPF(text=b"""BPF_TABLE("extern", int, int, table1, 10);""") as b2:
14*387f9dfdSAndroid Build Coastguard Worker            t2 = b2[b"table1"]
15*387f9dfdSAndroid Build Coastguard Worker            t2[ct.c_int(1)] = ct.c_int(10)
16*387f9dfdSAndroid Build Coastguard Worker            self.assertEqual(len(t2), 10)
17*387f9dfdSAndroid Build Coastguard Worker
18*387f9dfdSAndroid Build Coastguard Worker        t1 = b1[b"table1"]
19*387f9dfdSAndroid Build Coastguard Worker        self.assertEqual(t1[ct.c_int(1)].value, 10)
20*387f9dfdSAndroid Build Coastguard Worker        self.assertEqual(len(t1), 10)
21*387f9dfdSAndroid Build Coastguard Worker
22*387f9dfdSAndroid Build Coastguard Workerif __name__ == "__main__":
23*387f9dfdSAndroid Build Coastguard Worker    unittest.main()
24