E2EE: Adaptation layer API
[platform/core/test/security-tests.git] / README
diff --git a/README b/README
index c92cbb2..fe33548 100644 (file)
--- a/README
+++ b/README
@@ -9,22 +9,16 @@ security-tests is repository for testing packages from domain Security.
 The security-tests repository is designed for testing packages mentioned below
 with binaries provided for testing them:
 
-libsmack
-  libsmack-test
-libprivilege-control
-  libprivilege-control-test
-security-server
-  security-server-tests-client-smack
-  security-server-tests-stress
-  security-server-tests-server
-  security-server-tests-api-speed
-  security-server-tests-password
-  security-server-tests-privilege
-  security-server-tests-dbus
 security-manager
   security-manager-tests
 cynara
   cynara-test
+ode
+  ode-tests
+
+There are also inner-tests for testing complex security-tests framework
+mechanisms with binary:
+  security-tests-inner-test
 
 ==HOW TO RUN===================================================================
 
@@ -80,6 +74,22 @@ dpl-test-framework
 Adding/removing those macro calls will add/remove test cases they provide. To
 change tests, change body of those macro calls. Registered tests are run within
 group alphabetically.
+Those macros allow additional arguments which are classes with mandatory
+methods:
+* (constructor) ()
+    Called while registering test.
+    Should not throw any exceptions
+* init(const std::string &testName)
+    Called before test case function in order of classes passed to macro.
+    Should not be forked.
+    testName argument is name of the test (first macro argument).
+* finish(void)
+    called after test case function in reversed order of classes passed to
+    macro.
+    Should not be forked.
+Created instances of those classes may be accessed from within test case body
+as argument of test case funtion is
+  std::tuple<ClassesPassed> &optionalArgsTuple
 
 dpl-test-framework
   test_runner.h
@@ -108,12 +118,14 @@ tests-common
           Same as RUNNER_TEST_CHILD but run only with smack disabled.
     RUNNER_MULTIPROCESS_TEST_SMACK
           Same as RUNNER_TEST_MULTIPROCESS but run only with smack enabled.
-    RUNNER_MULTIPROCESS_TEST_NOSMACK
-          Same as RUNNER_TEST_MULTIPROCESS but run only with smack disabled.
 
 --Assert macros----------------------------------------------------------------
 Used within test registering macros.
 
+First failed assertion throws test failed exception. If another assertions
+fail, information about fail conditions and backtrace is cumulated and
+presented together with already thrown exception message.
+
 dpl-test-framework
   test_runner.h
     RUNNER_ASSERT_MSG
@@ -148,6 +160,25 @@ dpl-test-framework
     RUNNER_ERROR_MSG
           Print error message using red color.
 
+--Defer macros-----------------------------------------------------------------
+Used to defer throwing TestException exceptions (TestFailed, TestIgnored)
+by catching them and rethrowing later. This mechanism can help in breaking
+test and passing test result from places where throwing exceptions
+is not allowed
+
+dpl-test-framework
+  test_runner.h
+    RUNNER_DEFER_TRYCATCH
+          Catches thrown TestException exceptions and stores them in TestRunner
+          structures for later use. This macro works only inside deffered scope
+          defined by RUNNER_DEFER_SCOPE, otherwise it won't catch exceptions
+    RUNNER_DEFER_SCOPE
+          Defines deferred scope. All RUNNER_DEFER_TRYCATCH macros used inside
+          the scope catch and save TestException exceptions. After scope is left
+          all saved exceptions take part in setting result of test. If there
+          is no any uncaught exception then additionally first of saved
+          exceptions is thrown.
+
 --Collectors-------------------------------------------------------------------
 Collectors are classes which collect test results. Each class does it differently.
 Collectors can be registered by --output parameter (see HOW TO RUN section) but
@@ -204,6 +235,30 @@ RUNNER_CHILD_TEST_NOSMACK(bar_file2_dropped_root)
                             "Wrong errno on opening " << " file");
 }
 
+class Env
+{
+public:
+    Env() { ... }
+    void init(const std::string &testName) { ... }
+    void finish() { ... }
+    void doEnv() { ... }
+};
+
+class Restore
+{
+public:
+    Restore() { ... }
+    void init(const std::string &testName) { ... }
+    void finish() { ... }
+    void doRestore() { ... }
+};
+
+RUNNER_TEST(bar_optional_args, Env, Restore)
+{
+    std::get<0>(optionalArgsTuple).doEnv();
+    std::get<1>(optionalArgsTuple).doRestore();
+}
+
 int main(int argc, char *argv[])
 {
     SummaryCollector::Register();