COMPMID-557: Use embed_kernels by default, add some command line examples to run the tests

Change-Id: Ib3a856420d306bafdb7d18b5de5bc788825b8593
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/113498
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
diff --git a/SConstruct b/SConstruct
index 6eba392..34d18ff 100644
--- a/SConstruct
+++ b/SConstruct
@@ -49,7 +49,7 @@
     BoolVariable("opencl", "Enable OpenCL support", True),
     BoolVariable("neon", "Enable Neon support", False),
     BoolVariable("gles_compute", "Enable OpenGL ES Compute Shader support", False),
-    BoolVariable("embed_kernels", "Embed OpenCL kernels and OpenGL ES compute shaders in library binary", False),
+    BoolVariable("embed_kernels", "Embed OpenCL kernels and OpenGL ES compute shaders in library binary", True),
     BoolVariable("set_soname", "Set the library's soname and shlibversion (requires SCons 2.4 or above)", False),
     BoolVariable("openmp", "Enable OpenMP backend", False),
     BoolVariable("cppthreads", "Enable C++11 threads backend", True),
diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox
index 4c6b8f3..9cabb97 100644
--- a/docs/00_introduction.dox
+++ b/docs/00_introduction.dox
@@ -444,8 +444,8 @@
 		actual: False
 
 	embed_kernels: Embed OpenCL kernels and OpenGL ES compute shader in library binary (yes|no)
-		default: False
-		actual: False
+		default: True
+		actual: True
 
 	set_soname: Set the library's soname and shlibversion (requires SCons 2.4 or above) (yes|no)
 		default: False
@@ -733,6 +733,7 @@
 	aarch64-linux-android-clang++ examples/cl_convolution.cpp utils/Utils.cpp -I. -Iinclude -std=c++11 -larm_compute-static -larm_compute_core-static -L. -o cl_convolution_aarch64 -static-libstdc++ -pie -lOpenCL -DARM_COMPUTE_CL
 
 To cross compile a GLES example:
+
 	#32 bit:
 	arm-linux-androideabi-clang++ examples/gc_absdiff.cpp utils/Utils.cpp -I. -Iinclude -std=c++11 -larm_compute-static -larm_compute_core-static -L. -o gc_absdiff_arm -static-libstdc++ -pie -DARM_COMPUTE_GC
 	#64 bit:
diff --git a/docs/02_tests.dox b/docs/02_tests.dox
index 0eb6cee..5fcb4ba 100644
--- a/docs/02_tests.dox
+++ b/docs/02_tests.dox
@@ -18,6 +18,10 @@
 tests/fixtures cannot be parameterized based on the data type if static type
 information is needed within the test (e.g. to validate the results).
 
+@note By default tests are not built. To enable them you need to add validation_tests=1 and / or benchmark_tests=1 to your SCons line.
+
+@note Tests are not included in the pre-built binary archive, you have to build them from sources.
+
 @subsection tests_overview_structure Directory structure
 
     .
@@ -36,17 +40,6 @@
         |-- datasets <- Datasets for benchmark and validation tests.
         |-- main.cpp <- Main entry point for the tests. Currently shared between validation and benchmarking.
         |-- networks <- Network classes for system level tests.
-        |-- validation_old <- Old validation framework. No new tests must be added! <!-- FIXME: Remove before release -->
-        |   |-- dataset <- Old datasets for boost. Not to be used for new tests! <!-- FIXME: Remove before release -->
-        |   |-- model_objects <- Old helper files for system level validation. Not to be used for new tests! <!-- FIXME: Remove before release -->
-        |   |-- CL   \
-        |   |-- DEMO  \
-        |   |-- NEON --> Backend specific test cases
-        |   |-- UNIT  /
-        |   |-- VX   / <!-- FIXME: Remove VX -->
-        |   `-- system_tests -> System level tests
-        |       |-- CL
-        |       `-- NEON
         `-- validation -> Top level directory for validation files.
             |-- CPP -> C++ reference code
             |-- CL   \
@@ -356,7 +349,9 @@
 If only a subset of the tests has to be executed the `--filter` option takes a
 regular expression to select matching tests.
 
-    ./arm_compute_benchmark --filter='NEON/.*AlexNet' ./data
+    ./arm_compute_benchmark --filter='^NEON/.*AlexNet' ./data
+
+@note Filtering will be much faster if the regular expression starts from the start ("^") or end ("$") of the line.
 
 Additionally each test has a test id which can be used as a filter, too.
 However, the test id is not guaranteed to be stable when new tests are added.
@@ -393,12 +388,30 @@
 
 `MALI` will try to collect Mali hardware performance counters. (You need to have a recent enough Mali driver)
 
-`WALL_CLOCK` will measure time using `gettimeofday`: this should work on all platforms.
+`WALL_CLOCK_TIMER` will measure time using `gettimeofday`: this should work on all platforms.
 
-You can pass a combinations of these instruments: `--instruments=PMU,MALI,WALL_CLOCK`
+You can pass a combinations of these instruments: `--instruments=PMU,MALI,WALL_CLOCK_TIMER`
 
 @note You need to make sure the instruments have been selected at compile time using the `pmu=1` or `mali=1` scons options.
 
+@subsubsection tests_running_examples Examples
+
+To run all the precommit validation tests:
+
+	LD_LIBRARY_PATH=. ./arm_compute_validation --mode=precommit
+
+To run the OpenCL precommit validation tests:
+
+	LD_LIBRARY_PATH=. ./arm_compute_validation --mode=precommit --filter="^CL.*"
+
+To run the NEON precommit benchmark tests with PMU and Wall Clock timer in miliseconds instruments enabled:
+
+	LD_LIBRARY_PATH=. ./arm_compute_benchmark --mode=precommit --filter="^NEON.*" --instruments="pmu,wall_clock_timer_ms" --iterations=10
+
+To run the OpenCL precommit benchmark tests with OpenCL kernel timers in miliseconds enabled:
+
+	LD_LIBRARY_PATH=. ./arm_compute_benchmark --mode=precommit --filter="^CL.*" --instruments="opencl_timer_ms" --iterations=10
+
 <!-- FIXME: Remove before release and change above to benchmark and validation -->
 @subsection tests_running_tests_validation Validation