| describe('elf reader', function() |
| |
| local ok, elf = pcall(require, 'bpf.elf') |
| if not ok then return end |
| |
| it('should handle C library', function() |
| -- Open libc |
| local sh = elf.open('/bin/sh') |
| assert.truthy(sh) |
| -- Find load address |
| local base = sh:loadaddr() |
| assert.truthy(base) |
| -- Find something from ISO C |
| local malloc_addr = sh:resolve('malloc') |
| assert.truthy(malloc_addr) |
| -- Find something that doesn't exist |
| local bad_addr = sh:resolve('thisnotexists') |
| assert.falsy(bad_addr) |
| end) |
| it('should fail on bad input', function() |
| assert.falsy(elf.open(nil)) |
| assert.falsy(elf.open('/tmp'):loadaddr()) |
| end) |
| end) |