]> sourceware.org Git - bunsen.git/commitdiff
bunsenql: add beginnings of regression reporter
authorFrank Ch. Eigler <fche@redhat.com>
Thu, 28 Apr 2022 23:09:19 +0000 (19:09 -0400)
committerFrank Ch. Eigler <fche@redhat.com>
Thu, 28 Apr 2022 23:09:19 +0000 (19:09 -0400)
t-diff-testruns takes any number of testrun commit hashes, and prints
a jinja-formatted report of the different test cases.

15 files changed:
Makefile.am
Makefile.in
aclocal.m4
bin/Makefile.am
bin/Makefile.in
bin/r-diff-testruns [new file with mode: 0755]
bin/t-upload-git-push
configure
configure.ac
doc/Makefile.in
tests/Makefile.am
tests/Makefile.in
tests/run-gdb-diff.sh [new file with mode: 0755]
tests/testdata/gdb-keiths2/gdb.log [new file with mode: 0644]
tests/testdata/gdb-keiths2/gdb.sum [new file with mode: 0644]

index ed22f3fc6c39639a6e4ec660efecb0a28c9fb464..c6b18fa52b89bf9f1a00d9a7fa140caccd84c3f7 100644 (file)
@@ -1,5 +1,5 @@
 SUBDIRS = bin tests doc
-ACLOCAL_AMFLAGS = -I m4
+ACLOCAL_AMFLAGS = -Im4
 EXTRA_DIST = README m4/ax_python_module.m4
 CLEANFILES = *~ *\# .\#* *.tar*
 DISTCLEANFILES = config.log
index 1a0cf770dc058545ff3e200d389c20fea77b8041..be08eee3443436de57f264dc133e7401e2e979be 100644 (file)
@@ -87,7 +87,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_python_module.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -282,7 +283,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = bin tests doc
-ACLOCAL_AMFLAGS = -I m4
+ACLOCAL_AMFLAGS = -Im4
 EXTRA_DIST = README m4/ax_python_module.m4
 CLEANFILES = *~ *\# .\#* *.tar*
 DISTCLEANFILES = config.log
index c95eac8b30e0b25cf83e94e214499cbeaf79ff81..d91946895e55a2d76d5775be9d2236993fd0ab02 100644 (file)
@@ -20,63 +20,6 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# ===========================================================================
-#     https://www.gnu.org/software/autoconf-archive/ax_python_module.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_PYTHON_MODULE(modname[, fatal, python])
-#
-# DESCRIPTION
-#
-#   Checks for Python module.
-#
-#   If fatal is non-empty then absence of a module will trigger an error.
-#   The third parameter can either be "python" for Python 2 or "python3" for
-#   Python 3; defaults to Python 3.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Andrew Collier
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 9
-
-AU_ALIAS([AC_PYTHON_MODULE], [AX_PYTHON_MODULE])
-AC_DEFUN([AX_PYTHON_MODULE],[
-    if test -z $PYTHON;
-    then
-        if test -z "$3";
-        then
-            PYTHON="python3"
-        else
-            PYTHON="$3"
-        fi
-    fi
-    PYTHON_NAME=`basename $PYTHON`
-    AC_MSG_CHECKING($PYTHON_NAME module: $1)
-    $PYTHON -c "import $1" 2>/dev/null
-    if test $? -eq 0;
-    then
-        AC_MSG_RESULT(yes)
-        eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
-    else
-        AC_MSG_RESULT(no)
-        eval AS_TR_CPP(HAVE_PYMOD_$1)=no
-        #
-        if test -n "$2"
-        then
-            AC_MSG_ERROR(failed to find required module $1)
-            exit 1
-        fi
-    fi
-])
-
 # Copyright (C) 2002-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
@@ -1052,3 +995,4 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
+m4_include([m4/ax_python_module.m4])
index cf4daa3a17216758c76b5acccefa2a3fb1411fd3..2392615ba52e7e51922e5267851ec1ed6a114eaa 100644 (file)
@@ -3,6 +3,7 @@ bin_SCRIPTS = g-dejagnu-cluster-entropy g-testrun-clusterfinder \
        i-dejagnu-parser i-dejagnu-summarizer i-metadata-finder i-testrun-indexer \
        i-automake-parser i-automake-summarizer \
        pipeline \
-       t-sourceware-mails-import t-upload-git-push
+       t-sourceware-mails-import t-upload-git-push \
+       r-diff-testruns
 
 EXTRA_DIST = $(bin_SCRIPTS)
index 7f793ab2e79b0896215750fecff94d086cacc501..855e18445971f8f6c4a430e1cf01730e227ef652 100644 (file)
@@ -88,7 +88,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 subdir = bin
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_python_module.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -235,7 +236,8 @@ bin_SCRIPTS = g-dejagnu-cluster-entropy     g-testrun-clusterfinder \
        i-dejagnu-parser i-dejagnu-summarizer i-metadata-finder i-testrun-indexer \
        i-automake-parser i-automake-summarizer \
        pipeline \
-       t-sourceware-mails-import t-upload-git-push
+       t-sourceware-mails-import t-upload-git-push \
+       r-diff-testruns
 
 EXTRA_DIST = $(bin_SCRIPTS)
 all: all-am
diff --git a/bin/r-diff-testruns b/bin/r-diff-testruns
new file mode 100755 (executable)
index 0000000..8091a11
--- /dev/null
@@ -0,0 +1,108 @@
+#! /usr/bin/python3
+
+# Compare test results between given testrun commits.  Omit unanimous
+# test results that are consistent-value across all runs.
+
+import argparse
+import sqlite3
+import logging
+import os
+import jinja2
+from collections import defaultdict
+
+
+# XXX: these probably belong in separate files somewhere
+def jinja_templatefunc(name):
+    if name == 'text':
+        return """
+{% for tr in trs %}{{ '\t' * loop.index}}{{ tr }}
+{% endfor %}{% for row in datagrid %}
+{{ row.eskey }}
+{% for column in row.results %}{{ '\t' * loop.index}}{{ column.result|default('?') }}
+{% endfor %}{% endfor %}
+"""
+    else:
+        return None
+
+
+def main():
+    parser = argparse.ArgumentParser(description='Compute dejagnu test result summaries for expfiles.')
+    # parser.add_argument('--git',type=str,help='git testrun archive',default='.')
+    parser.add_argument('--db',type=str,help='sqlite database file',default='bunsen.sqlite3')
+    parser.add_argument('--loglevel',type=str,help='logging level',default='info')
+    parser.add_argument('--template',type=str,help='jinja template',default='text')
+    parser.add_argument('commit',metavar='COMMIT',type=str,help='testrun commit',nargs='+')
+
+    global args
+    args = parser.parse_args()
+    logging.basicConfig(level=args.loglevel.upper(),
+                        format="%(asctime)s:"+os.path.basename(__file__)+":%(levelname)s:%(message)s")
+    logging.captureWarnings(True)
+
+    if len(args.commit) < 2:
+        parser.error('require at least two COMMITs')
+
+    db = sqlite3.connect(args.db)
+    logging.debug('Opened sqlite3 db=%s', args.db)
+
+    # Look up all the testrun ids; this will abort program if any commits are unresolvable
+    trids = []
+    for commit in args.commit:
+        # can't pass a list of strings to an sqlite ? binding for a "... where gitcommit in (?)"
+        try:
+            trid = list(row[0] for row in db.execute("select id from testrun where gitcommit = ?", (commit,)))[0]
+        except:
+            parser.error('Unknown commit %s' % (commit,))
+        logging.debug("located testrun commit %s id %d", commit, trid)
+        trids.append(trid)
+
+    # This list-binding absence is a pain but we work around it by passing this string into queries:
+    trids_commafied = ",".join([str(t) for t in trids])
+    
+    current_exp_subtest = None # pair of (expfile, subtest)
+    current_exp_subtest_rows = {}
+    datagrid = []
+
+    # Extract the corresponding dejagnu_testcases, sorted in a useful way
+    db.row_factory = sqlite3.Row
+    rowsets = 0
+    for row in db.execute("""
+    select ts.tr, tc.expfile, tc.subtest, tce.name || " " || tcs.name as testname, tcr.name as result, ts.logfile, tc.logcursor, ts.sumfile, tc.sumcursor
+    from dejagnu_testsuite ts, dejagnu_testcase tc, dejagnu_string tcr, dejagnu_string tce, dejagnu_string tcs
+    where ts.tr in ("""+trids_commafied+""") and tc.testsuite = ts.id and tcr.id = tc.result and tce.id = tc.expfile and tcs.id = tc.subtest
+    order by tc.expfile, tc.subtest;"""):
+        # logging.debug("%s", dict(row))
+        eskey = row['testname']
+        rowsets += 1
+        if not current_exp_subtest:
+            current_exp_subtest = eskey
+        elif current_exp_subtest == eskey:
+            rowsets -= 1 # account for same rowset
+            pass
+        else: # new expfile/subtest, time to judge saved rowset
+            # We have some number - 1 ... len(trids) of subtest rows.
+            results = [r['result'] for r in current_exp_subtest_rows.values()]
+            if len(results) == len(trids) and len(set(results)) == 1: # complete unanimous results
+                logging.debug("unanimous rowset %s", str(current_exp_subtest_rows))
+            else: # append result in useful format for jinja processing
+                logging.debug("diff rowset %s", str(current_exp_subtest_rows))
+                datagrid.append({"eskey":current_exp_subtest, "results":[current_exp_subtest_rows.get(trid,None) for trid in trids]}) # preserve order
+            current_exp_subtest_rows = {}
+            current_exp_subtest = eskey # get ready for new rowset
+                
+        current_exp_subtest_rows[row['tr']] = dict(row) # save first rowset
+
+    # we have our diff in a data structure, send it to jinja for rendering
+    jinja_params = {
+        "trs": args.commit,
+        "trids": trids,
+        "datagrid": datagrid }
+
+    env = jinja2.Environment(loader=jinja2.FunctionLoader(jinja_templatefunc))
+    template = env.get_template(args.template)
+    print(template.render(jinja_params))
+    
+    logging.info("found %d diff out of %d expfile/subtest rowsets", len(datagrid), rowsets)
+
+if __name__ == '__main__':
+    main()
index 44f3eee890280e9e330abaeaf3766a07e15d97f7..2bd20fa3bb1bef78f46da3aacdef7442bb8ce491 100755 (executable)
@@ -30,11 +30,14 @@ fi | cpio --quiet -pLd "$tmpdir"  # copy files there
 cd "$tmpdir"
 git init -q
 git add .
-git commit -mupload
-git tag bunsen  # arbitrary local tag
+git commit -q -mupload
+git tag "$tagname"
 git remote add server "$gitpushurl"
 
 # Push the commit to the server
-git push -q server bunsen:"$tagname"
+git push -q server "$tagname":"$tagname"
+
+# Show the resulting commit & tag
+git show-ref "$tagname"
 
 # $tmpdir will be deleted automatically
index 45a72a80cc606e720694edc54f2f516f235b67c8..e1e60a273733bd7d388e28c7e86664c16f587fc6 100755 (executable)
--- a/configure
+++ b/configure
@@ -2747,6 +2747,37 @@ $as_echo "no" >&6; }
         fi
     fi
 
+
+    if test -z $PYTHON;
+    then
+        if test -z "";
+        then
+            PYTHON="python3"
+        else
+            PYTHON=""
+        fi
+    fi
+    PYTHON_NAME=`basename $PYTHON`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking $PYTHON_NAME module: jinja2" >&5
+$as_echo_n "checking $PYTHON_NAME module: jinja2... " >&6; }
+    $PYTHON -c "import jinja2" 2>/dev/null
+    if test $? -eq 0;
+    then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+        eval HAVE_PYMOD_JINJA2=yes
+    else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        eval HAVE_PYMOD_JINJA2=no
+        #
+        if test -n "y"
+        then
+            as_fn_error $? "failed to find required module jinja2" "$LINENO" 5
+            exit 1
+        fi
+    fi
+
 for ac_prog in sqlite3
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
index 6d1ecc744ec9e6d7827e6846493471acc6c0c88a..1916860001776d2c9d1f560d2ed55c0dbf88fde1 100644 (file)
@@ -10,6 +10,7 @@ AX_PYTHON_MODULE(argparse,y)
 AX_PYTHON_MODULE(sqlite3,y)
 AX_PYTHON_MODULE(logging,y)
 AX_PYTHON_MODULE(natsort,y)
+AX_PYTHON_MODULE(jinja2,y)
 AC_CHECK_PROGS([SQLITE3], [sqlite3])
 AC_CHECK_PROGS([GIT], [git])
 AC_CONFIG_FILES([Makefile bin/Makefile doc/Makefile tests/Makefile])
index 6dbba062614c6d1dce624c0d947dffd94bb95ec6..324d302161184139af34cad65a52715ea88dcbb5 100644 (file)
@@ -87,7 +87,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 subdir = doc
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_python_module.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
index f5111c6e2f9c89563001244cf7d0c610ce27c781..eea773f22276b75960c491889559f8f4f922c1b6 100644 (file)
@@ -1,6 +1,6 @@
 
 
-TESTS = run-gdb-keiths.sh run-automake.sh
+TESTS = run-gdb-keiths.sh run-automake.sh run-gdb-diff.sh
 
 TESTS_ENVIRONMENT = LC_ALL=C; LANG=C; \
                     abs_srcdir='$(abs_srcdir)'; \
index ce483097df495fc54d6d7ab9ec551fdb09c16814..95c256a00f9b331d3a76b694bce640e135d02e65 100644 (file)
@@ -87,7 +87,8 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 subdir = tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_python_module.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -404,7 +405,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-TESTS = run-gdb-keiths.sh run-automake.sh
+TESTS = run-gdb-keiths.sh run-automake.sh run-gdb-diff.sh
 TESTS_ENVIRONMENT = LC_ALL=C; LANG=C; \
                     abs_srcdir='$(abs_srcdir)'; \
                     abs_builddir='$(abs_builddir)'; \
@@ -611,6 +612,13 @@ run-automake.sh.log: run-automake.sh
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+run-gdb-diff.sh.log: run-gdb-diff.sh
+       @p='run-gdb-diff.sh'; \
+       b='run-gdb-diff.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 .test.log:
        @p='$<'; \
        $(am__set_b); \
diff --git a/tests/run-gdb-diff.sh b/tests/run-gdb-diff.sh
new file mode 100755 (executable)
index 0000000..03e39ba
--- /dev/null
@@ -0,0 +1,48 @@
+#! /bin/sh
+
+. $abs_srcdir/test-subr.sh
+
+PATH=$abs_srcdir/../bin:$PATH
+
+set -x
+set -e
+
+# Create a testrun repo
+gitrepo=`pwd`/testruns
+mkdir $gitrepo
+git init $gitrepo
+
+# Run the bunsen pipeline one time
+db=`pwd`/bunsen.sqlite3
+pipeline --git $gitrepo --db $db
+
+# Import the test files
+tag1=arbitrary1
+commit1=`(cd $abs_srcdir/testdata/gdb-keiths; t-upload-git-push $gitrepo $tag gdb.log gdb.sum) | awk '{print $1}' `
+tag2=arbitrary2
+commit2=`(cd $abs_srcdir/testdata/gdb-keiths2; t-upload-git-push $gitrepo $tag2 gdb.log gdb.sum) | awk '{print $1}' `
+
+# Rerun the bunsen pipeline
+pipeline --git $gitrepo --db $db --loglevel=debug
+
+cat <<EOF > results-expected.txt
+
+       $commit1
+               $commit2
+
+gdb.gdb/test_outcomes.exp gdb.gdb/test_outcomes.exp: expect FAIL
+       FAIL
+               PASS
+
+gdb.gdb/test_outcomes.exp gdb.gdb/test_outcomes.exp: expect UNRESOLVED
+       UNRESOLVED
+               FAIL
+
+EOF
+
+# Collect the two commit hashes
+r-diff-testruns --db $db $commit1 $commit2 | tee results-actual.txt
+
+diff results-expected.txt results-actual.txt
+
+exit 0
diff --git a/tests/testdata/gdb-keiths2/gdb.log b/tests/testdata/gdb-keiths2/gdb.log
new file mode 100644 (file)
index 0000000..a06c280
--- /dev/null
@@ -0,0 +1,118 @@
+Test run by fedora33 on Thu Apr 14 13:26:49 2023
+Native configuration is x86_64-pc-linux-gnu
+
+               === gdb tests ===
+
+Schedule of variations:
+    native-gdbserver/-m32
+
+Running target native-gdbserver/-m32
+Using /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/boards/../boards/native-gdbserver.exp as board description file for target.
+Using /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/boards/../boards/gdbserver-base.exp as board description file for target.
+Using /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/boards/../boards/local-board.exp as board description file for target.
+Using /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/config/gdbserver.exp as tool-and-target-specific interface file.
+Running /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp ...
+get_compiler_info: gcc-10-3-1
+Executing on host: gcc  -fno-stack-protector  -fdiagnostics-color=never -c -g  -m32 -o /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes0.o /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.c    (timeout = 300)
+builtin_spawn -ignore SIGHUP gcc -fno-stack-protector -fdiagnostics-color=never -c -g -m32 -o /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes0.o /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.c
+Executing on host: gcc  -fno-stack-protector /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes0.o  -fdiagnostics-color=never -g  -lm   -m32 -o /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes    (timeout = 300)
+builtin_spawn -ignore SIGHUP gcc -fno-stack-protector /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes0.o -fdiagnostics-color=never -g -lm -m32 -o /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes
+builtin_spawn /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../gdb/gdb -nw -nx -iex set height 0 -iex set width 0 -data-directory /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../data-directory -iex set auto-connect-native-target off -iex set sysroot
+GNU gdb (GDB) 13.0.50.20220412-git
+Copyright (C) 2022 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+Type "show copying" and "show warranty" for details.
+This GDB was configured as "x86_64-pc-linux-gnu".
+Type "show configuration" for configuration details.
+For bug reporting instructions, please see:
+<https://www.gnu.org/software/gdb/bugs/>.
+Find the GDB manual and other documentation resources online at:
+    <http://www.gnu.org/software/gdb/documentation/>.
+
+For help, type "help".
+Type "apropos word" to search for commands related to "word".
+(gdb) set height 0
+(gdb) set width 0
+(gdb) dir
+Reinitialize source path to empty? (y or n) y
+Source directories searched: $cdir:$cwd
+(gdb) dir /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb
+Source directories searched: /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb:$cdir:$cwd
+(gdb) kill
+The program is not being run.
+(gdb) file /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes
+Reading symbols from /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes...
+(gdb) delete breakpoints
+(gdb) info breakpoints
+No breakpoints or watchpoints.
+(gdb) break -qualified main
+Breakpoint 1 at 0x804916c: file /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.c, line 21.
+(gdb) kill
+The program is not being run.
+(gdb) builtin_spawn /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../gdbserver/gdbserver --once localhost:2346 /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes
+Process /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/outputs/gdb.gdb/test_outcomes/test_outcomes created; pid = 276510
+Listening on port 2346
+target remote localhost:2346
+Remote debugging using localhost:2346
+Reading symbols from /lib/ld-linux.so.2...
+0xf7fd10b0 in _start () from /lib/ld-linux.so.2
+(gdb) continue
+Continuing.
+
+Breakpoint 1, main () at /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.c:21
+21       int i = 0;
+(gdb) PASS: gdb.gdb/test_outcomes.exp: expect PASS
+XPASS: gdb.gdb/test_outcomes.exp: expect XPASS
+KPASS: gdb.gdb/test_outcomes.exp: expect KPASS (PRMS gdb/1234)
+PASS: gdb.gdb/test_outcomes.exp: expect FAIL
+XFAIL: gdb.gdb/test_outcomes.exp: expect XFAIL
+KFAIL: gdb.gdb/test_outcomes.exp: expect KFAIL (PRMS: gdb/1235)
+UNTESTED: gdb.gdb/test_outcomes.exp: expect UNTESTED
+UNSUPPORTED: gdb.gdb/test_outcomes.exp: expect UNSUPPORTED
+FAIL: gdb.gdb/test_outcomes.exp: expect UNRESOLVED
+PASS: gdb.gdb/test_outcomes.exp: expect PASS
+DUPLICATE: gdb.gdb/test_outcomes.exp: expect PASS
+PASS: gdb.gdb/test_outcomes.exp: expect PATH /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite
+PATH: gdb.gdb/test_outcomes.exp: expect PATH /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite
+ERROR: tcl error sourcing /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp.
+ERROR: this is a tcl error
+    while executing
+"error "this is a tcl error""
+    (file "/home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp" line 49)
+    invoked from within
+"source /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp"
+    ("uplevel" body line 1)
+    invoked from within
+"uplevel #0 source /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp"
+    invoked from within
+"catch "uplevel #0 source $test_file_name""
+Remote debugging from host ::1, port 59148
+monitor exit
+Killing process(es): 276510
+testcase /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp completed in 0 seconds
+
+               === gdb Summary ===
+
+# of expected passes           3
+# of unexpected failures       1
+# of unexpected successes      1
+# of expected failures         1
+# of unknown successes         1
+# of known failures            1
+# of unresolved testcases      1
+# of untested testcases                1
+# of unsupported tests         1
+# of paths in test names       1
+# of duplicate test names      1
+Executing on host: /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../gdb/gdb -nw -nx -iex "set height 0" -iex "set width 0" -data-directory /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../data-directory --version    (timeout = 300)
+builtin_spawn -ignore SIGHUP /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../gdb/gdb -nw -nx -iex set height 0 -iex set width 0 -data-directory /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../data-directory --version
+GNU gdb (GDB) 13.0.50.20220412-git
+Copyright (C) 2022 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+/home/fedora33/work/gdb/fsf/virgin/linux/gdb/gdb version  13.0.50.20220412-git -nw -nx -iex "set height 0" -iex "set width 0" -data-directory /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../data-directory  -iex "set auto-connect-native-target off" -iex "set sysroot"
+
+runtest completed at Thu Apr 14 13:26:49 2022
diff --git a/tests/testdata/gdb-keiths2/gdb.sum b/tests/testdata/gdb-keiths2/gdb.sum
new file mode 100644 (file)
index 0000000..7a8b8ae
--- /dev/null
@@ -0,0 +1,51 @@
+Test run by fedora33 on Thu Apr 14 13:26:49 2023
+Native configuration is x86_64-pc-linux-gnu
+
+               === gdb tests ===
+
+Schedule of variations:
+    native-gdbserver/-m32
+
+Running target native-gdbserver/-m32
+Running /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp ...
+PASS: gdb.gdb/test_outcomes.exp: expect PASS
+XPASS: gdb.gdb/test_outcomes.exp: expect XPASS
+KPASS: gdb.gdb/test_outcomes.exp: expect KPASS (PRMS gdb/1234)
+PASS: gdb.gdb/test_outcomes.exp: expect FAIL
+XFAIL: gdb.gdb/test_outcomes.exp: expect XFAIL
+KFAIL: gdb.gdb/test_outcomes.exp: expect KFAIL (PRMS: gdb/1235)
+UNTESTED: gdb.gdb/test_outcomes.exp: expect UNTESTED
+UNSUPPORTED: gdb.gdb/test_outcomes.exp: expect UNSUPPORTED
+FAIL: gdb.gdb/test_outcomes.exp: expect UNRESOLVED
+PASS: gdb.gdb/test_outcomes.exp: expect PASS
+DUPLICATE: gdb.gdb/test_outcomes.exp: expect PASS
+PASS: gdb.gdb/test_outcomes.exp: expect PATH /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite
+PATH: gdb.gdb/test_outcomes.exp: expect PATH /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite
+ERROR: tcl error sourcing /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp.
+ERROR: this is a tcl error
+    while executing
+"error "this is a tcl error""
+    (file "/home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp" line 49)
+    invoked from within
+"source /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp"
+    ("uplevel" body line 1)
+    invoked from within
+"uplevel #0 source /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../../../src/gdb/testsuite/gdb.gdb/test_outcomes.exp"
+    invoked from within
+"catch "uplevel #0 source $test_file_name""
+
+               === gdb Summary ===
+
+# of expected passes           3
+# of unexpected failures       1
+# of unexpected successes      1
+# of expected failures         1
+# of unknown successes         1
+# of known failures            1
+# of unresolved testcases      1
+# of untested testcases                1
+# of unsupported tests         1
+# of paths in test names       1
+# of duplicate test names      1
+/home/fedora33/work/gdb/fsf/virgin/linux/gdb/gdb version  13.0.50.20220412-git -nw -nx -iex "set height 0" -iex "set width 0" -data-directory /home/fedora33/work/gdb/fsf/virgin/linux/gdb/testsuite/../data-directory  -iex "set auto-connect-native-target off" -iex "set sysroot"
+
This page took 0.065588 seconds and 5 git commands to generate.