[gobject-introspection] tests: Use Python unittest module parameterization for annotationparser



commit f27aff293b8f811dbea6311d06be42eec2d980d8
Author: Simon Feltman <sfeltman src gnome org>
Date:   Wed Dec 18 18:30:54 2013 -0800

    tests: Use Python unittest module parameterization for annotationparser
    
    Add Python unittest module parameterization support to gi-tester through the
    use of a "TESTARGS" variable. Use the Automake test harness along with
    gi-tester for running the Python annotationparser tests.
    Add tests/scanner/annotationparser/Makefile.am and localize testing
    rules and EXTRA_DIST setup to this file. Specific Python tests can now be
    run as follows:
    
    cd tests/scanner/annotationparser
    make check TESTS=test_patterns.py TESTARGS=TestTagValueStability
    
    https://bugzilla.gnome.org/show_bug.cgi?id=720713

 Makefile.am                                |    4 --
 configure.ac                               |    1 +
 tests/gi-tester                            |   14 +++++-
 tests/scanner/Makefile.am                  |   60 +-----------------------
 tests/scanner/annotationparser/Makefile.am |   68 ++++++++++++++++++++++++++++
 5 files changed, 84 insertions(+), 63 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 2ec04d0..1a988a5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -66,10 +66,6 @@ check-local:
                $(PYTHON) $(top_srcdir)/misc/pep8.py --max-line-length=99 --ignore=E128 $(PEP8_EXCLUDES)
        @find $(top_srcdir)/tests -name \*.py | sort | uniq | xargs \
                $(PYTHON) $(top_srcdir)/misc/pep8.py --ignore=E127,E501 $(PEP8_EXCLUDES)
-       @echo "TEST: Annotation pattern programs"
-       PYTHONPATH="$(top_builddir):$(top_srcdir)" $(PYTHON) 
$(top_srcdir)/tests/scanner/annotationparser/test_patterns.py
-       @echo "TEST: GTK-Doc Annotation Parser"
-       PYTHONPATH="$(top_builddir):$(top_srcdir)" $(PYTHON) 
$(top_srcdir)/tests/scanner/annotationparser/test_parser.py
 
 check-pyflakes:
        @echo "  CHECK Pyflakes"
diff --git a/configure.ac b/configure.ac
index 3394ece..f60d3f4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -319,6 +319,7 @@ Makefile
 tests/Makefile
 tests/offsets/Makefile
 tests/scanner/Makefile
+tests/scanner/annotationparser/Makefile
 tests/repository/Makefile
 tests/warn/Makefile
 docs/Makefile
diff --git a/tests/gi-tester b/tests/gi-tester
index 496b947..78a5c43 100755
--- a/tests/gi-tester
+++ b/tests/gi-tester
@@ -32,8 +32,20 @@ case $targetname in
     diff -u -w -B -U 10 ${srcdir}/${targetname::-4}-expected.txt ${builddir}/${targetname}
     exit $?
     ;;
+*.py)
+    if [[ -z "${TESTARGS}" ]]; then
+        # Run as regular Python file if TESTARGS is empty
+        PYTHONPATH=${top_builddir}:${top_srcdir} ${PYTHON} ${targetname}
+        exit $?
+    else
+        # Run as Python unittest module with TESTARGS concatenated to the basename of target
+        targetbasename=`basename "${targetname}" .py`
+        PYTHONPATH=${top_builddir}:${top_srcdir} ${PYTHON} -m unittest -v "${targetbasename}.${TESTARGS}"
+        exit $?
+    fi
+    ;;
 *)
-    echo $"Usage: gi-tester <targetname>"
+    echo $"Usage: [TESTARGS=<args>] gi-tester <targetname>"
     exit 1
     ;;
 esac
diff --git a/tests/scanner/Makefile.am b/tests/scanner/Makefile.am
index 2a9c51c..a3f9a27 100644
--- a/tests/scanner/Makefile.am
+++ b/tests/scanner/Makefile.am
@@ -3,6 +3,8 @@ NULL ?=
 include $(top_srcdir)/common.mk
 include $(top_srcdir)/Makefile.introspection
 
+SUBDIRS = . annotationparser
+
 INTROSPECTION_SCANNER_ARGS += --warn-all
 
 CLEANFILES =
@@ -185,64 +187,6 @@ TESTS_ENVIRONMENT = srcdir=$(srcdir) top_srcdir=$(top_srcdir) builddir=$(builddi
        $(top_srcdir)/tests/gi-tester
 
 EXTRA_DIST += \
-       annotationparser/README                                 \
-       annotationparser/test_parser.py                         \
-       annotationparser/test_patterns.py                       \
-       annotationparser/tests.xsd                              \
-       annotationparser/gi/annotation_allow_none.xml           \
-       annotationparser/gi/annotation_array.xml                \
-       annotationparser/gi/annotation_attributes.xml           \
-       annotationparser/gi/annotation_closure.xml              \
-       annotationparser/gi/annotation_constructor.xml          \
-       annotationparser/gi/annotation_destroy.xml              \
-       annotationparser/gi/annotation_element_type.xml         \
-       annotationparser/gi/annotation_foreign.xml              \
-       annotationparser/gi/annotation_get_value_func.xml       \
-       annotationparser/gi/annotation_in.xml                   \
-       annotationparser/gi/annotation_in_out.xml               \
-       annotationparser/gi/annotation_method.xml               \
-       annotationparser/gi/annotation_out.xml                  \
-       annotationparser/gi/annotation_ref_func.xml             \
-       annotationparser/gi/annotation_rename_to.xml            \
-       annotationparser/gi/annotation_scope.xml                \
-       annotationparser/gi/annotation_set_value_func.xml       \
-       annotationparser/gi/annotation_skip.xml                 \
-       annotationparser/gi/annotation_transfer.xml             \
-       annotationparser/gi/annotation_type.xml                 \
-       annotationparser/gi/annotation_unref_func.xml           \
-       annotationparser/gi/annotation_value.xml                \
-       annotationparser/gi/annotation_virtual.xml              \
-       annotationparser/gi/annotations.xml                     \
-       annotationparser/gi/identifier.xml                      \
-       annotationparser/gi/identifier_section.xml              \
-       annotationparser/gi/identifier_symbol.xml               \
-       annotationparser/gi/parameter.xml                       \
-       annotationparser/gi/parameter_varargs.xml               \
-       annotationparser/gi/syntax.xml                          \
-       annotationparser/gi/syntax_indentation.xml              \
-       annotationparser/gi/syntax_multiline_annotations.xml    \
-       annotationparser/gi/syntax_nested_tags.xml              \
-       annotationparser/gi/syntax_paragraph_breaks.xml         \
-       annotationparser/gi/syntax_whitespace.xml               \
-       annotationparser/gi/tag.xml                             \
-       annotationparser/gi/tag_deprecated.xml                  \
-       annotationparser/gi/tag_description.xml                 \
-       annotationparser/gi/tag_returns.xml                     \
-       annotationparser/gi/tag_since.xml                       \
-       annotationparser/gi/tag_stability.xml                   \
-       annotationparser/gtkdoc/gobject/gtypes.h.xml            \
-       annotationparser/gtkdoc/gobject/gtypes.c.xml            \
-       annotationparser/gtkdoc/gobject/giface.h.xml            \
-       annotationparser/gtkdoc/gobject/giface.c.xml            \
-       annotationparser/gtkdoc/fail/tester.h.xml               \
-       annotationparser/gtkdoc/fail/tester.c.xml               \
-       annotationparser/gtkdoc/empty/tester.c.xml              \
-       annotationparser/gtkdoc/bugs/tester.h.xml               \
-       annotationparser/gtkdoc/bugs/tester.c.xml               \
-       annotationparser/gtkdoc/annotations/tester.h.xml        \
-       annotationparser/gtkdoc/annotations/tester.c.xml        \
-       annotationparser/gtkdoc/gobject/gobject.h.xml           \
-       annotationparser/gtkdoc/gobject/gobject.c.xml           \
        Regress-1.0-C-expected                                  \
        Regress-1.0-Gjs-expected                                \
        Regress-1.0-Python-expected                             \
diff --git a/tests/scanner/annotationparser/Makefile.am b/tests/scanner/annotationparser/Makefile.am
new file mode 100644
index 0000000..1a65125
--- /dev/null
+++ b/tests/scanner/annotationparser/Makefile.am
@@ -0,0 +1,68 @@
+include $(top_srcdir)/common.mk
+
+TESTS = \
+       test_parser.py \
+       test_patterns.py
+
+TESTS_ENVIRONMENT = builddir=$(builddir) top_builddir=$(top_builddir) srcdir=$(srcdir) 
top_srcdir=$(top_srcdir) \
+       PYTHON=$(PYTHON) UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
+       $(top_srcdir)/tests/gi-tester
+
+EXTRA_DIST = \
+       $(TESTS)                                \
+       README                                  \
+       tests.xsd                               \
+       gi/annotation_allow_none.xml            \
+       gi/annotation_array.xml         \
+       gi/annotation_attributes.xml            \
+       gi/annotation_closure.xml               \
+       gi/annotation_constructor.xml           \
+       gi/annotation_destroy.xml               \
+       gi/annotation_element_type.xml          \
+       gi/annotation_foreign.xml               \
+       gi/annotation_get_value_func.xml        \
+       gi/annotation_in.xml                    \
+       gi/annotation_in_out.xml                \
+       gi/annotation_method.xml                \
+       gi/annotation_out.xml                   \
+       gi/annotation_ref_func.xml              \
+       gi/annotation_rename_to.xml             \
+       gi/annotation_scope.xml         \
+       gi/annotation_set_value_func.xml        \
+       gi/annotation_skip.xml                  \
+       gi/annotation_transfer.xml              \
+       gi/annotation_type.xml                  \
+       gi/annotation_unref_func.xml            \
+       gi/annotation_value.xml         \
+       gi/annotation_virtual.xml               \
+       gi/annotations.xml                      \
+       gi/identifier.xml                       \
+       gi/identifier_section.xml               \
+       gi/identifier_symbol.xml                \
+       gi/parameter.xml                        \
+       gi/parameter_varargs.xml                \
+       gi/syntax.xml                           \
+       gi/syntax_indentation.xml               \
+       gi/syntax_multiline_annotations.xml     \
+       gi/syntax_nested_tags.xml               \
+       gi/syntax_paragraph_breaks.xml          \
+       gi/syntax_whitespace.xml                \
+       gi/tag.xml                              \
+       gi/tag_deprecated.xml                   \
+       gi/tag_description.xml                  \
+       gi/tag_returns.xml                      \
+       gi/tag_since.xml                        \
+       gi/tag_stability.xml                    \
+       gtkdoc/gobject/gtypes.h.xml             \
+       gtkdoc/gobject/gtypes.c.xml             \
+       gtkdoc/gobject/giface.h.xml             \
+       gtkdoc/gobject/giface.c.xml             \
+       gtkdoc/fail/tester.h.xml                \
+       gtkdoc/fail/tester.c.xml                \
+       gtkdoc/empty/tester.c.xml               \
+       gtkdoc/bugs/tester.h.xml                \
+       gtkdoc/bugs/tester.c.xml                \
+       gtkdoc/annotations/tester.h.xml \
+       gtkdoc/annotations/tester.c.xml \
+       gtkdoc/gobject/gobject.h.xml            \
+       gtkdoc/gobject/gobject.c.xml


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]