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