[Documentation] How to write test cases
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Tue, 12 Jun 2018 04:41:26 +0000 (13:41 +0900)
committer문지중/동작제어Lab(SR)/Principal Engineer/삼성전자 <jijoong.moon@samsung.com>
Tue, 12 Jun 2018 07:36:32 +0000 (16:36 +0900)
1. How to write gst-launch based test cases
2. How to write gtest based test cases

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Documentation/how-to-write-testcase.md [new file with mode: 0644]
README.md

diff --git a/Documentation/how-to-write-testcase.md b/Documentation/how-to-write-testcase.md
new file mode 100644 (file)
index 0000000..dafd05e
--- /dev/null
@@ -0,0 +1,42 @@
+# Case 1: gst-launch based test cases (bash unit test)
+
+1. If you don't have a corresponding testcase group, yet (subdirectory in nnstreamer.git/tests/)
+
+  - Create subdirectory in nnstreamer.git/tests/  
+  ```  
+  $ cd tests
+  $ mkdir new_test_group
+  ```
+  - Create the shell script for the group. It should be named as ```runTest.sh```. 
+  - Use the test API scripts located at ```tests/testAPI.sh```.
+  - The following is a template:
+  ```
+  #!/usr/bin/env bash
+  source ../testAPI.sh
+  
+  CASENUMBER1=1
+  CASENUMBER2=2
+    
+  gstTest "your gstreamer pipeline" $CASENUMBER1
+  # generating "$CASE1GOLDEN" and "$CASE1RESULT"
+  gstTest "your another pipeline" $CASENUMBER2
+  # generating "$CASE2GOLDEN" and "$CASE2RESULT"
+  
+  compareAll $CASE1GOLDEN $CASE1RESULT $CASENUMBER1
+  compareAll $CASE2GOLDEN $CASE2RESULT $CASENUMBER2
+  
+  report
+  ```
+  - Then the framework will do the rest for you.
+
+2. If you already have a corresponding test case group, add your cases in the corresponding "runTest.sh" in the group subdirectory.
+
+
+# Case 2: gtest test cases (C/C++ unit test)
+
+If your code is not supposed to be tested via gstreamer CLI pipeline, but with a C/C++ native calls, you are supposed to use gtest framework.
+
+Refer to ```nnstreamer.git/common/test/*``` to write your own gtest test cases.
+
+Then, add your gtest executable to packaging/nnstreamer.spec (refer to the lines with ```unittest_common```) so that we can run the unit test during gbs build.
+
index 530b952..73be5bc 100644 (file)
--- a/README.md
+++ b/README.md
@@ -95,6 +95,8 @@ $ cd tensor_convert/test
 $ ./runTest.sh
 ```
 
+## [How to write Test Cases](Documentation/how-to-write-testcase.md)
+
 ## Usage Examples
 
 The implementation is not there yet for using neural network frameworks.