|  |  |  | #!/bin/bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TEST_FILE=${1##*/}
 | 
					
						
							|  |  |  | TEST_NAME=${TEST_FILE%.*}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ -z "$TEST_NAME" ]; then
 | 
					
						
							|  |  |  | 	echo "usage: $(basename $0) <test name>"
 | 
					
						
							|  |  |  | 	exit 1;
 | 
					
						
							|  |  |  | fi
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | WESTON=$abs_builddir/weston
 | 
					
						
							|  |  |  | LOGDIR=$abs_builddir/logs
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | mkdir -p "$LOGDIR" || exit
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SERVERLOG="$LOGDIR/${TEST_NAME}-serverlog.txt"
 | 
					
						
							|  |  |  | OUTLOG="$LOGDIR/${TEST_NAME}-log.txt"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | rm -f "$SERVERLOG" || exit
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BACKEND=${BACKEND:-headless-backend.so}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MODDIR=$abs_builddir/.libs
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SHELL_PLUGIN=$MODDIR/desktop-shell.so
 | 
					
						
							|  |  |  | TEST_PLUGIN=$MODDIR/weston-test.so
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CONFIG_FILE="${TEST_NAME}.ini"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if [ -e "${abs_builddir}/${CONFIG_FILE}" ]; then
 | 
					
						
							|  |  |  |        CONFIG="--config=${abs_builddir}/${CONFIG_FILE}"
 | 
					
						
							|  |  |  | elif [ -e "${abs_top_srcdir}/tests/${CONFIG_FILE}" ]; then
 | 
					
						
							|  |  |  |        CONFIG="--config=${abs_top_srcdir}/tests/${CONFIG_FILE}"
 | 
					
						
							|  |  |  | else
 | 
					
						
							|  |  |  |        CONFIG="--no-config"
 | 
					
						
							|  |  |  | fi
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | case $TEST_FILE in
 | 
					
						
							| 
									
										
											  
											
												tests: ivi_layout test infrastructure
Testing the ivi_layout API requires two things:
- the tests must be written as a controller module to access the API
- the tests need a helper client to create some objects that can then be
  managed via the API
This patch adds all the infrastructure and two different kinds of
example tests.
Internal ivi-shell (ivi_layout) API tests are listed as ivi-*.la files
in TESTS in Makefile.am. Weston-tests-env detects these, and runs Weston
with ivi-shell, and loads the given module as a controller module, not
as a normal plugin.
The test controller module ivi-*.la will launch a helper client. For
ivi-layout-test.la the helper client is ivi-layout.ivi.
The helper client uses the weston-test-runner framework to fork and exec
each TEST with a fresh connection to the compositor.
The actual test is triggered by the weston_test_runner protocol
interface, a new addition to weston-test.xml. The helper client uses
weston_test_runner to trigger a test, and the server side of the
interface is implemented by the test controller module
(ivi-layout-test.la).
The server side of weston_test_runner uses the same trick as
weston-test-runner.h to gather a list of defined tests. A test is
defined with the RUNNER_TEST macro.
If a test defined by RUNNER_TEST succeeds, an event is sent to the
helper client that it can continue (or exit). If a test fails, a fatal
protocol error is sent to the helper client.
Once the helper client has iterated over all of its tests, it signals
the batch success/failure via process exit code. That is cought in the
test controller module, and forwarded as Weston's exit code.
In summary: each ivi_layout test is a combination of a client side
helper/setup and server side actual tests.
v2: Load weston-test.so, because create_client() needs it.
v3: add a comment about IVI_TEST_SURFACE_ID_BASE.
v4: Rebased to upstream weston-tests-env changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com> (v2)
											
										 
											11 years ago
										 |  |  | 	ivi-*.la|ivi-*.so)
 | 
					
						
							|  |  |  | 		SHELL_PLUGIN=$MODDIR/ivi-shell.so
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		set -x
 | 
					
						
							|  |  |  | 		WESTON_DATA_DIR=$abs_top_srcdir/data \
 | 
					
						
							| 
									
										
											  
											
												tests: ivi_layout test infrastructure
Testing the ivi_layout API requires two things:
- the tests must be written as a controller module to access the API
- the tests need a helper client to create some objects that can then be
  managed via the API
This patch adds all the infrastructure and two different kinds of
example tests.
Internal ivi-shell (ivi_layout) API tests are listed as ivi-*.la files
in TESTS in Makefile.am. Weston-tests-env detects these, and runs Weston
with ivi-shell, and loads the given module as a controller module, not
as a normal plugin.
The test controller module ivi-*.la will launch a helper client. For
ivi-layout-test.la the helper client is ivi-layout.ivi.
The helper client uses the weston-test-runner framework to fork and exec
each TEST with a fresh connection to the compositor.
The actual test is triggered by the weston_test_runner protocol
interface, a new addition to weston-test.xml. The helper client uses
weston_test_runner to trigger a test, and the server side of the
interface is implemented by the test controller module
(ivi-layout-test.la).
The server side of weston_test_runner uses the same trick as
weston-test-runner.h to gather a list of defined tests. A test is
defined with the RUNNER_TEST macro.
If a test defined by RUNNER_TEST succeeds, an event is sent to the
helper client that it can continue (or exit). If a test fails, a fatal
protocol error is sent to the helper client.
Once the helper client has iterated over all of its tests, it signals
the batch success/failure via process exit code. That is cought in the
test controller module, and forwarded as Weston's exit code.
In summary: each ivi_layout test is a combination of a client side
helper/setup and server side actual tests.
v2: Load weston-test.so, because create_client() needs it.
v3: add a comment about IVI_TEST_SURFACE_ID_BASE.
v4: Rebased to upstream weston-tests-env changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com> (v2)
											
										 
											11 years ago
										 |  |  | 		WESTON_BUILD_DIR=$abs_builddir \
 | 
					
						
							|  |  |  | 		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
 | 
					
						
							| 
									
										
											  
											
												tests: ivi_layout test infrastructure
Testing the ivi_layout API requires two things:
- the tests must be written as a controller module to access the API
- the tests need a helper client to create some objects that can then be
  managed via the API
This patch adds all the infrastructure and two different kinds of
example tests.
Internal ivi-shell (ivi_layout) API tests are listed as ivi-*.la files
in TESTS in Makefile.am. Weston-tests-env detects these, and runs Weston
with ivi-shell, and loads the given module as a controller module, not
as a normal plugin.
The test controller module ivi-*.la will launch a helper client. For
ivi-layout-test.la the helper client is ivi-layout.ivi.
The helper client uses the weston-test-runner framework to fork and exec
each TEST with a fresh connection to the compositor.
The actual test is triggered by the weston_test_runner protocol
interface, a new addition to weston-test.xml. The helper client uses
weston_test_runner to trigger a test, and the server side of the
interface is implemented by the test controller module
(ivi-layout-test.la).
The server side of weston_test_runner uses the same trick as
weston-test-runner.h to gather a list of defined tests. A test is
defined with the RUNNER_TEST macro.
If a test defined by RUNNER_TEST succeeds, an event is sent to the
helper client that it can continue (or exit). If a test fails, a fatal
protocol error is sent to the helper client.
Once the helper client has iterated over all of its tests, it signals
the batch success/failure via process exit code. That is cought in the
test controller module, and forwarded as Weston's exit code.
In summary: each ivi_layout test is a combination of a client side
helper/setup and server side actual tests.
v2: Load weston-test.so, because create_client() needs it.
v3: add a comment about IVI_TEST_SURFACE_ID_BASE.
v4: Rebased to upstream weston-tests-env changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com> (v2)
											
										 
											11 years ago
										 |  |  | 		$WESTON --backend=$MODDIR/$BACKEND \
 | 
					
						
							|  |  |  | 			--no-config \
 | 
					
						
							| 
									
										
											  
											
												tests: ivi_layout test infrastructure
Testing the ivi_layout API requires two things:
- the tests must be written as a controller module to access the API
- the tests need a helper client to create some objects that can then be
  managed via the API
This patch adds all the infrastructure and two different kinds of
example tests.
Internal ivi-shell (ivi_layout) API tests are listed as ivi-*.la files
in TESTS in Makefile.am. Weston-tests-env detects these, and runs Weston
with ivi-shell, and loads the given module as a controller module, not
as a normal plugin.
The test controller module ivi-*.la will launch a helper client. For
ivi-layout-test.la the helper client is ivi-layout.ivi.
The helper client uses the weston-test-runner framework to fork and exec
each TEST with a fresh connection to the compositor.
The actual test is triggered by the weston_test_runner protocol
interface, a new addition to weston-test.xml. The helper client uses
weston_test_runner to trigger a test, and the server side of the
interface is implemented by the test controller module
(ivi-layout-test.la).
The server side of weston_test_runner uses the same trick as
weston-test-runner.h to gather a list of defined tests. A test is
defined with the RUNNER_TEST macro.
If a test defined by RUNNER_TEST succeeds, an event is sent to the
helper client that it can continue (or exit). If a test fails, a fatal
protocol error is sent to the helper client.
Once the helper client has iterated over all of its tests, it signals
the batch success/failure via process exit code. That is cought in the
test controller module, and forwarded as Weston's exit code.
In summary: each ivi_layout test is a combination of a client side
helper/setup and server side actual tests.
v2: Load weston-test.so, because create_client() needs it.
v3: add a comment about IVI_TEST_SURFACE_ID_BASE.
v4: Rebased to upstream weston-tests-env changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com> (v2)
											
										 
											11 years ago
										 |  |  | 			--shell=$SHELL_PLUGIN \
 | 
					
						
							|  |  |  | 			--socket=test-${TEST_NAME} \
 | 
					
						
							|  |  |  | 			--modules=$TEST_PLUGIN,$MODDIR/${TEST_FILE/.la/.so}\
 | 
					
						
							| 
									
										
											  
											
												tests: ivi_layout test infrastructure
Testing the ivi_layout API requires two things:
- the tests must be written as a controller module to access the API
- the tests need a helper client to create some objects that can then be
  managed via the API
This patch adds all the infrastructure and two different kinds of
example tests.
Internal ivi-shell (ivi_layout) API tests are listed as ivi-*.la files
in TESTS in Makefile.am. Weston-tests-env detects these, and runs Weston
with ivi-shell, and loads the given module as a controller module, not
as a normal plugin.
The test controller module ivi-*.la will launch a helper client. For
ivi-layout-test.la the helper client is ivi-layout.ivi.
The helper client uses the weston-test-runner framework to fork and exec
each TEST with a fresh connection to the compositor.
The actual test is triggered by the weston_test_runner protocol
interface, a new addition to weston-test.xml. The helper client uses
weston_test_runner to trigger a test, and the server side of the
interface is implemented by the test controller module
(ivi-layout-test.la).
The server side of weston_test_runner uses the same trick as
weston-test-runner.h to gather a list of defined tests. A test is
defined with the RUNNER_TEST macro.
If a test defined by RUNNER_TEST succeeds, an event is sent to the
helper client that it can continue (or exit). If a test fails, a fatal
protocol error is sent to the helper client.
Once the helper client has iterated over all of its tests, it signals
the batch success/failure via process exit code. That is cought in the
test controller module, and forwarded as Weston's exit code.
In summary: each ivi_layout test is a combination of a client side
helper/setup and server side actual tests.
v2: Load weston-test.so, because create_client() needs it.
v3: add a comment about IVI_TEST_SURFACE_ID_BASE.
v4: Rebased to upstream weston-tests-env changes.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com> (v2)
											
										 
											11 years ago
										 |  |  | 			--log="$SERVERLOG" \
 | 
					
						
							|  |  |  | 			&> "$OUTLOG"
 | 
					
						
							|  |  |  | 		;;
 | 
					
						
							|  |  |  | 	*.la|*.so)
 | 
					
						
							|  |  |  | 		set -x
 | 
					
						
							|  |  |  | 		WESTON_DATA_DIR=$abs_top_srcdir/data \
 | 
					
						
							|  |  |  | 		WESTON_BUILD_DIR=$abs_builddir \
 | 
					
						
							|  |  |  | 		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
 | 
					
						
							|  |  |  | 		$WESTON --backend=$MODDIR/$BACKEND \
 | 
					
						
							|  |  |  | 			${CONFIG} \
 | 
					
						
							|  |  |  | 			--shell=$SHELL_PLUGIN \
 | 
					
						
							|  |  |  | 			--socket=test-${TEST_NAME} \
 | 
					
						
							|  |  |  | 			--xwayland \
 | 
					
						
							|  |  |  | 			--modules=$MODDIR/${TEST_FILE/.la/.so} \
 | 
					
						
							|  |  |  | 			--log="$SERVERLOG" \
 | 
					
						
							|  |  |  | 			&> "$OUTLOG"
 | 
					
						
							|  |  |  | 		;;
 | 
					
						
							|  |  |  | 	ivi-*.weston)
 | 
					
						
							|  |  |  | 		SHELL_PLUGIN=$MODDIR/ivi-shell.so
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		set -x
 | 
					
						
							|  |  |  | 		WESTON_DATA_DIR=$abs_top_srcdir/data \
 | 
					
						
							|  |  |  | 		WESTON_BUILD_DIR=$abs_builddir \
 | 
					
						
							|  |  |  | 		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
 | 
					
						
							|  |  |  | 		WESTON_TEST_CLIENT_PATH=$abs_builddir/$TEST_FILE \
 | 
					
						
							|  |  |  | 		$WESTON --backend=$MODDIR/$BACKEND \
 | 
					
						
							|  |  |  | 			--no-config \
 | 
					
						
							|  |  |  | 			--shell=$SHELL_PLUGIN \
 | 
					
						
							|  |  |  | 			--socket=test-${TEST_NAME} \
 | 
					
						
							|  |  |  | 			--modules=$TEST_PLUGIN \
 | 
					
						
							|  |  |  | 			--log="$SERVERLOG" \
 | 
					
						
							|  |  |  | 			$($abs_builddir/$TESTNAME --params) \
 | 
					
						
							|  |  |  | 			&> "$OUTLOG"
 | 
					
						
							|  |  |  | 		;;
 | 
					
						
							|  |  |  | 	*)
 | 
					
						
							|  |  |  | 		set -x
 | 
					
						
							|  |  |  | 		WESTON_DATA_DIR=$abs_top_srcdir/data \
 | 
					
						
							|  |  |  | 		WESTON_BUILD_DIR=$abs_builddir \
 | 
					
						
							|  |  |  | 		WESTON_TEST_REFERENCE_PATH=$abs_top_srcdir/tests/reference \
 | 
					
						
							|  |  |  | 		WESTON_TEST_CLIENT_PATH=$abs_builddir/$TEST_FILE \
 | 
					
						
							|  |  |  | 		$WESTON --backend=$MODDIR/$BACKEND \
 | 
					
						
							|  |  |  | 			${CONFIG} \
 | 
					
						
							|  |  |  | 			--shell=$SHELL_PLUGIN \
 | 
					
						
							|  |  |  | 			--socket=test-${TEST_NAME} \
 | 
					
						
							|  |  |  | 			--xwayland \
 | 
					
						
							|  |  |  | 			--modules=$TEST_PLUGIN \
 | 
					
						
							|  |  |  | 			--log="$SERVERLOG" \
 | 
					
						
							|  |  |  | 			$($abs_builddir/$TEST_FILE --params) \
 | 
					
						
							|  |  |  | 			&> "$OUTLOG"
 | 
					
						
							|  |  |  | esac
 |