2009-09-16 16:43:58 +00:00
|
|
|
include $(top_srcdir)/build/autotools/Makefile.am.silent
|
|
|
|
|
2008-12-17 13:59:56 +00:00
|
|
|
NULL =
|
|
|
|
|
2013-08-16 09:57:54 +00:00
|
|
|
BUILT_SOURCES =
|
|
|
|
|
|
|
|
TESTS =
|
|
|
|
check_PROGRAMS =
|
|
|
|
check_SCRIPTS =
|
|
|
|
|
|
|
|
EXTRA_DIST =
|
|
|
|
DISTCLEANFILES =
|
|
|
|
|
|
|
|
TEST_PROGS =
|
2008-11-07 19:32:28 +00:00
|
|
|
|
2010-08-13 17:15:01 +00:00
|
|
|
# the common sources
|
|
|
|
common_sources = \
|
|
|
|
test-conform-common.h \
|
|
|
|
test-conform-common.c \
|
|
|
|
test-conform-main.c \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
# the unit-specific sources; please: keep all sections in alphabetical order!
|
|
|
|
units_sources =
|
|
|
|
|
|
|
|
# animation tests
|
|
|
|
units_sources += \
|
2012-02-27 13:02:01 +00:00
|
|
|
animator.c \
|
|
|
|
behaviours.c \
|
|
|
|
score.c \
|
|
|
|
state.c \
|
|
|
|
timeline.c \
|
|
|
|
timeline-interpolate.c \
|
timeline: Add support for step() progress
The CSS3 Transitions specification from the W3C defines the possibility
of using a parametrized step() timing function, with the following
prototype:
steps(n_steps, [ start | end ])
where @n_steps represents the number of steps used to divide an interval
between 0 and 1; the 'start' and 'end' tokens describe whether the value
change should happen at the start of the transition, or at the end.
For instance, the "steps(3, start)" timing function has the following
profile:
1 | x
| |
| x---|
| ' |
| x---' |
| ' |
0 |---' |
Whereas the "steps(3, end)" timing function has the following profile:
1 | x---|
| ' |
| x---' |
| ' |
x---' |
| |
0 | |
Since ClutterTimeline uses an enumeration for controlling the progress
mode, we need additional API to define the parameters of the steps()
progress; for this reason, we need a CLUTTER_STEPS enumeration value,
and a method for setting the number of steps and the value transition
policy.
The CSS3 Transitions spec helpfully also defines a step-start and a
step-end shorthands, which expand to step(1, start) and step(1, end)
respectively; we can provide a CLUTTER_STEP_START and CLUTTER_STEP_END
enumeration values for those.
2012-07-19 23:47:48 +00:00
|
|
|
timeline-progress.c \
|
2012-02-27 13:02:01 +00:00
|
|
|
timeline-rewind.c \
|
2010-08-13 17:15:01 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
# actors tests
|
|
|
|
units_sources += \
|
2012-02-27 13:02:01 +00:00
|
|
|
actor-anchors.c \
|
|
|
|
actor-graph.c \
|
|
|
|
actor-destroy.c \
|
|
|
|
actor-invariants.c \
|
|
|
|
actor-iter.c \
|
|
|
|
actor-layout.c \
|
2013-06-12 09:01:50 +00:00
|
|
|
actor-meta.c \
|
2012-02-27 13:02:01 +00:00
|
|
|
actor-offscreen-redirect.c \
|
2013-05-15 13:23:53 +00:00
|
|
|
actor-offscreen-limit-max-size.c\
|
2012-02-27 13:02:01 +00:00
|
|
|
actor-paint-opacity.c \
|
|
|
|
actor-pick.c \
|
2012-02-27 13:08:31 +00:00
|
|
|
actor-shader-effect.c \
|
2012-02-27 13:02:01 +00:00
|
|
|
actor-size.c \
|
|
|
|
binding-pool.c \
|
|
|
|
cairo-texture.c \
|
|
|
|
group.c \
|
2012-06-18 16:51:48 +00:00
|
|
|
interval.c \
|
2012-02-27 13:02:01 +00:00
|
|
|
path.c \
|
|
|
|
rectangle.c \
|
|
|
|
texture-fbo.c \
|
|
|
|
texture.c \
|
|
|
|
text-cache.c \
|
|
|
|
text.c \
|
2010-08-13 17:15:01 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
# objects tests
|
|
|
|
units_sources += \
|
2012-02-27 13:02:01 +00:00
|
|
|
color.c \
|
|
|
|
model.c \
|
|
|
|
script-parser.c \
|
|
|
|
units.c \
|
2009-01-07 12:06:33 +00:00
|
|
|
$(NULL)
|
2008-11-07 19:32:28 +00:00
|
|
|
|
2011-02-07 10:59:19 +00:00
|
|
|
# cally tests
|
|
|
|
units_sources += \
|
2012-02-27 13:02:01 +00:00
|
|
|
cally-text.c \
|
2011-02-07 10:59:19 +00:00
|
|
|
$(NULL)
|
|
|
|
|
2012-06-07 09:08:49 +00:00
|
|
|
# events tests
|
|
|
|
units_sources += \
|
|
|
|
events-touch.c \
|
|
|
|
$(NULL)
|
|
|
|
|
2011-03-25 11:49:44 +00:00
|
|
|
if OS_WIN32
|
|
|
|
SHEXT =
|
|
|
|
else
|
|
|
|
SHEXT = $(EXEEXT)
|
|
|
|
endif
|
|
|
|
|
2013-08-16 09:57:54 +00:00
|
|
|
EXTRA_DIST += ADDING_NEW_TESTS test-launcher.sh.in run-tests.sh
|
|
|
|
DISTCLEANFILES += test-launcher.sh .gitignore
|
|
|
|
|
2008-11-07 19:32:28 +00:00
|
|
|
# For convenience, this provides a way to easily run individual unit tests:
|
2008-12-17 13:59:56 +00:00
|
|
|
.PHONY: wrappers clean-wrappers
|
|
|
|
|
2010-09-13 01:01:50 +00:00
|
|
|
#UNIT_TESTS = `./test-conformance -l -m thorough | $(GREP) '^/'`
|
2008-12-17 13:59:56 +00:00
|
|
|
|
2009-05-14 07:32:46 +00:00
|
|
|
wrappers: stamp-test-conformance
|
|
|
|
@true
|
2010-10-11 15:16:45 +00:00
|
|
|
stamp-test-conformance: Makefile $(srcdir)/test-conform-main.c
|
2010-05-06 13:53:50 +00:00
|
|
|
@mkdir -p wrappers
|
2010-10-12 16:11:52 +00:00
|
|
|
@sed -n \
|
|
|
|
-e 's/^ \{1,\}TEST_CONFORM_SIMPLE *(.*"\([^",]\{1,\}\)", *\([a-zA-Z0-9_]\{1,\}\).*/\/conform\1\/\2/p' \
|
|
|
|
-e 's/^ \{1,\}TEST_CONFORM_SKIP *(.*"\([^",]\{1,\}\)", *\([a-zA-Z0-9_]\{1,\}\).*/\/conform\1\/\2/p' \
|
|
|
|
-e 's/^ \{1,\}TEST_CONFORM_TODO *(.*"\([^",]\{1,\}\)", *\([a-zA-Z0-9_]\{1,\}\).*/\/conform\1\/\2/p' \
|
2010-10-11 15:16:45 +00:00
|
|
|
$(srcdir)/test-conform-main.c > unit-tests
|
2010-06-06 21:47:02 +00:00
|
|
|
@chmod +x test-launcher.sh
|
2010-08-13 17:22:12 +00:00
|
|
|
@( echo "/stamp-test-conformance" ; \
|
|
|
|
echo "/test-conformance" ; \
|
|
|
|
echo "*.o" ; \
|
2010-09-08 16:50:38 +00:00
|
|
|
echo "*.xml" ; \
|
2010-10-12 14:43:42 +00:00
|
|
|
echo "*.html" ; \
|
2013-07-03 12:08:26 +00:00
|
|
|
echo "*.test" ; \
|
2010-08-13 17:22:12 +00:00
|
|
|
echo ".gitignore" ; \
|
2013-08-16 09:57:54 +00:00
|
|
|
echo "test-suite.log" ; \
|
2010-09-13 01:01:50 +00:00
|
|
|
echo "unit-tests" ; \
|
2010-08-13 17:22:12 +00:00
|
|
|
echo "/wrappers/" ) > .gitignore
|
2010-09-13 01:01:50 +00:00
|
|
|
@for i in `cat unit-tests`; \
|
2008-12-17 13:59:56 +00:00
|
|
|
do \
|
|
|
|
unit=`basename $$i | sed -e s/_/-/g`; \
|
2013-05-15 14:07:15 +00:00
|
|
|
echo " GEN $$unit"; \
|
2011-03-25 11:49:44 +00:00
|
|
|
( echo "#!/bin/sh" ; echo "$(abs_builddir)/test-launcher.sh '$$i' \"\$$@\"" ) > $$unit$(SHEXT) ; \
|
|
|
|
( echo "#!/bin/sh" ; echo "exec $(abs_builddir)/test-conformance$(EXEEXT) -p $$i \"\$$@\"" ) > wrappers/$$unit$(SHEXT) ; \
|
2011-11-18 15:12:45 +00:00
|
|
|
( echo "test-conformance-clutter$(EXEEXT) -p $$i" ) > $(top_builddir)/build/win32/$$unit-clutter.bat ; \
|
2011-12-07 10:14:17 +00:00
|
|
|
( echo "test-conformance-clutter$(EXEEXT) -p $$i" ) >> $(top_builddir)/build/win32/test-conformance-clutter.bat ; \
|
2011-03-25 11:49:44 +00:00
|
|
|
chmod +x $$unit$(SHEXT); \
|
|
|
|
chmod +x wrappers/$$unit$(SHEXT); \
|
|
|
|
echo "/$$unit$(SHEXT)" >> .gitignore; \
|
2009-05-14 07:32:46 +00:00
|
|
|
done \
|
|
|
|
&& echo timestamp > $(@F)
|
2008-12-17 13:59:56 +00:00
|
|
|
|
|
|
|
clean-wrappers:
|
2013-08-16 09:57:54 +00:00
|
|
|
@if test -f "unit-tests"; then \
|
|
|
|
for i in `cat unit-tests`; \
|
|
|
|
do \
|
2008-12-17 13:59:56 +00:00
|
|
|
unit=`basename $$i | sed -e s/_/-/g`; \
|
2013-05-15 14:07:15 +00:00
|
|
|
echo " RM $$unit"; \
|
2011-03-25 11:49:44 +00:00
|
|
|
rm -f $$unit$(SHEXT) ; \
|
|
|
|
rm -f wrappers/$$unit$(SHEXT) ; \
|
2013-08-16 09:57:54 +00:00
|
|
|
done \
|
|
|
|
fi \
|
|
|
|
&& rm -rf wrappers \
|
2010-09-13 01:01:50 +00:00
|
|
|
&& rm -f unit-tests \
|
2011-11-22 12:11:06 +00:00
|
|
|
&& rm -f $(top_builddir)/build/win32/*.bat \
|
2009-05-14 07:32:46 +00:00
|
|
|
&& rm -f stamp-test-conformance
|
2008-12-17 13:59:56 +00:00
|
|
|
|
2009-11-04 11:47:09 +00:00
|
|
|
test_conformance_CPPFLAGS = \
|
2009-06-15 09:48:56 +00:00
|
|
|
-DG_DISABLE_SINGLE_INCLUDES \
|
2010-02-15 11:58:55 +00:00
|
|
|
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
2011-10-13 16:50:25 +00:00
|
|
|
-DG_DISABLE_DEPRECATION_WARNINGS \
|
2013-07-02 21:24:31 +00:00
|
|
|
-DCOGL_DISABLE_DEPRECATION_WARNINGS \
|
2011-10-13 16:50:25 +00:00
|
|
|
-DCLUTTER_DISABLE_DEPRECATION_WARNINGS \
|
2013-05-15 14:18:13 +00:00
|
|
|
-DTESTS_DATADIR=\""$(top_srcdir)/tests/data"\" \
|
|
|
|
-I$(top_srcdir) \
|
|
|
|
-I$(top_builddir) \
|
|
|
|
-I$(top_srcdir)/clutter \
|
|
|
|
-I$(top_builddir)/clutter
|
2009-11-04 11:47:09 +00:00
|
|
|
|
2012-03-07 12:34:48 +00:00
|
|
|
test_conformance_CFLAGS = -g $(CLUTTER_CFLAGS)
|
2012-06-12 06:25:05 +00:00
|
|
|
test_conformance_LDADD = $(top_builddir)/clutter/libclutter-@CLUTTER_API_VERSION@.la $(CLUTTER_LIBS) -lm
|
2010-06-24 16:33:43 +00:00
|
|
|
test_conformance_LDFLAGS = -export-dynamic
|
2013-08-16 09:57:54 +00:00
|
|
|
test_conformance_SOURCES = $(common_sources) $(units_sources)
|
|
|
|
|
|
|
|
if OS_WIN32
|
|
|
|
TESTS += test-conformance
|
|
|
|
endif
|
|
|
|
|
|
|
|
TEST_PROGS += test-conformance
|
|
|
|
check_PROGRAMS += test-conformance
|
|
|
|
check_SCRIPTS += wrappers
|
2009-11-04 16:45:44 +00:00
|
|
|
|
2010-05-06 13:53:50 +00:00
|
|
|
test: wrappers
|
2013-07-10 11:31:32 +00:00
|
|
|
@export G_TEST_SRCDIR="$(abs_srcdir)" ; \
|
|
|
|
export G_TEST_BUILDDIR="$(abs_builddir)" ; \
|
|
|
|
$(top_srcdir)/tests/conform/run-tests.sh \
|
2010-07-07 13:50:24 +00:00
|
|
|
./test-conformance$(EXEEXT) -o test-report.xml
|
2008-11-07 19:32:28 +00:00
|
|
|
|
2010-05-06 13:53:50 +00:00
|
|
|
test-verbose: wrappers
|
2013-07-10 11:31:32 +00:00
|
|
|
@export G_TEST_SRCDIR="$(abs_srcdir)" ; \
|
|
|
|
export G_TEST_BUILDDIR="$(abs_builddir)" ; \
|
|
|
|
$(top_srcdir)/tests/conform/run-tests.sh \
|
2010-07-07 13:50:24 +00:00
|
|
|
./test-conformance$(EXEEXT) -o test-report.xml --verbose
|
2009-05-31 14:15:46 +00:00
|
|
|
|
2010-07-07 13:50:24 +00:00
|
|
|
.PHONY: test
|
|
|
|
.PHONY: test-report perf-report full-report
|
2013-08-16 09:57:54 +00:00
|
|
|
|
|
|
|
check-local: test
|
|
|
|
|
|
|
|
GTESTER = gtester
|
|
|
|
GTESTER_REPORT = gtester-report
|
2010-07-07 13:50:24 +00:00
|
|
|
|
|
|
|
# test-report: run tests and generate report
|
|
|
|
# perf-report: run tests with -m perf and generate report
|
|
|
|
# full-report: like test-report: with -m perf and -m slow
|
2013-08-16 09:57:54 +00:00
|
|
|
test-report perf-report full-report: ${TEST_PROGS}
|
2010-07-07 13:50:24 +00:00
|
|
|
@test -z "${TEST_PROGS}" || { \
|
|
|
|
export GTESTER_LOGDIR=`mktemp -d "$(srcdir)/.testlogs-XXXXXX"` ; \
|
2010-10-12 14:43:42 +00:00
|
|
|
if test -d "$(top_srcdir)/.git"; then \
|
|
|
|
export REVISION="`git describe`" ; \
|
|
|
|
else \
|
|
|
|
export REVISION="$(VERSION) $(CLUTTER_RELEASE_STATUS)" ; \
|
|
|
|
fi ; \
|
|
|
|
export TIMESTAMP=`date +%Y-%m-%dT%H:%M:%S%z` ; \
|
2010-07-07 13:50:24 +00:00
|
|
|
case $@ in \
|
|
|
|
test-report) test_options="-k";; \
|
|
|
|
perf-report) test_options="-k -m=perf";; \
|
|
|
|
full-report) test_options="-k -m=perf -m=slow";; \
|
|
|
|
esac ; \
|
2013-07-10 11:31:32 +00:00
|
|
|
export G_TEST_SRCDIR="$(abs_srcdir)" ; \
|
|
|
|
export G_TEST_BUILDDIR="$(abs_builddir)" ; \
|
2010-05-06 13:53:50 +00:00
|
|
|
$(top_srcdir)/tests/conform/run-tests.sh \
|
2010-07-07 13:50:24 +00:00
|
|
|
./test-conformance$(EXEEXT) \
|
|
|
|
--verbose \
|
|
|
|
$$test_options \
|
|
|
|
-o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ; \
|
2010-10-12 14:43:42 +00:00
|
|
|
echo '<?xml version="1.0"?>' > $@.xml ; \
|
|
|
|
echo '<report-collection>' >> $@.xml ; \
|
|
|
|
echo '<info>' >> $@.xml ; \
|
|
|
|
echo ' <package>$(PACKAGE)</package>' >> $@.xml ; \
|
|
|
|
echo ' <version>$(VERSION)</version>' >> $@.xml ; \
|
|
|
|
echo " <revision>$$REVISION</revision>" >> $@.xml ; \
|
|
|
|
echo " <date>$$TIMESTAMP</date>" >> $@.xml ; \
|
|
|
|
echo '</info>' >> $@.xml ; \
|
2010-07-07 13:50:24 +00:00
|
|
|
for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
|
|
|
|
sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
|
|
|
|
done ; \
|
|
|
|
echo >> $@.xml ; \
|
|
|
|
echo '</report-collection>' >> $@.xml ; \
|
|
|
|
${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
|
|
|
|
rm -rf "$$GTESTER_LOGDIR" ; \
|
|
|
|
}
|
|
|
|
|
|
|
|
XML_REPORTS = \
|
|
|
|
test-report.xml \
|
|
|
|
perf-report.xml \
|
|
|
|
full-report.xml \
|
|
|
|
test-report-npot.xml \
|
|
|
|
perf-report-npot.xml \
|
|
|
|
full-report-npot.xml
|
|
|
|
|
|
|
|
HTML_REPORTS = \
|
|
|
|
test-report.html \
|
|
|
|
perf-report.html \
|
|
|
|
full-report.html \
|
|
|
|
test-report-npot.html \
|
|
|
|
perf-report-npot.html \
|
|
|
|
full-report-npot.html
|
2008-11-07 19:32:28 +00:00
|
|
|
|
2011-11-18 15:12:45 +00:00
|
|
|
dist-hook: $(top_builddir)/build/win32/vs9/test-conformance-clutter.vcproj $(top_builddir)/build/win32/vs10/test-conformance-clutter.vcxproj $(top_builddir)/build/win32/vs10/test-conformance-clutter.vcxproj.filters
|
2011-09-16 09:25:47 +00:00
|
|
|
|
2011-11-18 15:12:45 +00:00
|
|
|
$(top_builddir)/build/win32/vs9/test-conformance-clutter.vcproj: $(top_srcdir)/build/win32/vs9/test-conformance-clutter.vcprojin
|
|
|
|
@for F in $(test_conformance_SOURCES); do \
|
2011-09-16 09:25:47 +00:00
|
|
|
case $$F in \
|
|
|
|
*.c) echo ' <File RelativePath="..\..\..\tests\conform\'$$F'" />' \
|
|
|
|
;; \
|
|
|
|
esac; \
|
2011-11-18 15:12:45 +00:00
|
|
|
done > testconformance.sourcefiles
|
2011-10-20 08:35:38 +00:00
|
|
|
$(CPP) -P - <$(top_srcdir)/build/win32/vs9/test-conformance-clutter.vcprojin >$@
|
2011-11-18 15:12:45 +00:00
|
|
|
rm -f testconformance.sourcefiles
|
|
|
|
|
|
|
|
$(top_builddir)/build/win32/vs10/test-conformance-clutter.vcxproj: $(top_srcdir)/build/win32/vs10/test-conformance-clutter.vcxprojin
|
|
|
|
@for F in $(test_conformance_SOURCES); do \
|
2011-09-16 09:25:47 +00:00
|
|
|
case $$F in \
|
|
|
|
*.c) echo ' <ClCompile Include="..\..\..\tests\conform\'$$F'" />' \
|
|
|
|
;; \
|
|
|
|
esac; \
|
|
|
|
done >testconformance.vs10.sourcefiles
|
2011-10-20 08:35:38 +00:00
|
|
|
$(CPP) -P - <$(top_srcdir)/build/win32/vs10/test-conformance-clutter.vcxprojin >$@
|
2011-11-18 15:12:45 +00:00
|
|
|
rm -f testconformance.vs10.sourcefiles
|
2011-09-16 09:25:47 +00:00
|
|
|
|
2011-11-18 15:12:45 +00:00
|
|
|
$(top_builddir)/build/win32/vs10/test-conformance-clutter.vcxproj.filters: $(top_srcdir)/build/win32/vs10/test-conformance-clutter.vcxproj.filtersin
|
|
|
|
@for F in $(test_conformance_SOURCES); do \
|
2011-09-16 09:25:47 +00:00
|
|
|
case $$F in \
|
|
|
|
*.c) echo ' <ClCompile Include="..\..\..\tests\conform\'$$F'"><Filter>Sources</Filter></ClCompile>' \
|
|
|
|
;; \
|
|
|
|
esac; \
|
2011-11-22 12:11:06 +00:00
|
|
|
done > testconformance.vs10.sourcefiles.filters
|
|
|
|
$(CPP) -P - < $(top_srcdir)/build/win32/vs10/test-conformance-clutter.vcxproj.filtersin > $@
|
2011-11-18 15:12:45 +00:00
|
|
|
rm -f testconformance.vs10.sourcefiles.filters
|
2011-09-16 09:25:47 +00:00
|
|
|
|
|
|
|
# Let the VS9/VS10 Project files be cleared out before they are re-expanded...
|
2011-11-22 12:11:06 +00:00
|
|
|
DISTCLEANFILES += \
|
|
|
|
$(top_builddir)/build/win32/vs9/test-conformance-clutter.vcproj \
|
|
|
|
$(top_builddir)/build/win32/vs10/test-conformance-clutter.vcxproj \
|
|
|
|
$(top_builddir)/build/win32/vs10/test-conformance-clutter.vcxproj.filters
|
2011-09-16 09:25:47 +00:00
|
|
|
|
2009-01-23 13:29:55 +00:00
|
|
|
# we override the clean-generic target to clean up the wrappers so
|
|
|
|
# we cannot use CLEANFILES
|
2013-06-24 02:53:13 +00:00
|
|
|
clean-generic: clean-wrappers clean-tests
|
2009-09-16 16:43:58 +00:00
|
|
|
$(QUIET_RM)rm -f $(XML_REPORTS) $(HTML_REPORTS)
|
2013-06-24 02:53:13 +00:00
|
|
|
|
|
|
|
if ENABLE_INSTALLED_TESTS
|
|
|
|
# installed tests
|
|
|
|
insttestdir = $(libexecdir)/installed-tests/$(PACKAGE)/conform
|
|
|
|
insttest_PROGRAMS = test-conformance
|
|
|
|
|
|
|
|
testmetadir = $(datadir)/installed-tests/$(PACKAGE)
|
|
|
|
testmeta_DATA = $(wildcard *.test)
|
|
|
|
|
|
|
|
BUILT_SOURCES += tests
|
|
|
|
endif
|
|
|
|
|
|
|
|
.PHONY: tests clean-tests
|
|
|
|
|
|
|
|
tests: stamp-test-conformance
|
|
|
|
@for i in `cat unit-tests`; do \
|
|
|
|
unit=`basename $$i | sed -e s/_/-/g`; \
|
|
|
|
echo " GEN $$unit"; \
|
|
|
|
echo "[Test]" > $$unit.test; \
|
|
|
|
echo "Type=session" >> $$unit.test; \
|
|
|
|
echo "Exec=$(libexecdir)/installed-tests/$(PACKAGE)/conform/test-conformance -p $$i" >> $$unit.test; \
|
|
|
|
done
|
|
|
|
|
|
|
|
clean-tests:
|
|
|
|
$(QUIET_RM) rm -f *.test
|