| describe('compile', function() | |
| local ffi = require('ffi') | |
| local bpf = require('bpf') | |
| it('can compile socket filter', function() | |
| -- Create mock BPF map | |
| local mock_map = { | |
| max_entries = 16, | |
| key_type = ffi.typeof('uint64_t [1]'), | |
| val_type = ffi.typeof('uint64_t [1]'), | |
| fd = 1, | |
| __map = true, | |
| } | |
| -- Compile small code example | |
| local code = bpf(function () | |
| local proto = pkt.ip.proto | |
| xadd(mock_map[proto], 1) | |
| end) | |
| assert.truthy(code) | |
| assert.same(type(code), 'table') | |
| assert.same(code.pc, 15) | |
| end) | |
| end) |