add test for dump_func method
authorRich Lane <rlane@bigswitch.com>
Tue, 15 Sep 2015 00:21:39 +0000 (17:21 -0700)
committerRich Lane <rlane@bigswitch.com>
Tue, 15 Sep 2015 17:33:00 +0000 (10:33 -0700)
tests/CMakeLists.txt
tests/python/CMakeLists.txt [new file with mode: 0644]
tests/python/test_dump_func.py [new file with mode: 0755]
tests/wrapper.sh.in

index 8a10a0a..bd66f84 100644 (file)
@@ -5,3 +5,4 @@ configure_file(wrapper.sh.in "${CMAKE_CURRENT_BINARY_DIR}/wrapper.sh" @ONLY)
 set(TEST_WRAPPER ${CMAKE_CURRENT_BINARY_DIR}/wrapper.sh)
 
 add_subdirectory(cc)
+add_subdirectory(python)
diff --git a/tests/python/CMakeLists.txt b/tests/python/CMakeLists.txt
new file mode 100644 (file)
index 0000000..911abbf
--- /dev/null
@@ -0,0 +1,5 @@
+# Copyright (c) PLUMgrid, Inc.
+# Licensed under the Apache License, Version 2.0 (the "License")
+
+add_test(NAME py_test_dump_func WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+  COMMAND ${TEST_WRAPPER} py_dump_func simple ${CMAKE_CURRENT_SOURCE_DIR}/test_dump_func.py)
diff --git a/tests/python/test_dump_func.py b/tests/python/test_dump_func.py
new file mode 100755 (executable)
index 0000000..a8ca505
--- /dev/null
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+# Copyright (c) PLUMgrid, Inc.
+# Licensed under the Apache License, Version 2.0 (the "License")
+
+# test program for the 'dump_func' method
+
+from bcc import BPF
+from unittest import main, TestCase
+
+class TestDumpFunc(TestCase):
+    def test_return(self):
+        b = BPF(text="""
+            int entry(void)
+            {
+                return 1;
+            }""")
+
+        self.assertEquals(
+            "\xb7\x00\x00\x00\x01\x00\x00\x00" +
+            "\x95\x00\x00\x00\x00\x00\x00\x00",
+            b.dump_func("entry"))
+
+if __name__ == "__main__":
+    main()
index 6175799..49d49be 100755 (executable)
@@ -39,6 +39,10 @@ function sudo_run() {
   sudo bash -c "PYTHONPATH=$PYTHONPATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH $cmd $1 $2"
   return $?
 }
+function simple_run() {
+  PYTHONPATH=$PYTHONPATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH $cmd $1 $2
+  return $?
+}
 
 case $kind in
   namespace)
@@ -47,6 +51,9 @@ case $kind in
   sudo)
     sudo_run $@
     ;;
+  simple)
+    simple_run $@
+    ;;
   *)
     echo "Invalid kind $kind"
     exit 1