Commit 395d1146 authored by Matheus Marchini's avatar Matheus Marchini

[test] run runtime tests on CI

parent dbfb93c8
#!/bin/bash
set -e
STATIC_LINKING=${STATIC_LINKING:-OFF}
......@@ -10,5 +12,7 @@ shift 2
make "$@"
if [ $RUN_TESTS = 1 ]; then
./tests/bpftrace_test $TEST_ARGS
set +e
./tests/bpftrace_test $TEST_ARGS;
make runtime-tests;
fi
......@@ -75,5 +75,9 @@ configure_file(runtime-tests.sh runtime-tests.sh COPYONLY)
configure_file(main.py main.py COPYONLY)
configure_file(parser.py parser.py COPYONLY)
configure_file(utils.py utils.py COPYONLY)
file(COPY runtime DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(GLOB runtime_tests runtime/*)
foreach(runtime_test ${runtime_tests})
configure_file(${runtime_test} ${CMAKE_CURRENT_BINARY_DIR}/runtime COPYONLY)
endforeach()
add_custom_target(runtime-tests COMMAND ./runtime-tests.sh)
add_test(NAME runtime_test COMMAND ./runtime-tests.sh)
......@@ -30,6 +30,9 @@ def main():
print(str(total_tests) + ' tests [fail ' + str(total_fail) + ']')
print('Done in ' + str(timedelta(seconds=elapsed)) )
if total_fail > 0:
exit(1)
if __name__ == "__main__":
main()
......@@ -24,7 +24,8 @@ EXPECT A
TIMEOUT 5
NAME str
RUN bpftrace -e 'i:ms:1 { system("echo 10"); } k:sys_execve { printf("P: %s\n", str(arg0)); exit();}'
RUN bpftrace -e 'k:sys_execve { printf("P: %s\n", str(arg0)); exit();}'
BEFORE sleep 1s && /bin/sh -c 'exit 0' &
EXPECT P: /bin/sh
TIMEOUT 5
......@@ -54,6 +55,7 @@ NAME avg
RUN bpftrace -e 'kprobe:vfs_read { @bytes[comm] = avg(arg2); exit();}'
EXPECT @.*\[.*\]\:\s[0-9]*
TIMEOUT 5
BEFORE sleep 1 && sleep 1 &
NAME min
RUN bpftrace -e 'kprobe:vfs_read { @bytes[comm] = min(arg2); exit();}'
......@@ -64,19 +66,23 @@ BEFORE sleep 1 && sleep 1 &
NAME max
RUN bpftrace -e 'kprobe:vfs_read { @bytes[comm] = max(arg2); exit();}'
EXPECT @.*\[.*\]\:\s[0-9]*
BEFORE sleep 1 && sleep 1 &
TIMEOUT 5
NAME stats
RUN bpftrace -e 'kprobe:vfs_read { @bytes[comm] = stats(arg2); exit();}'
EXPECT @.*\[.*\]\:\scount\s[0-9]*\,\saverage\s[0-9]*\,\stotal\s[0-9]*
TIMEOUT 5
BEFORE sleep 1 && sleep 1 &
NAME hist
RUN bpftrace -e 'kretprobe:vfs_read { @bytes = hist(retval); exit();}'
EXPECT @bytes:\s\n\n\[.*\,\s.*\]?\)?\s
BEFORE sleep 1 && sleep 1 &
TIMEOUT 5
NAME lhist
RUN bpftrace -e 'kretprobe:vfs_read { @bytes = lhist(retval, 0, 10000, 1000); exit()}'
EXPECT @bytes:\s\n\n\(?\[?.*
TIMEOUT 5
BEFORE sleep 1 && sleep 1 &
......@@ -48,11 +48,13 @@ BEFORE (sleep 1; /bin/bash -c echo) &
NAME tracepoint
RUN bpftrace -e 'tracepoint:syscalls:sys_exit_nanosleep { printf("SUCCESS '$test' %d\n", gid); exit(); }'
EXPECT SUCCESS tracepoint [0-9][0-9]*
BEFORE sleep 1 && sleep 1 &
TIMEOUT 5
NAME tracepoint_short_name
RUN bpftrace -e 't:syscalls:sys_exit_nanosleep { printf("SUCCESS '$test' %d\n", gid); exit(); }'
EXPECT SUCCESS tracepoint_short_name [0-9][0-9]*
BEFORE sleep 1 && sleep 1 &
TIMEOUT 5
NAME profile
......@@ -76,12 +78,14 @@ EXPECT @syscalls\:\s[0-9]*
TIMEOUT 5
NAME software
RUN bpftrace -e 'software:faults:100 { @[comm] = count(); exit();}'
RUN bpftrace -e 'software:faults:1 { @[comm] = count(); exit();}'
BEFORE sleep 2 && sleep 1 &
EXPECT @\[.*\]\:\s[0-9]*
TIMEOUT 5
NAME hardware
RUN bpftrace -e 'hardware:cache-misses:1000000 { @[pid] = count(); exit(); }'
RUN bpftrace -e 'hardware:cache-misses:10 { @[pid] = count(); exit(); }'
BEFORE sleep 2 && sleep 1 &
EXPECT @\[.*\]\:\s[0-9]*
TIMEOUT 5
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment