* [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks
@ 2022-01-26 12:35 Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
` (7 more replies)
0 siblings, 8 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
Hi,
changes v1->v2:
* new commits to remove ltp-scanner and various checks.
There are still some AC_LINK_IFELSE left and some check could be for
sure fixed (e.g. LIBNUMA_API_VERSION 2 is old enough to remove the check),
but let§s postpone it to later.
I also wanted to further clean lib/cloner.c - I wanted to remove
ltp_clone_ and __clone2 for ia64 [1]. ia64 is EOL [2], but hppa is still
supported [3]. Maybe I should ask James Bottomley and
linux-parisc@vger.kernel.org whether they even use LTP for testing.
Tested:
https://github.com/pevik/ltp/actions/runs/1750787899
(opensuse/leap has installation problem, not related to this issue)
Kind regards,
Petr
[1] https://github.com/pevik/ltp/commit/e7da898e16ad592f6bc311c3bad6e0c82977fec4
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=228345bf98cd78f91d007478a51f9a471489e44a
[3] https://parisc.wiki.kernel.org/index.php/Main_Page#PA-RISC_NEWS
Petr Vorel (7):
pan: Remove ltp-scanner
m4: Remove check for io_set_eventfd
m4: Remove check for struct perf_event_attr
realtime/m4: Simplify exp10 check
m4: Remove check for MREMAP_FIXED
m4: Remove check for clone() supports 7 args
m4: Fix warnings
.gitignore | 1 -
INSTALL | 2 -
configure.ac | 28 +-
lib/cloner.c | 10 -
m4/ltp-clone7args.m4 | 17 -
m4/ltp-eventfd.m4 | 11 +-
m4/ltp-kernel_devel.m4 | 6 +-
m4/ltp-mremap_fixed.m4 | 12 -
m4/ltp-perf_event_open.m4 | 16 -
pan/Makefile | 8 -
pan/debug.c | 84 ---
pan/debug.h | 67 ---
pan/ltp-scanner.c | 175 -------
pan/reporter.c | 270 ----------
pan/reporter.h | 80 ---
pan/scan.h | 42 --
pan/scan.l | 456 -----------------
pan/symbol.c | 467 -----------------
pan/symbol.h | 104 ----
pan/tag_report.c | 478 ------------------
testcases/cve/cve-2015-3290.c | 7 +-
testcases/kernel/mem/thp/thp02.c | 5 -
testcases/kernel/syscalls/eventfd/eventfd01.c | 18 +-
testcases/kernel/syscalls/mremap/mremap05.c | 11 -
.../perf_event_open/perf_event_open01.c | 16 +-
.../perf_event_open/perf_event_open02.c | 8 +-
.../perf_event_open/perf_event_open03.c | 7 +-
testcases/realtime/configure.ac | 4 +-
testcases/realtime/m4/check.m4 | 6 +-
testcases/realtime/m4/ltp-exp10.m4 | 37 --
30 files changed, 30 insertions(+), 2423 deletions(-)
delete mode 100644 m4/ltp-clone7args.m4
delete mode 100644 m4/ltp-mremap_fixed.m4
delete mode 100644 m4/ltp-perf_event_open.m4
delete mode 100644 pan/debug.c
delete mode 100644 pan/debug.h
delete mode 100644 pan/ltp-scanner.c
delete mode 100644 pan/reporter.c
delete mode 100644 pan/reporter.h
delete mode 100644 pan/scan.h
delete mode 100644 pan/scan.l
delete mode 100644 pan/symbol.c
delete mode 100644 pan/symbol.h
delete mode 100644 pan/tag_report.c
delete mode 100644 testcases/realtime/m4/ltp-exp10.m4
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
2022-01-26 14:50 ` Cyril Hrubis
2022-01-27 8:38 ` Jan Stancek
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
` (6 subsequent siblings)
7 siblings, 2 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
We believe that nobody uses it.
Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2
.gitignore | 1 -
INSTALL | 2 -
configure.ac | 1 -
pan/Makefile | 8 -
pan/debug.c | 84 --------
pan/debug.h | 67 -------
pan/ltp-scanner.c | 175 -----------------
pan/reporter.c | 270 --------------------------
pan/reporter.h | 80 --------
pan/scan.h | 42 ----
pan/scan.l | 456 -------------------------------------------
pan/symbol.c | 467 --------------------------------------------
pan/symbol.h | 104 ----------
pan/tag_report.c | 478 ----------------------------------------------
14 files changed, 2235 deletions(-)
delete mode 100644 pan/debug.c
delete mode 100644 pan/debug.h
delete mode 100644 pan/ltp-scanner.c
delete mode 100644 pan/reporter.c
delete mode 100644 pan/reporter.h
delete mode 100644 pan/scan.h
delete mode 100644 pan/scan.l
delete mode 100644 pan/symbol.c
delete mode 100644 pan/symbol.h
delete mode 100644 pan/tag_report.c
diff --git a/.gitignore b/.gitignore
index 3efac384f6..fd66dac786 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,7 +45,6 @@ autom4te.cache
/lib/ltp.pc
/pan/ltp-bump
/pan/ltp-pan
-/pan/ltp-scanner
cscope.*
ncscope.*
diff --git a/INSTALL b/INSTALL
index 3bb37d60b9..eb63539a8c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -27,8 +27,6 @@ configure file).
pkgconf is recommended also for compilation from tarball as it
does automatic detection of some library support.
-GNU Bison / Berkeley Yacc is required for ltp-scanner.
-
Configuration
-------------
diff --git a/configure.ac b/configure.ac
index 3c56d19224..8becd74c2c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,6 @@ AC_PROG_CC
# 2.62.
AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
AC_PROG_AR
-AC_PROG_LEX
AC_PROG_RANLIB
AC_DEFUN([AC_PROG_STRIP], [AC_CHECK_TOOL(STRIP, strip, :)])
AC_PROG_STRIP
diff --git a/pan/Makefile b/pan/Makefile
index 8cefa99ae6..e8596ec26b 100644
--- a/pan/Makefile
+++ b/pan/Makefile
@@ -39,18 +39,10 @@ INSTALL_DIR := bin
MAKE_TARGETS := ltp-bump ltp-pan
-ifeq ($(strip $(LEXLIB)),)
-$(warning ltp-scanner will not be built because a working copy of lex was not found)
-else
-MAKE_TARGETS += ltp-scanner
-endif
-
ltp-bump: ltp-bump.o zoolib.o
ltp-pan: ltp-pan.o zoolib.o splitstr.o
-ltp-scanner: scan.o ltp-scanner.o reporter.o tag_report.o symbol.o splitstr.o debug.o
-
# flex does some whacky junk when it generates files on the fly, so let's make
# sure gcc doesn't get lost...
vpath %.c $(abs_srcdir):$(abs_builddir)))
diff --git a/pan/debug.c b/pan/debug.c
deleted file mode 100644
index 9027f9bac8..0000000000
--- a/pan/debug.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: debug.c,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#include <stdio.h>
-#include <string.h>
-#include "reporter.h"
-
-#ifdef DEBUGGING
-int Debug[MAXDEBUG]; /* Debug level in their areas */
-#endif
-
-/*
- * set debug areas & levels
- *
- * Syntax: area[,area]:level[,area[,area]:level]...
- */
-int set_debug(char *optarg)
-{
-#ifdef DEBUGGING
- /* pointers to the debug area and level in the option's arguments */
- char *d_area, *d_level;
- /* debug area and level after converted to integers */
- int db_area, db_level;
-
- d_area = optarg;
-
- while (*d_area) {
- d_level = strchr(d_area, ':');
- *d_level++ = '\0';
- db_level = atoi(d_level);
- db_area = atoi(d_area);
-
- if (db_area > MAXDEBUG) {
- printf("Error - Debug area %s > maximum of %d\n",
- d_area, MAXDEBUG);
- exit(-1);
- }
-
- while (d_area != NULL) {
- db_area = atoi(d_area);
- printf("Debug area %d set to %d\n", db_area, db_level);
- Debug[db_area] = db_level;
- if ((d_area = strchr(d_area, ',')) != NULL)
- d_area++;
- }
- if ((d_area = strchr(d_level, ',')) == NULL)
- break;
- }
-#else
- printf("Debugging is not enabled. -D has been ignored\n");
-#endif
-
- return 0;
-}
diff --git a/pan/debug.h b/pan/debug.h
deleted file mode 100644
index fd8182a53d..0000000000
--- a/pan/debug.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: debug.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _DEBUG_H_
-#define _DEBUG_H_
-
-int set_debug( char * );
-
-/*
- * DEBUG support
- *
- * use -DDEBUGGING with cc to enable debugging
- */
-#ifdef DEBUGGING
-
-extern int Debug[];
-#define MAXDEBUG 30
-#define DEBUG(a,l) if (Debug[a] >= l)
-#define DEBUGO(a,l,c) if (Debug[a] >= l || c)
-
-#else
-
-#define DEBUG(a,l) if (0)
-#define DEBUGO(a,l,c) if (0)
-
-#endif
-
-#define D_INIT 1
-#define D_SCAN 2
-#define D_SCAN_LEX 3
-#define D_SCAN_CUTS 4
-#define D_REPORT 5
-#define D_REP_H 6
-#define D_REP_CUTS 7
-
-
-#endif
diff --git a/pan/ltp-scanner.c b/pan/ltp-scanner.c
deleted file mode 100644
index afdd757759..0000000000
--- a/pan/ltp-scanner.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: ltp-scanner.c,v 1.1 2009/05/19 09:39:11 subrata_modak Exp $ */
-/*
- * An RTS/pan driver output processing program.
- *
- * This program reads an RTS/pan driver output format file, parses it using lex
- * and saves the information into an in-memory hierarchical keyword table.
- *
- * The reporting segment of the program reads that keyword table to produce
- * it's reports.
- *
- * Synopsis:
- * ltp-scanner [ -e ] [ -D area:level ] [ -h ]
- *
- * Description:
- * Scanner is part of the RTS 2.0 reporting mechanism or pan.
- * It processes RTS/pan driver format output and produces a single simple report
- * of each test tag executed, the TCIDs it executed, and their testcases.
- *
- * Options:
- * -e
- * use an "extended" output format
- *
- * -D
- * enable debug statements. Areas are listed in report2.h and levels
- * are in the code. Must be compiled with "-DDEBUGGING"
- *
- * -h
- * print out a command usage statement and exit.
- *
- * INPUT
- * The input must conform to the RTS/pan driver format.
- *
- * Report Format
- * A single report style is used. It consists of a header made of all
- * keywords in the rts_keywords fields of the driver output, and the test
- * information.
- * interpretation of CUTS "number of testcases" field when there are
- * multiple TCIDs. It must be the sum of all TCIDs' testcases.
- *
- * System Configuration:
- * ARCHITECTURE IOS_MODEL_E CRAY_YMP YMP7XX
- * CONFIG JOBCNTL AVL BMD EMA HPM SECURE TFM_UDB_6 SDS SSD
- * RELEASE 82
- * UNAME sn1703c cool 8.2.0ae d82.25
- * date 03/24/94
- *
- * tag tcid testcase status contact
- * ------------------------------------------------------------------------
- *
- * When a report is made for only a tag, the TCID and Testcase fields
- * contain a dash ( "-" ). The intention is that the output be usable
- * by other Unix programs.
- *
- * When a report is made for all TCIDs and Testcases, a star ( "*" ) is used.
- *
- * When in extended mode, an additional output line is produced for each
- * tag.
- *
- * This line is identified with a "!" in the TCID and Testcase fields.
- *
- * It has no minimum and maximum field widths, so the output does not
- * line up in columns
- *
- * the "status" field contains the initiation status
- *
- * the "contact" field does not expand multiple comma-separated contacts
- *
- * fields:
- * tag, tcid, testcase, status, contact,
- * start time, duration, termination type, termination id,
- * output starting line, output ending line
- *
- * RELATED DOCUMENTS
- * Regression Test System Phase 2 Test Result Reporting System
- *
- * AUTHOR
- * Glen Overby wrote the code.
- *
- * Internal Data Format
- * All data is maintained in a hierarchical key database. While there are
- * many available databases, this impliments a simple ASCII comma-separated
- * keyed database.
- *
- * Key Naming
- * - The top-level keys are named after the RTS or pan test tags.
- * - The top-level key named "_RTS" contains the RTS Keywords
- * - Each tag has a "_keys" tag that contains the key fields from
- * the TEST_START and EXECUTION_STATUS fields.
- */
-
-#include <getopt.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "scan.h"
-#include "debug.h"
-#include "reporter.h"
-#include "symbol.h"
-
-char *cnf; /* current filename */
-int extended = 0; /* -e option */
-
-int main(int argc, char *argv[])
-{
- SYM tags; /* tag data */
- int c;
-
- while ((c = getopt(argc, argv, "D:ehi")) != -1) {
- switch (c) {
- case 'i':
- set_iscanner();
- break;
- case 'D':
- set_debug(optarg);
- break;
- case 'e':
- extended++;
- break;
- case 'h':
- fprintf(stderr,
- "%s [-e] [-i] [ -D area, level ] input-filenames\n",
- argv[0]);
- exit(0);
- default:
- fprintf(stderr, "invalid argument, %c\n", c);
- exit(1);
- }
- }
-
- lex_files(&argv[optind]); /* I hope that argv[argc+1] == NULL */
- tags = sym_open(0, 0, 0);
-
- scanner(tags);
-#ifdef DEBUGGING
- DEBUG(D_INIT, 1)
- sym_dump_s(tags, 0);
-#endif
- reporter(tags);
-
- exit(0);
-}
diff --git a/pan/reporter.c b/pan/reporter.c
deleted file mode 100644
index b9ec482d41..0000000000
--- a/pan/reporter.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: reporter.c,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-/*
- * This is the report generator half of the scanner program.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include "reporter.h"
-#include "symbol.h"
-#include "tag_report.h"
-#include "splitstr.h"
-
-/************************************************************************
- * Report Generation *
- ************************************************************************/
-
-static int scanner_reporter(SYM);
-static int iscanner_reporter(SYM);
-static int scanner_test_end(SYM, SYM, SYM);
-static int iscanner_test_end(SYM, SYM, SYM);
-
-static int (*reporter_func) (SYM) = scanner_reporter;
-static int (*test_end_func) (SYM, SYM, SYM) = scanner_test_end;
-
-/*
- * Do the report generation.
- *
- * A problem: I really need multiple cursors. I'd rather not look into
- * the depths of the current symbol table implimentation (there are the
- * cursors there that I could use) so that a different (faster!) symbol
- * table can be used in the future.
- *
- * I could get a key (tag), get it's sub-keys (TCIDs), then get the key
- * again to reset to the top level, _then_ get the next key. That would
- * be very inefficient.
- *
- * The solution I chose is to extract all tags into a list (char array),
- * then go thru that list with the cursor free for other levels to use.
- *
- * (1) make a list (2d char array) of all Tags
- * (2) search for the first tag that has a "stime" record, and use that as
- * the date (MMDDYY) that the tests were run.
- * (3) print the report header
- * (4) go thru all tags and report each as described at the beginning of
- * this file
- */
-static int scanner_reporter(SYM tags)
-{
- DBT Key, Data;
- SYM Tag, Keys;
-
- time_t clock;
- struct tm *tm;
-
- /* a list of tags, a count of the number of tags allocated to the list,
- and a pointer to go thru the list */
- char **taglist, **tl;
- int ntags;
- int tagcount; /* how many tags used */
-
- char key_get[KEYSIZE];
- char *info;
-
- /*
- * extract tag names from data
- */
- ntags = NTAGS_START;
- taglist = malloc(sizeof(char *) * ntags);
- tagcount = 0;
-
- tl = taglist;
- sym_seq(tags, &Key, &Data, R_FIRST);
- do {
- if (tagcount == ntags) {
- /* exceeded tag array size -- realloc */
- ntags += NTAGS_START;
- taglist =
- (char **)realloc(taglist, sizeof(char *) * ntags);
- tl = taglist + tagcount;
- }
-
- *tl++ = Key.data;
- tagcount++;
- } while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
-
- if (tagcount == ntags) {
- /* exceeded tag array size -- realloc */
- ntags += NTAGS_START;
- taglist = (char **)realloc(taglist, sizeof(char *) * ntags);
- tl = taglist + tagcount;
- }
-
- *tl++ = NULL;
- ntags = tagcount;
- /* Retrieve one "stime" to get the date. */
- for (tl = taglist; *tl != NULL; tl++) {
- strcpy(key_get, *tl);
- strcat(key_get, ",_keys,stime");
- if ((info = (char *)sym_get(tags, key_get)) != NULL) {
- clock = atoi(info);
- tm = gmtime(&clock);
- strftime(key_get, KEYSIZE, "%x", tm);
- sym_put(tags, strdup("_RTS,date"), strdup(key_get), 0);
- break;
- }
- }
-
- print_header(tags);
-
- /*
- * The way that I am using 'Keys' and 'Tag' makes assumptions about the
- * internals of the sym_* data structure.
- */
- /* dump 'em all */
- for (tl = taglist; *tl != NULL; tl++) {
- if (!strcmp(*tl, "_RTS"))
- continue;
-
- strcpy(key_get, *tl);
- strcat(key_get, ",_keys");
- if ((Keys = sym_get(tags, key_get)) == NULL) {
- return 0;
- }
-
- strcpy(key_get, *tl);
- if ((Tag = sym_get(tags, key_get)) != NULL) {
- tag_report(NULL, Tag, Keys);
- }
- }
- free(taglist);
-
- return 0;
-}
-
-/*
- * End-Of-Test seen, insert this tag into the global tag data.
- * (1) Get the test's tag
- * (2) insert the keywords in the "_keys" tag
- * (3) insert it into the global data under this tag, replacing any existing
- * data.
- *
- * a "feature" of the key implimentation: I can insert a key tree
- * under another key tree with almost zero brainwork because a SYM
- * is what the DATA area points to.
- */
-static int scanner_test_end(SYM alltags, SYM ctag, SYM keys)
-{
- static int notag = 0; /* counter for records with no tag (error) */
- char tagname[KEYSIZE]; /* used when creating name (see above) */
- char *tag; /* tag name to look things up in */
- char *status; /* initiation status of old tag */
- SYM rm; /* pointer to old tag -- to remove it */
-
- if (alltags == NULL || keys == NULL || ctag == NULL)
- return -1; /* for really messed up test output */
-
- /* insert keys into tag */
- sym_put(ctag, "_keys", (void *)keys, 0);
-
- /* get the tag, or build a new one */
- if ((tag = (char *)sym_get(keys, "tag")) == NULL) {
- /* this is an "impossible" situation: test_output checks for this
- * and creates a dummy tag. */
- sprintf(tagname, "no_tag_%d", notag++);
- fprintf(stderr, "No TAG key! Using %s\n", tagname);
- sym_put(keys, "tag", strdup(tagname), 0);
- tag = strdup(tagname);
- }
-
- /*
- * Special case: duplicate tag that has an initiation_status failure
- * is thrown away.
- */
- if ((rm = (SYM) sym_get(alltags, tag)) != NULL) {
- if ((status =
- (char *)sym_get(keys, "initiation_status")) != NULL) {
- if (strcmp(status, "ok")) {
- /* do not take new data. remove new data */
- sym_rm(ctag, RM_KEY | RM_DATA);
- return 1;
- } else {
- /* remove old data in alltags */
- sym_rm(rm, RM_KEY | RM_DATA);
- }
- } else {
- /* new data does not have an initiation_status -- throw it away */
- sym_rm(ctag, RM_KEY | RM_DATA);
- return 1;
- }
- }
-
- /* put new data.. replaces existing "tag" key if it exists
- * (it's data should have been removed above) */
- sym_put(alltags, tag, ctag, PUT_REPLACE);
-
- return 0;
-}
-
-static int iscanner_reporter(SYM tags)
-{
- return 0;
-}
-
-static int iscanner_test_end(SYM alltags, SYM ctag, SYM keys)
-{
- if (alltags == NULL || keys == NULL || ctag == NULL)
- return -1; /* for really messed up test output */
-
- /* insert keys into tag */
- sym_put(ctag, "_keys", (void *)keys, 0);
-
- return tag_report(alltags, ctag, keys);
-}
-
-int reporter(SYM s)
-{
- return reporter_func(s);
-}
-
-int test_end(SYM a, SYM b, SYM c)
-{
- return test_end_func(a, b, c);
-}
-
-void set_scanner(void)
-{
- reporter_func = scanner_reporter;
- test_end_func = scanner_test_end;
-}
-
-void set_iscanner(void)
-{
- reporter_func = iscanner_reporter;
- test_end_func = iscanner_test_end;
-}
diff --git a/pan/reporter.h b/pan/reporter.h
deleted file mode 100644
index 9af554c6a7..0000000000
--- a/pan/reporter.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: reporter.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _REPORT_H_
-#define _REPORT_H_
-#include "symbol.h"
-
-void set_scanner(void);
-void set_iscanner(void);
-
-int reporter( SYM );
-int test_end( SYM, SYM, SYM );
-
-/*
- * how much TCID space to start with (table)
- */
-#define NTCID_START 5
-
-/*
- * how much tag space to start with (table)
- */
-#define NTAGS_START 500
-
-/* Return Tokens (from lex) */
-#define KW_START 100
-#define KW_END 101
-#define TEST_START 102
-#define TEST_OUTPUT 103
-#define EXEC_STATUS 104
-#define TEST_END 105
-#define TEXT_LINE 106
-#define KEYWORD 107
-#define KEYWORD_QUOTED 108
-#define CUTS_RESULT 109
-#define CUTS_RESULT_R 110
-#define SPACE 999
-
-/* Scan Modes (above and beyond what I use lex for) */
-#define SCAN_OUTSIDE 10 /* not in anything */
-#define SCAN_RTSKEY 20 /* keywords: rts_keyword */
-#define SCAN_TSTKEY 21 /* keywords: either test_start or
- execution_status */
-#define SCAN_OUTPUT 30 /* test_output */
-
-/*
- * Configuration type things
- */
-#define KEYSIZE 255 /* maximum key size */
-
-#endif
diff --git a/pan/scan.h b/pan/scan.h
deleted file mode 100644
index 6e01a323cd..0000000000
--- a/pan/scan.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: scan.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _SCAN_H_
-#define _SCAN_H_
-#include "symbol.h"
-
-int scanner ( SYM );
-int sym_dump_s ( SYM, int );
-int lex_files( char ** );
-
-#endif
diff --git a/pan/scan.l b/pan/scan.l
deleted file mode 100644
index fdc33f330e..0000000000
--- a/pan/scan.l
+++ /dev/null
@@ -1,456 +0,0 @@
-%{
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: scan.l,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-/*
- * Lex rules for input processing.
- *
- * This handles all of the input parsing. The rules liste here properly
- * store or process the pertenant input data in the proper ways. The rules
- * for the various patterns maintains a "state" to determine if corrupted
- * input is seen (%Start keys + internal ones that only flag errors).
- *
- * See scanner.c for routines called from the actions.
- *
- * States:
- * SCAN_OUTSIDE
- * start-up state, inbetween tests
- * SCAN_RTSKEY valid from SCAN_OUTSIDE
- * from rts_keyword_start to _end
- * accompanied by lex KEY state.
- * SCAN_TSTKEY valid from SCAN_OUTSIDE
- * test_start to test_output or test_end,
- * execution_status to test_end
- * accompanied by lex KEY state.
- * SCAN_OUTPUT
- * test_output to execution_status.
- * accompanied by lex OUT or CUTS states.
- */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "scan.h"
-#include "reporter.h"
-#include "symbol.h"
-#include "tag_report.h"
-
-int scan_mode = SCAN_OUTSIDE; /* current mode */
-char *key, *cont; /* keyword pieces */
-SYM keys=NULL; /* stored keywords */
-SYM ctag=NULL; /* temporary - for storing current tag's info */
-SYM alltags; /* entire tag database. set to scanner 'tags' param.*/
-SYM k; /* temporary sym pointer -- for key removal */
-char info[KEYSIZE]; /* tmp string for inserting line numbers */
-static int test_output( SYM, SYM);
-static int check_mode(int, int, ...);
-
-/*
- * Lex Definitions:
- * UI Unsigned Integer
- * A Alphabetic
- * W "Word" characters (Alpha, Numeric, Hyphens, Underscores)
- * S Space characters
- */
-%}
-
-%option noc++
-%option noinput
-%option nolex-compat
-%option nounput
-%option yylineno
-
-UI [0-9]+
-A [a-zA-Z]+
-W [a-zA-Z0-9_-]+
-S [ \t]+
-
-%Start KEY OUT CUTS
-%%
-^<<<rts_keyword_start>>>$ {
- BEGIN KEY;
- check_mode(scan_mode, SCAN_OUTSIDE, 0);
- scan_mode = SCAN_RTSKEY;
-
- /* remove any keys that exist right now */
- if(keys != NULL)
- sym_rm(keys, RM_KEY | RM_DATA);
- /* start a new table of keys */
- keys = sym_open(0, 0, 0);
- return(KW_START);
- /* NOTREACHED */
-}
-
-^<<<rts_keyword_end>>>$ {
- BEGIN 0;
- check_mode(scan_mode, SCAN_RTSKEY, 0);
- scan_mode = SCAN_OUTSIDE;
-#ifdef DEBUGGING
- DEBUG(D_SCAN_LEX, 10) {
- printf("RTS Keywords:\n");
- sym_dump_s(keys, 0);
- }
-#endif
- /* remove _RTS key, if it exists, before replacing it */
- if( (k=(SYM)sym_get(alltags, "_RTS")) != NULL) {
- sym_rm(k, RM_KEY | RM_DATA);
- }
-
- sym_put(alltags, "_RTS", (void *)keys, PUT_REPLACE);
- keys = NULL;
-
- return(KW_END);
- /* NOTREACHED */
-}
-
-^<<<test_start>>>$ {
- BEGIN KEY;
- check_mode(scan_mode, SCAN_OUTSIDE, 0);
- scan_mode = SCAN_TSTKEY;
-
- /*
- * set up new "tag" and "keys" tables
- * to put the new data into.
- */
-
- /* remove any keys that exist right now */
- if(keys != NULL)
- sym_rm(keys, RM_KEY | RM_DATA);
- keys = sym_open(0, 0, 0);
-
- sprintf(info, "%d", yylineno);
- sym_put(keys, "_Start_line", strdup(info), 0);
-
- /* remove any tag info that exists right now */
- if(ctag != NULL)
- sym_rm(ctag, RM_KEY | RM_DATA);
- ctag = sym_open(0, 0, 0);
-
- return(TEST_START);
- /* NOTREACHED */
-}
-
-^<<<test_output>>>$ {
- BEGIN OUT;
- check_mode(scan_mode, SCAN_TSTKEY, 0);
- scan_mode = SCAN_OUTPUT;
-
- test_output(ctag, keys);
-
- return(TEST_OUTPUT);
- /* NOTREACHED */
-}
-
-^<<<execution_status>>>$ {
- BEGIN KEY;
- check_mode(scan_mode, SCAN_TSTKEY, SCAN_OUTPUT, 0);
- scan_mode = SCAN_TSTKEY;
- return(EXEC_STATUS);
- /* NOTREACHED */
-}
-
-^<<<test_end>>>$ {
- BEGIN 0;
- check_mode(scan_mode, SCAN_TSTKEY, 0);
- scan_mode = SCAN_OUTSIDE;
-
- sprintf(info, "%d", yylineno);
-
- sym_put(keys, "_End_line", strdup(info), 0);
-#ifdef DEBUGGING
- DEBUG(D_SCAN_LEX, 10) {
- printf("Tag's Keywords:\n");
- sym_dump_s(keys, 0);
- }
-#endif
- test_end(alltags, ctag, keys);
- ctag = keys = NULL;
-
- return(TEST_END);
- /* NOTREACHED */
-}
-
-<KEY>[a-zA-Z_-]+=\"[^\"\n]+\" {
- key = yytext;
- cont = strchr(yytext, '=');
- *cont++ = '\0';
- if(*cont == '"') cont++;
- if(yytext[yyleng-1] == '"')
- yytext[yyleng-1] = '\0';
-#ifdef DEBUGGING
- DEBUG(D_SCAN_LEX, 5)
- printf("A quoted keyword: %s = %s\n", key, cont);
-#endif
- sym_put(keys, key, strdup(cont), 0);
-
- return(KEYWORD_QUOTED);
- /* NOTREACHED */
-}
-
-<KEY>[a-zA-Z_-]+=[^\t \n]+ {
- key = yytext;
- cont = strchr(yytext, '=');
- *cont++ = '\0';
-#ifdef DEBUGGING
- DEBUG(D_SCAN_LEX, 5)
- printf("A keyword: %s = %s\n", key, cont);
-#endif
- sym_put(keys, key, strdup(cont), 0);
-
- return(KEYWORD);
- /* NOTREACHED */
-}
-
-<KEY>[ \t\n]* {
- return(SPACE);
- /* NOTREACHED */
-}
-
-<OUT>^.+$ {
-#ifdef DEBUGGING
- DEBUG(D_SCAN_LEX, 5)
- printf("TEXT_LINE: %s\n", yytext);
-#endif
-
- return(TEXT_LINE);
- /* NOTREACHED */
-}
-
-<CUTS>^{W}{S}{UI}{S}{A}{S}":" {
-#ifdef DEBUGGING
- DEBUG(D_SCAN_LEX, 5)
- printf("CUTS Result: %s\n", yytext);
-#endif
- cuts_testcase(ctag, keys);
-
- return(CUTS_RESULT);
- /* NOTREACHED */
-}
-
-<CUTS>^{W}{S}{UI}-{UI}{S}{A}{S}":" {
-#ifdef DEBUGGING
- DEBUG(D_SCAN_LEX, 5)
- printf("CUTS Result: %s\n", yytext);
-#endif
- cuts_testcase(ctag, keys);
-
- return(CUTS_RESULT_R);
- /* NOTREACHED */
-}
-
-. {
- return(SPACE);
- /* NOTREACHED */
-
-}
-"\n" {
- return(SPACE);
- /* NOTREACHED */
-}
-%%
-/*
- * the BEGIN macro only exists in the lex file, so define a routine to
- * BEGIN the CUTS state.
- */
-int
-begin_cuts(void)
-{
- BEGIN CUTS;
- return 0;
-}
-
-/*
- * Calls lex repeatedly until all input is seen.
- */
-int
-scanner(SYM tags)
-{
- alltags = tags; /* move into global scope for lex actions */
-
- while(yylex())
- ;
-
- return 0;
-}
-
-/*
- * Test-Output record
- * check if this is a CUTS test; if so, enter the lex "cuts" state;
- * otherwise do nothing and lex will be in a "data" mode that will just
- * toss all the output.
- */
-static int
-test_output(SYM tag, SYM keys)
-{
- char *at;
-
- if((at=(char *)sym_get(keys, "analysis")) != NULL) {
- /* CUTS:number_of_testcases || CUTS-1:number_of_testcases */
- if(strncasecmp("cuts", at, 4) == 0) {
- begin_cuts();
- /*printf("CUTS output expected\n");*/
- }
- }
- return 0;
-}
-
-/* Input Data State Check
- * RTS driver output goes thru specific
- * phases; this is used to verify that the new state is a legal state
- * to change to from the current state.
- * This accepts a variable number of arguments (valid states to be
- * in). The last argument MUST be zero
- */
-struct parse_states {
- char *name;
- int bits;
-} parse_states[] = {
- { "outside", SCAN_OUTSIDE },
- { "rts_keyword_start", SCAN_RTSKEY },
- { "test_start | execution_status", SCAN_TSTKEY },
- { "test_output", SCAN_OUTPUT },
- { "unknown", 0 }, /*end sentinel: bits = 0 */
-};
-
-static int
-check_mode(int scan_mode, int fst, ...)
-{
- va_list ap; /* used for variable argument functions*/
- int found=0; /* set to true if a valid state was found */
- int ckm; /* Check Mode: the mode to look for */
- register struct parse_states *ps; /* for looking thru parse_states */
- char exp_mode[KEYSIZE]; /* expected mode list (for error message) */
-
- extern int yylineno; /* Line number from Lex */
-
- /* look thru parse_states; end sentinel is "bits" = 0 */
- for(ps=parse_states; ps->bits && (ps->bits != fst);ps++)
- ;
- strcpy(exp_mode, ps->name);
-
- /* look at first variable argument */
- if(fst == scan_mode)
- found++;
- else {
- /* not first... look at variable args */
- va_start(ap, fst);
- while(((ckm = va_arg(ap, int)) != 0) && (ckm != scan_mode)) {
- for(ps=parse_states; ps->bits && (ps->bits != ckm);ps++)
- ;
- strcat(exp_mode, ", ");
- strcat(exp_mode, ps->name);
- }
- va_end(ap);
-
- if(ckm == scan_mode)
- found++;
- }
-
- if(!found) {
- for(ps=parse_states; ps->bits && (ps->bits != scan_mode);ps++)
- ;
-
- fprintf(stderr, "PARSE ERROR -- Line %d found %s in mode %s[%d] expected { %s }\n",
- yylineno, yytext, ps->name, scan_mode, exp_mode);
- }
-
- return 0;
-}
-
-/*
- * This part of the file contains subroutines called by a lex scanner which
- * is parsing rts-driver-format input and putting it into a multi-level
- * symbol table.
- */
-
-/*
- * References to lex variables
- */
-/*extern char yytext[]; / * text matched by last pattern */
-/*extern long yyleng; / * length of above */
-
-char **filenames;
-
-int
-lex_files(char **names)
-{
- /* lex */
- extern FILE *yyin;
-
- filenames = names;
-
- if(*filenames != NULL) {
-#ifdef DEBUGGING
- DEBUG(D_SCAN, 1)
- printf("lex_files: first file is %s\n", *filenames);
-#endif
- if((yyin = fopen(*filenames, "r")) == NULL) {
- printf("Error opening %s for reading\n", *filenames);
- exit(1);
- }
- }
-
- return 0;
-}
-
-/*
- * Called by lex's end-of-file processing.
- * Open the next file on the command line. If there is no next file,
- * return "-1" and lex will end.
- */
-int
-yywrap(void)
-{
- extern FILE *yyin;
- extern int yylineno; /* Line number from Lex */
-
- if(*filenames != NULL)
- if(*++filenames != NULL) {
-#ifdef DEBUGGING
- DEBUG(D_SCAN, 1)
- printf("yywrap: next file is %s\n", *filenames);
-#endif
- yylineno=1;
- if((yyin = fopen(*filenames, "r")) != NULL)
- return(0);
- else {
- printf("Error opening %s for reading\n", *filenames);
- return(1);
- }
- }
-
- return(-1);
-}
-
diff --git a/pan/symbol.c b/pan/symbol.c
deleted file mode 100644
index 37521143ed..0000000000
--- a/pan/symbol.c
+++ /dev/null
@@ -1,467 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: symbol.c,v 1.4 2002/05/28 16:26:16 robbiew Exp $ */
-/*
- * Generic Symbol Table
- *
- * This is intended to look a lot like ndbm, except that all information
- * is kept in memory, and a multi-key, hierarchical access mode is provided.
- * This is largely patterned after the Berkeley "DB" package.
- *
- * Requirements
- *
- * - "key" is ASCII (a C string, in fact)
- *
- * Symbol Table Structure
- *
- * Two data structures:
- * Symbol Table Header
- * Symbol Table Node
- *
- * A symbol table header consists of a magic number, a pointer to
- * the first node in the symbol table, and a cursor that is used
- * when sequentialy stepping thru the entire list.
- *
- * Symbol table nodes contain a pointer to a key, a pointer to this
- * key's data, and a pointer to the next node in the chain.
- * Note that to create a hierarchical symbol table, a node is created
- * whose data points to a symbol table header.
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include "symbol.h"
-#include "splitstr.h"
-
-#define SYM_MAGIC 0xbadc0de
-
-/*
- * Some functions can report an error message by assigning it to this
- * string.
- */
-
-static char *sym_error = NULL;
-
-/*
- * Memory Allocators
- *
- * newsym() allocates a new symbol table header node
- * mknode(...) allocates a new symbol table entry
- */
-
-SYM newsym(void)
-{
- SYM h;
-
- if ((h = malloc(sizeof(struct symh))) == NULL) {
- sym_error = "sym header malloc failed!";
- return (NULL);
- }
-
- h->magic = SYM_MAGIC;
- h->sym = NULL;
- h->cursor = NULL;
- return (h);
-}
-
-static struct sym *mknode(struct sym *next, char *key, void *data)
-{
- struct sym *n;
-
- if ((n = malloc(sizeof(struct sym))) == NULL) {
- sym_error = "sym node malloc failed!";
- return (NULL);
- }
-
- n->next = next;
- n->key = strdup(key);
- n->data = data;
-
- if (n->key == NULL) {
- sym_error = "sym node strdup(key) failed!";
- free(n);
- return (NULL);
- }
- return (n);
-}
-
-/*
- * Search for a key in a single-level symbol table hierarchy.
- */
-static struct sym *find_key1(struct sym *sym, char *key)
-{
- while (sym != NULL)
- if (strcmp(sym->key, key) == 0)
- return (sym);
- else
- sym = sym->next;
- return (NULL);
-}
-
-/*
- * Create a new key node, add it to the *end* of this list
- */
-static int add_key(SYM sym, char *key, void *data)
-{
- register struct sym *sn;
-
- if (sym->sym == NULL) {
- sym->sym = mknode(NULL, key, data);
- if (sym->sym == NULL) {
- return (-1);
- }
- } else {
- for (sn = sym->sym; sn != NULL && sn->next != NULL;
- sn = sn->next) ;
- sn->next = mknode(NULL, key, data);
- assert(sn->next != NULL);
- if (sn->next == NULL)
- return (-1);
- }
- return (0);
-}
-
-/*
- * Create a new symbol table
- */
-SYM sym_open(int flags, int mode, int openinfo)
-{
- return (newsym());
-}
-
-/*
- * Add (key, data) to an existing symbol table
- *
- * If the key does not exist, a new key is added to the end of the list.
- * If the key exists and the PUT_REPLACE flag is not supplied, return EEXIST.
- * If a symbol table entry in a multi-part key is not a symbol table (i.e.
- * element two of a three or more element key), return ENOTDIR.
- *
- * "data" is not duplicated and must not point to a static area that could
- * go away before the element is deleted (such as a local string in a
- * function)
- *
- * "key" is duplicated as needed, and is not modified.
- *
- * Code:
- * chop up key on commas
- *
- * search until a key element isn't found in the key tree, the key list is
- * exhausted, or a key's data element is not a sub-tree
- *
- * if the key list is exhausted, return a "duplicate entry" error
- *
- * if the last found key's data element is not a sub-tree, return
- * something like "ENOTDIR".
- *
- * add new keys for sub-trees until key list is exhausted;
- * last node gets 'data'.
- *
- */
-int sym_put(SYM sym, char *key, void *data, int flags)
-{
- const char **keys; /* key split into a 2d string array */
- char **kk;
- char *nkey; /* copy of 'key' -- before split */
- SYM csym, ncsym; /* search: current symbol table */
- struct sym *nsym = NULL; /* search: found symbol entry */
-
- if (sym == NULL)
- return (EINVAL);
-
- nkey = strdup(key);
- keys = splitstr(key, ",", NULL);
-
- if (keys == NULL) {
- free(nkey);
- return (EINVAL);
- }
-
- for (kk = (char **)keys, csym = sym;
- *kk != NULL && (nsym = find_key1(csym->sym, *kk)) != NULL;
- csym = nsym->data) {
-
- if (*++kk == NULL)
- break;
-
- if (nsym->data == NULL) { /* fatal error */
- free(nkey);
- splitstr_free(keys);
- return (ENOTDIR);
- }
- if (((SYM) (nsym->data))->magic != SYM_MAGIC) {
- free(nkey);
- splitstr_free(keys);
- return (ENOTDIR);
- }
- }
-
- if (*kk == NULL) { /* found a complete match */
- free(nkey);
- splitstr_free(keys);
-
- if (flags == PUT_REPLACE) {
- nsym->data = data;
- return (0);
- } else {
- return (EEXIST);
- }
- }
-
- /* csym is a ptr to a list */
- for (; *kk != NULL; kk++) {
- if (*(kk + 1) != NULL) {
- add_key(csym, *kk, (void *)(ncsym = newsym()));
- csym = ncsym;
- } else {
- add_key(csym, *kk, data); /* last key */
- }
- }
-
- free(nkey);
- splitstr_free(keys);
- return (0);
-}
-
-/*
- * Retrieve a Symbol's Contents
- *
- * "key" is not modified.
- * If the key cannot be found, NULL is returned
- */
-void *sym_get(SYM sym, char *key)
-{
- char *nkey;
- const char **keys; /* key split into a 2d string array */
- char **kk;
- SYM csym; /* search: current symbol table */
- struct sym *nsym = NULL; /* search: found symbol entry */
-
- if (sym == NULL)
- return (NULL);
-
- nkey = strdup(key);
- keys = splitstr(nkey, ",", NULL);
- if (keys == NULL)
- return (NULL);
-
- for (kk = (char **)keys, csym = sym;
- *kk != NULL && (nsym = find_key1(csym->sym, *kk)) != NULL;
- csym = nsym->data) {
-
- if (*++kk == NULL)
- break;
-
- if (nsym->data == NULL) { /* fatal error */
- free(nkey);
- splitstr_free(keys);
- return (NULL);
- }
- if (((SYM) (nsym->data))->magic != SYM_MAGIC) {
- free(nkey);
- splitstr_free(keys);
- return (NULL);
- }
- }
-
- if (*kk == NULL) { /* found a complete match */
- splitstr_free(keys);
- free(nkey);
- return (nsym->data);
- } else {
- splitstr_free(keys);
- free(nkey);
- return (NULL);
- }
-}
-
-/*
- * Step thru a symbol table list
- *
- * The cursor must be set by R_CURSOR, R_FIRST before using R_NEXT.
- * NULL is returned when no more items are available.
- */
-int sym_seq(SYM sym, DBT * key, DBT * data, int flags)
-{
- SYM csym;
-
- switch (flags) {
- /*
- * A number of ways to do this:
- * specificly: sym_seq( .., "key,key") sets to Nth element of the 2nd
- * level symbol table
- * sym_seq(.., "key,key,") sets to the first element of the 3rd
- * level symbol table
- *
- * sym_seq(.., "key,key") where both must be complete keys, sets
- * cursor to the first element of the 3rd level symbol table;
- * if there is no 3rd level, return an error.
- */
- case R_CURSOR:
- csym = (SYM) sym_get(sym, (char *)key->data);
- if (csym == NULL || csym->magic != SYM_MAGIC) {
- return (2);
- }
- sym->cursor = csym->sym;
- if (sym->cursor == NULL)
- return (1);
- key->data = sym->cursor->key;
- data->data = sym->cursor->data;
-
- return (0);
-
- case R_FIRST:
- sym->cursor = sym->sym;
- if (sym->cursor == NULL)
- return (1);
- key->data = sym->cursor->key;
- data->data = sym->cursor->data;
-
- return (0);
-
- case R_NEXT:
- if (sym->cursor == NULL)
- return (1);
- sym->cursor = sym->cursor->next;
-
- if (sym->cursor == NULL)
- return (1);
-
- key->data = sym->cursor->key;
- data->data = sym->cursor->data;
-
- return (0);
-
- case R_LAST:
- case R_PREV:
- default:
- return (-1);
- }
-}
-
-/*
- * Dump a symbol table's keys.
- * Handles hierarchies, using a double quote to indicate depth, one
- * double quote for each level.
- */
-int sym_dump(SYM sym, int depth)
-{
-
- register struct sym *se; /* symbol entry */
- register int d;
-
- if (sym == NULL || sym->magic != SYM_MAGIC)
- return -1;
-
- for (se = sym->sym; se != NULL; se = se->next) {
- for (d = 0; d < depth; d++) {
- putchar('"');
- putchar(' ');
- }
- printf("%s\n", se->key);
- sym_dump((SYM) se->data, depth + 1);
- }
- return 0;
-}
-
-/*
- * sym dump, but data is _always_ a string (print it)
- */
-int sym_dump_s(SYM sym, int depth)
-{
-
- register struct sym *se; /* symbol entry */
- register int d;
-
- if (sym == NULL)
- return 0;
-
- if (sym->magic != SYM_MAGIC) {
- for (d = 0; d < depth; d++) {
- putchar('"');
- putchar(' ');
- }
- printf(" = %s\n", (char *)sym);
- return 0;
- }
-
- for (se = sym->sym; se != NULL; se = se->next) {
- for (d = 0; d < depth; d++) {
- putchar('"');
- putchar(' ');
- }
- printf("%s", se->key);
- if (((SYM) se->data)->magic == SYM_MAGIC) {
- putchar('\n');
- sym_dump_s((SYM) se->data, depth + 1);
- } else {
- printf("(%p) = %s (%p)\n", se->key, (char *)se->data,
- se->data);
- }
- }
- return 0;
-}
-
-/*
- * Remove an entire symbol table (done bottom up)
- */
-int sym_rm(SYM sym, int flags)
-{
- register struct sym *se, *nse; /* symbol entry */
-
- if (sym == NULL)
- return 0;
-
- if (sym->magic != SYM_MAGIC) {
- if (!(flags & RM_DATA))
- free(sym);
- return 0;
- }
-
- for (se = sym->sym; se != NULL;) {
- sym_rm((SYM) se->data, flags);
- nse = se->next;
- if (flags & RM_KEY)
- free(se->key);
- if (flags & RM_DATA)
- free(se->data);
- free(se);
- se = nse;
- }
- if (!(flags & RM_DATA))
- free(sym);
- return 0;
-}
diff --git a/pan/symbol.h b/pan/symbol.h
deleted file mode 100644
index 7b2d035fe1..0000000000
--- a/pan/symbol.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: symbol.h,v 1.1 2000/09/21 21:35:06 alaffin Exp $ */
-#ifndef _SYMBOL_H_
-#define _SYMBOL_H_
-
-/*
- * "Generic" Symbol Table
- *
- * These data structures are the internal part of a library providing
- * an in-memory dbm-like (key, content) database with hierarchical
- * key names.
- */
-struct sym {
- struct sym *next;
- char *key;
- void *data;
-};
-
-/*
- * Symbol Table Header
- */
-struct symh {
- int magic;
- struct sym *sym;
- struct sym *cursor;
-};
-
-/*
- * The "SYM" typedef is the only external data type.
- */
-typedef struct symh *SYM;
-
-/*
- * Data for keys and contents (lifted from dbopen(3))
- * dbopen(3) uses this for all functions, but I'm hard-wired into chars
- * for keys and the like; I just need this for sym_get
- */
-typedef struct {
- void *data;
- int size;
-} DBT;
-
-/*
- * Prototypes
- */
-
-SYM sym_open(int flags, int mode, int openinfo );
-int sym_put (SYM sym, char *key, void *data, int flags );
-void *sym_get (SYM sym, char *key );
-int sym_seq (SYM sym, DBT *key, DBT *data, int flags );
-int sym_rm (SYM sym, int flags );
-
-/*
- * Flags for sym_put
- */
-#define PUT_REPLACE 1 /* replace data on a put */
-
-/*
- * Flags for sym_rm
- */
-#define RM_KEY 001 /* free() on key pointer */
-#define RM_DATA 002 /* free() on data pointer */
-
-/*
- * Flags for sym_seq (clones of 44BSD dbopen(3))
- */
-#define R_CURSOR 1 /* set "cursor" to where "data" key is */
-#define R_FIRST 2 /* set "cursor" to first item */
-#define R_NEXT 4 /* set "cursor" to next item */
-#define R_LAST 3 /* set "cursor" to last item (UNIMP) */
-#define R_PREV 5 /* set "cursor" to previous item (UNIMP) */
-
-#endif
diff --git a/pan/tag_report.c b/pan/tag_report.c
deleted file mode 100644
index eb8fb3dbcf..0000000000
--- a/pan/tag_report.c
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
- * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
- */
-/* $Id: tag_report.c,v 1.2 2006/12/13 22:55:22 vapier Exp $ */
-#include "tag_report.h"
-#include "debug.h"
-#include "reporter.h"
-#include "splitstr.h"
-
-static char *worst_case(char *, char *);
-
-/************************************************************************
- * Report Generation *
- ************************************************************************/
-
-/*
- * printf format statement for standard reports
- * 5 fields with max/min widths
- */
-#define FORMAT "%-20.20s %-15.15s %10.10s %-20.20s %s\n"
-
-/*
- * This is the central results reporting function. All standard report
- * format results are printed thru test_result.
- */
-int test_result(char *tag, char *tcid, char *tc, char *result, SYM tags)
-{
- char *expert, expkey[KEYSIZE];
- register char *c;
- char **cont;
- const char **cont_save;
-
- if (tcid == NULL)
- tcid = "-";
- if (tc == NULL)
- tc = "-";
- if (tag == NULL)
- tag = "test_result: no tag";
- if (result == NULL)
- result = "(RESULT IS NULL)";
-
- strcpy(expkey, "contacts");
- /* note: the sym_get here does _not_ change the "cursor" */
- if ((expert = (char *)sym_get(tags, expkey)) == NULL) {
- expert = "UNKNOWN";
- }
-
- /* ' tr " " "_" ' */
- for (c = result; *c; c++) {
- if (*c == ' ') {
- *c = '_';
- }
- }
- if (*result == '\0')
- result = "?";
-
- /* split contacts on "," and print out a line for each */
- cont_save = splitstr(expert, ",", NULL);
- for (cont = (char **)cont_save; *cont != NULL; cont++) {
- printf(FORMAT, tag, tcid, tc, result, *cont);
- }
- splitstr_free(cont_save);
-
- return 0;
-}
-
-/*
- * CUTS test reporting.
- *
- * (1) make a list (2d char array) of all TCIDs (see above for why)
- * (2) look thru the list:
- * (a) keep track of the "worst case" in this *TAG*
- * (b) report each testcase's results
- * (c) if the testcase number is != 0, count it
- * (3) report tag's results
- * (4) check the number of expected results with the actual results,
- * report an error if they don't match.
- */
-
-int cuts_report(SYM tags, SYM keys, char *at, char *tag)
-{
- DBT Key, Data;
-
- /* analysis type: count of CUTS test cases */
- const char **ant;
- char *dat; /* strdup(at) */
- int tccount; /* expected count of testcases */
- int tcnum; /* seen count of testcases */
-
- /* a list of tcids */
- char **taglist, **tl;
- int ntags, tagcount;
-
- char key_get[255];
-
- char *result = "", *worst_case(); /* overall result */
-
- /* parse analysis type: cuts:tc-count */
- ant = splitstr((dat = strdup(at)), ":", NULL);
- if (ant[1] != NULL)
- tccount = atoi(ant[1]);
- else
- tccount = 0;
- free(dat);
- splitstr_free(ant);
-
- /* extract tcids */
- ntags = NTCID_START;
- taglist = (char **)malloc(sizeof(char *) * ntags);
- tagcount = 0;
-
- tl = taglist;
- sym_seq(tags, &Key, &Data, R_FIRST);
- do {
- if (tagcount == ntags) {
- /* exceeded tag array size -- realloc */
- ntags += NTCID_START;
- taglist =
- (char **)realloc(taglist, sizeof(char *) * ntags);
- tl = taglist + tagcount;
- }
-
- if (strcmp((char *)Key.data, "_keys") == 0)
- continue;
- DEBUG(D_REPORT, 10)
- printf("cuts_report: tcid %s\n", (char *)Key.data);
- *tl++ = Key.data;
- tagcount++;
- } while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
-
- if (tagcount == ntags) {
- /* exceeded tag array size -- realloc */
- ntags++; /* need just one more */
- taglist = (char **)realloc(taglist, sizeof(char *) * ntags);
- tl = taglist + tagcount;
- }
-
- *tl++ = NULL;
-
- ntags = tagcount;
-
- /* dump all found records */
- tcnum = 0;
- for (tl = taglist; *tl != NULL; tl++) {
-
- strcpy(key_get, *tl);
- Key.data = (void *)key_get;
-
- /*sym_dump_s(sym_get(tags, key_get), 0); */
-
- sym_seq(tags, &Key, &Data, R_CURSOR);
- do {
- DEBUG(D_REPORT, 10)
- printf("cuts_report: tc %s = %s\n",
- (char *)Key.data, (char *)Data.data);
- result = worst_case(result, (char *)Data.data);
- test_result(tag, *tl, (char *)Key.data,
- (char *)Data.data, keys);
- if (atoi((char *)Key.data))
- tcnum++;
- } while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
- }
-
- test_result(tag, "*", "*", result, keys);
-
- if (tccount != 0 && tccount != tcnum)
- test_result(tag, "-", "-", "TC count wrong", keys);
-
- free(taglist);
-
- return 0;
-}
-
-/*
- * Do the report generation.
- *
- * A problem: I really need multiple cursors. I'd rather not look into
- * the depths of the current symbol table implimentation (there are the
- * cursors there that I could use) so that a different (faster!) symbol
- * table can be used in the future.
- *
- * I could get a key (tag), get it's sub-keys (TCIDs), then get the key
- * again to reset to the top level, _then_ get the next key. That would
- * be very inefficient.
- *
- * The solution I chose is to extract all tags into a list (char array),
- * then go thru that list with the cursor free for other levels to use.
- *
- * (1) make a list (2d char array) of all Tags
- * (2) search for the first tag that has a "stime" record, and use that as
- * the date (MMDDYY) that the tests were run.
- * (3) print the report header
- * (4) go thru all tags and report each as described at the beginning of
- * this file
- */
-int tag_report(SYM alltags, SYM ctag, SYM keys)
-{
-
- extern int extended;
-
- char key_get[KEYSIZE];
- char *info;
-
- /* retrieved _keys values: initation status, start time, duration,
- * termination type, termination id, start line, end line. */
- char *tag, *contact, *is, *mystime, *duration, *tt, *ti, *sl, *el;
-
- /* Check all driver-level status first */
- strcpy(key_get, "tag");
- if ((tag = (char *)sym_get(keys, key_get)) == NULL) {
- return -1;
- }
-
- /* Check all driver-level status first */
- strcpy(key_get, "initiation_status");
- if ((is = (char *)sym_get(keys, key_get)) == NULL) {
- test_result(tag, NULL, NULL, "no init status", keys);
- return -1;
- }
-
- if (strcmp(is, "ok")) {
- test_result(tag, NULL, NULL, is, keys);
- } else {
-
- strcpy(key_get, "corefile");
- if ((info = (char *)sym_get(keys, key_get)) != NULL)
- if (strcmp(info, "no") != 0) {
- test_result(tag, NULL, NULL, "coredump", keys);
- }
-
- strcpy(key_get, "termination_type");
- if ((tt = (char *)sym_get(keys, key_get)) == NULL) {
- test_result(tag, NULL, NULL, "no Term Type", keys);
- return -1;
- }
-
- if (strcmp(tt, "exited")) {
- test_result(tag, NULL, NULL, tt, keys);
- }
-
- strcpy(key_get, "analysis");
- if ((info = (char *)sym_get(keys, key_get)) == NULL) {
- test_result(tag, NULL, NULL, "no Analysis Type", keys);
- return -1;
- }
-
- /* Getting here indicates that there were no fatal driver-level
- * errors. Do the kind of reporting requested by the test.
- */
-
- if (strncmp(info, "none", 4) == 0) {
- /*
- * If analysis is 'none', alway report the test as
- * a pass regardless of output or exit status.
- */
- test_result(tag, NULL, NULL, "pass", keys);
-
- } else if (strncmp(info, "cuts", 4)) {
-
- /*
- * If analysis is not cuts, assume it is 'exit', thus
- * the termination_id is used to determine pass/fail result.
- */
- if (strcmp(tt, "timeout")) {
- strcpy(key_get, "termination_id");
- if ((info =
- (char *)sym_get(keys, key_get)) == NULL) {
- test_result(tag, NULL, NULL,
- "no_Term_Id", keys);
- } else {
- if (strcmp(info, "0")) {
- test_result(tag, NULL, NULL,
- "fail", keys);
- } else {
- test_result(tag, NULL, NULL,
- "pass", keys);
- }
- }
- }
- } else {
- cuts_report(ctag, keys, info, tag);
- }
- }
-
- /*
- * Extended Format:
- * - tcid+tc = "!"
- * - tab separated fields
- * - no field widths
- * - fields 6 - ~ are:
- * start-time (time_t)
- * duration
- * termination_id
- * termination_type
- * Start Line (of test results in output file)
- * End Line
- */
-
- if (extended) {
-
- strcpy(key_get, "termination_id");
- if ((ti = (char *)sym_get(keys, key_get)) == NULL) {
- ti = "No_Termination_ID";
- }
-
- strcpy(key_get, "termination_type");
- if ((tt = (char *)sym_get(keys, key_get)) == NULL) {
- tt = "No_Termination_Type";
- }
-
- strcpy(key_get, "duration");
- if ((duration = (char *)sym_get(keys, key_get)) == NULL) {
- duration = "No_Duration";
- }
-
- strcpy(key_get, "_Start_line");
- if ((sl = (char *)sym_get(keys, key_get)) == NULL) {
- sl = "No_Start_line";
- }
-
- strcpy(key_get, "_End_line");
- if ((el = (char *)sym_get(keys, key_get)) == NULL) {
- el = "No_End_line";
- }
-
- strcpy(key_get, "contacts");
- if ((contact = (char *)sym_get(keys, key_get)) == NULL) {
- contact = "No_Contacts";
- }
-
- strcpy(key_get, "stime");
- if ((mystime = (char *)sym_get(keys, key_get)) == NULL) {
- mystime = "No_stime";
- }
-
- printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",
- tag, "!", "!", is, contact, mystime, duration,
- ti, tt, sl, el);
- }
-
- return 0;
-}
-
-/*
- * Print a header made up of the RTS keywords
- * In "extended" mode, print the header to stderr.
- */
-int print_header(SYM tags)
-{
- DBT Key, Data;
- char key_get[255];
-
- FILE *out;
-
- extern int extended;
-
- if (extended)
- out = stderr;
- else
- out = stdout;
-
- fprintf(out, "System Configuration:\n");
- /* build header out of RTS keywords */
- sprintf(key_get, "_RTS");
- Key.data = (void *)key_get;
- if (sym_seq(tags, &Key, &Data, R_CURSOR) == 0) {
- do {
- if (strcmp((char *)Key.data, "PATH") == 0)
- continue;
- fprintf(out, "%-20.20s %s\n", (char *)Key.data,
- (char *)Data.data);
- } while (sym_seq(tags, &Key, &Data, R_NEXT) == 0);
- }
-
- fprintf(out, "\n");
- fprintf(out, FORMAT, "tag", "tcid", "testcase", "status", "contact");
- fprintf(out,
- "-------------------------------------------------------------------------------\n");
-
- return 0;
-}
-
-/*
- * CUTS testcase record
- *
- * This is passed s SYM for the current tag and the initiation keys.
- * The text seen by lex is in yytext (global).
- */
-int cuts_testcase(SYM tag, SYM keys)
-{
- char *cuts_info[6];
- char key[KEYSIZE];
- char *oldresult, *newresult, *worst_case();
- int tok_num = 0;
- extern char yytext[];
-
- cuts_info[tok_num] = strtok(yytext, "\t ");
- while (tok_num < 5 &&
- (cuts_info[++tok_num] = strtok(NULL, "\t ")) != NULL) ;
-
- strcpy(key, cuts_info[0]);
- strcat(key, ",");
- strcat(key, cuts_info[1]);
-
-#ifdef DEBUGGING
- DEBUG(D_SCAN_CUTS, 1) {
- printf("cuts_testcase: TCID=%s TC=%s Result=%s\n", cuts_info[0],
- cuts_info[1], cuts_info[2]);
- printf("cuts_testcase: %d %s\n", tok_num, key);
- }
-#endif
-
- if ((oldresult = (char *)sym_get(tag, key)) != NULL) {
- /* Duplicate -- assume mulitple runs */
- /* keep "worst case" */
- newresult = worst_case(oldresult, cuts_info[2]);
- sym_put(tag, key, strdup(newresult), PUT_REPLACE);
- free(oldresult); /* remove the "data" portion of the key */
- } else {
- sym_put(tag, key, strdup(cuts_info[2]), 0);
- }
- return 0;
-}
-
-/*
- * Determine a "worst case" status from two given statuses.
- */
-static char *worst_case(char *t1, char *t2)
-{
- /* NULL-terminated table, ordered from worst-case to best-case */
- static char *worst[] = {
- "FAIL", "BROK", "PASS", "CONF",
- "WARN", "INFO", NULL,
- };
-
- char **w1, **w2;
-
- /* Search the table for each status, then use the index to determine
- which has a lower precedence */
- for (w1 = worst; *w1 != NULL && strcmp(t1, *w1); w1++) ;
-
- for (w2 = worst; *w2 != NULL && strcmp(t2, *w2); w2++) ;
-
- if (w1 < w2)
- return (t1);
- else
- return (t2);
-
-}
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
2022-01-26 14:55 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
` (5 subsequent siblings)
7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
It was added in Jan 2008 in libaio-0.3.108, even Centos 6 has 0.3.109,
SLES11-SP4 and Debian stretch (oldoldstable) have 0.3.110.
At least CentOS 6 and SLES11-SP4 don't event compiles LTP at least 2
releases back.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2
m4/ltp-eventfd.m4 | 11 +----------
testcases/kernel/syscalls/eventfd/eventfd01.c | 18 +-----------------
2 files changed, 2 insertions(+), 27 deletions(-)
diff --git a/m4/ltp-eventfd.m4 b/m4/ltp-eventfd.m4
index 5d729a33df..ecd7e951dc 100644
--- a/m4/ltp-eventfd.m4
+++ b/m4/ltp-eventfd.m4
@@ -1,6 +1,6 @@
dnl SPDX-License-Identifier: GPL-2.0-or-later
dnl Copyright (c) Red Hat Inc., 2008
-dnl Copyright (c) 2017 Petr Vorel <pvorel@suse.cz>
+dnl Copyright (c) 2017-2022 Petr Vorel <pvorel@suse.cz>
dnl Author: Masatake YAMATO <yamato@redhat.com>
AC_DEFUN([LTP_CHECK_SYSCALL_EVENTFD], [
@@ -10,14 +10,5 @@ AC_DEFUN([LTP_CHECK_SYSCALL_EVENTFD], [
if test "x$have_libaio" = "xyes" -a "x$have_aio" = "xyes"; then
AC_DEFINE(HAVE_LIBAIO, 1, [Define to 1 if you have libaio and it's headers installed.])
AC_SUBST(AIO_LIBS, "-laio")
-
- AC_MSG_CHECKING([io_set_eventfd is defined in aio library or aio header])
- AC_TRY_LINK([#include <stdio.h>
- #include <libaio.h>
- ],
- [io_set_eventfd(NULL, 0); return 0;],
- [AC_DEFINE(HAVE_IO_SET_EVENTFD, 1, [Define to 1 if you have `io_set_eventfd' function.])
- AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)])
fi
])
diff --git a/testcases/kernel/syscalls/eventfd/eventfd01.c b/testcases/kernel/syscalls/eventfd/eventfd01.c
index 242e170e27..3180ea1593 100644
--- a/testcases/kernel/syscalls/eventfd/eventfd01.c
+++ b/testcases/kernel/syscalls/eventfd/eventfd01.c
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2008 Vijay Kumar B. <vijaykumar@bravegnu.org>
+ * Copyright (c) Linux Test Project, 2008-2022
*
* Based on testcases/kernel/syscalls/waitpid/waitpid01.c
* Original copyright message:
@@ -472,7 +473,6 @@ static void child_inherit_test(int fd)
}
}
-#ifdef HAVE_IO_SET_EVENTFD
/*
* Test whether counter overflow is detected and handled correctly.
*
@@ -648,22 +648,6 @@ static void overflow_read_test(int evfd)
}
cleanup_overflow(fd, ctx);
}
-#else
-static void overflow_select_test(int evfd)
-{
- tst_resm(TCONF, "eventfd support is not available in AIO subsystem");
-}
-
-static void overflow_poll_test(int evfd)
-{
- tst_resm(TCONF, "eventfd support is not available in AIO subsystem");
-}
-
-static void overflow_read_test(int evfd)
-{
- tst_resm(TCONF, "eventfd support is not available in AIO subsystem");
-}
-#endif
int main(int argc, char **argv)
{
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
2022-01-26 15:00 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
` (4 subsequent siblings)
7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
It was added by Ingo Molnar in 2009 to perf_event_open01.c after his
change to in v2.6.32-rc1 cdd6c482c9ff ("perf: Do the big rename:
Performance Counters -> Performance Events"), where he renamed struct
perf_counter_attr to struct perf_event_attr and rename header where
defined from include/linux/perf_counter.h to include/linux/perf_event.h.
It was safe to remove the check long time ago. Not checking for
linux/perf_event.h because although we check for some kernel headers
presence, we expect kernel headers to be installed.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2
configure.ac | 1 -
m4/ltp-perf_event_open.m4 | 16 ----------------
testcases/cve/cve-2015-3290.c | 7 ++++---
.../syscalls/perf_event_open/perf_event_open01.c | 16 ++--------------
.../syscalls/perf_event_open/perf_event_open02.c | 8 +-------
.../syscalls/perf_event_open/perf_event_open03.c | 7 +------
6 files changed, 8 insertions(+), 47 deletions(-)
delete mode 100644 m4/ltp-perf_event_open.m4
diff --git a/configure.ac b/configure.ac
index 8becd74c2c..6ff761837a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -376,7 +376,6 @@ fi
AC_DEFINE_UNQUOTED(NUMA_ERROR_MSG, ["$numa_error_msg"], [Error message when no NUMA support])
-LTP_CHECK_SYSCALL_PERF_EVENT_OPEN
LTP_CHECK_SYSCALL_SIGNALFD
LTP_CHECK_SYSCALL_UTIMENSAT
LTP_CHECK_TASKSTATS
diff --git a/m4/ltp-perf_event_open.m4 b/m4/ltp-perf_event_open.m4
deleted file mode 100644
index 6966cf2708..0000000000
--- a/m4/ltp-perf_event_open.m4
+++ /dev/null
@@ -1,16 +0,0 @@
-dnl SPDX-License-Identifier: GPL-2.0-or-later
-dnl Copyright (c) 2014 Fujitsu Ltd.
-dnl Copyright (c) 2014 Cyril Hrubis <chrubis@suse.cz>
-dnl Author: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
-
-AC_DEFUN([LTP_CHECK_SYSCALL_PERF_EVENT_OPEN],[
-AH_TEMPLATE(HAVE_PERF_EVENT_ATTR,
-[Define to 1 if you have struct perf_event_attr])
-AC_MSG_CHECKING([for perf_event_attr in linux/perf_event.h])
-AC_TRY_COMPILE([#include <unistd.h>
- #include <linux/perf_event.h>],
- [
- struct perf_event_attr pe;
- ],
- AC_DEFINE(HAVE_PERF_EVENT_ATTR) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-])
diff --git a/testcases/cve/cve-2015-3290.c b/testcases/cve/cve-2015-3290.c
index 6c4fd57acc..fd1abe136d 100644
--- a/testcases/cve/cve-2015-3290.c
+++ b/testcases/cve/cve-2015-3290.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2017 Pavel Boldin <pboldin@cloudlinux.com>
+ * Copyright (c) 2018-2022 Linux Test Project
*/
/*
@@ -117,7 +118,7 @@ perhaps unsurprisingly.)
#include "tst_test.h"
#include "tst_timer.h"
-#if HAVE_PERF_EVENT_ATTR && (defined(__x86_64__) || defined(__i386__))
+#if defined(__x86_64__) || defined(__i386__)
#include <stdlib.h>
#include <stdio.h>
@@ -476,8 +477,8 @@ static struct tst_test test = {
}
};
-#else /* HAVE_PERF_EVENT_ATTR && (defined(__x86_64__) || defined(__i386__)) */
+#else /* defined(__x86_64__) || defined(__i386__) */
-TST_TEST_TCONF("no perf_event_attr or not (i386 or x86_64)");
+TST_TEST_TCONF("not (i386 or x86_64)");
#endif
diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c
index 3807b2df10..30c0d7594f 100644
--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c
+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open01.c
@@ -1,6 +1,7 @@
/******************************************************************************/
/* */
/* Ingo Molnar <mingo@elte.hu>, 2009 */
+/* Copyright (c) Linux Test Project, 2014-2022 */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
@@ -38,9 +39,7 @@
#include <fcntl.h>
#include <stdint.h>
#include "config.h"
-#if HAVE_PERF_EVENT_ATTR
-# include <linux/perf_event.h>
-#endif
+#include <linux/perf_event.h>
#include "test.h"
#include "lapi/syscalls.h"
@@ -48,7 +47,6 @@
char *TCID = "perf_event_open01";
-#if HAVE_PERF_EVENT_ATTR
static void setup(void);
static void cleanup(void);
@@ -198,13 +196,3 @@ static void verify(struct test_case_t *tc)
static void cleanup(void)
{
}
-
-#else
-
-int main(void)
-{
- tst_brkm(TCONF, NULL, "This system doesn't have "
- "header file:<linux/perf_event.h> or "
- "no struct perf_event_attr defined");
-}
-#endif
diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
index 0335a296e8..618a270160 100644
--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open02.c
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2009 Paul Mackerras <paulus@samba.org>
- * Copyright (c) 2019 Linux Test Project
+ * Copyright (c) 2014-2022 Linux Test Project
*/
/*
* Here's a little test program that checks whether software counters
@@ -45,7 +45,6 @@
#include "lapi/cpuset.h"
#include "lapi/syscalls.h"
-#if HAVE_PERF_EVENT_ATTR
#include "perf_event_open.h"
#define MAX_CTRS 1000
@@ -336,8 +335,3 @@ static struct tst_test test = {
.test_all = verify,
.needs_root = 1,
};
-
-#else /* HAVE_PERF_EVENT_ATTR */
-TST_TEST_TCONF("This system doesn't have <linux/perf_event.h> or "
- "struct perf_event_attr is not defined.");
-#endif
diff --git a/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c b/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c
index f58bea79e8..dcb7096277 100644
--- a/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c
+++ b/testcases/kernel/syscalls/perf_event_open/perf_event_open03.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2021 SUSE LLC <mdoucha@suse.cz>
+ * Copyright (c) 2022 Linux Test Project
*
* CVE-2020-25704
*
@@ -17,7 +18,6 @@
#include "tst_test.h"
#include "lapi/syscalls.h"
-#if HAVE_PERF_EVENT_ATTR
#include "perf_event_open.h"
#define INTEL_PT_PATH "/sys/bus/event_source/devices/intel_pt/type"
@@ -77,8 +77,3 @@ static struct tst_test test = {
{}
}
};
-
-#else /* HAVE_PERF_EVENT_ATTR */
-TST_TEST_TCONF("This system doesn't have <linux/perf_event.h> or "
- "struct perf_event_attr is not defined.");
-#endif
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
` (2 preceding siblings ...)
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
2022-01-26 15:04 ` Cyril Hrubis
2022-01-26 22:30 ` Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
` (3 subsequent siblings)
7 siblings, 2 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
Yes, uclibc-ng still haven't defined exp10, thus still needed.
Link: https://github.com/linux-test-project/ltp/issues/13
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2
testcases/realtime/configure.ac | 4 ++--
testcases/realtime/m4/ltp-exp10.m4 | 37 ------------------------------
2 files changed, 2 insertions(+), 39 deletions(-)
delete mode 100644 testcases/realtime/m4/ltp-exp10.m4
diff --git a/testcases/realtime/configure.ac b/testcases/realtime/configure.ac
index e483caf0d2..6f50f1490f 100644
--- a/testcases/realtime/configure.ac
+++ b/testcases/realtime/configure.ac
@@ -35,8 +35,8 @@ else
AC_MSG_RESULT(no)
fi
-REALTIME_CHECK_PRIO_INHERIT
+AC_CHECK_LIB([m], [exp10], [AC_DEFINE([HAVE_EXP10], 1, [Define to 1 if you have exp10 function])])
-LTP_CHECK_EXP10
+REALTIME_CHECK_PRIO_INHERIT
AC_OUTPUT
diff --git a/testcases/realtime/m4/ltp-exp10.m4 b/testcases/realtime/m4/ltp-exp10.m4
deleted file mode 100644
index 3d2320a206..0000000000
--- a/testcases/realtime/m4/ltp-exp10.m4
+++ /dev/null
@@ -1,37 +0,0 @@
-dnl
-dnl Copyright (c) Linux Test Project, 2014
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2 of the License, or
-dnl (at your option) any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
-dnl the GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-dnl
-
-dnl
-dnl LTP_CHECK_EXP10
-dnl ---------------
-dnl
-AC_DEFUN([LTP_CHECK_EXP10],[
-AH_TEMPLATE(HAVE_EXP10,
-[Define to 1 if you have 'exp10' function.])
-AC_MSG_CHECKING([for exp10])
-backup_ldlibs="$LIBS"
-LIBS+=" -lm"
-AC_TRY_LINK([#define _GNU_SOURCE
- #include <math.h>],
- [
- volatile float val;
- exp10(val);
- ],
- AC_DEFINE(HAVE_EXP10) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-LIBS="$backup_ldlibs"
-])
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
` (3 preceding siblings ...)
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
2022-01-26 15:15 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
` (2 subsequent siblings)
7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
glibc and uclibc added it in 2005, musl at 2011.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2
configure.ac | 1 -
m4/ltp-mremap_fixed.m4 | 12 ------------
testcases/kernel/mem/thp/thp02.c | 5 -----
testcases/kernel/syscalls/mremap/mremap05.c | 11 -----------
4 files changed, 29 deletions(-)
delete mode 100644 m4/ltp-mremap_fixed.m4
diff --git a/configure.ac b/configure.ac
index 6ff761837a..41c385edcb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -360,7 +360,6 @@ LTP_CHECK_KEYUTILS_SUPPORT
LTP_CHECK_LIBMNL
LTP_CHECK_LINUX_PTRACE
LTP_CHECK_LINUXRANDOM
-LTP_CHECK_MREMAP_FIXED
LTP_CHECK_NOMMU_LINUX
LTP_CHECK_SELINUX
LTP_CHECK_SYNC_ADD_AND_FETCH
diff --git a/m4/ltp-mremap_fixed.m4 b/m4/ltp-mremap_fixed.m4
deleted file mode 100644
index 66548b82b3..0000000000
--- a/m4/ltp-mremap_fixed.m4
+++ /dev/null
@@ -1,12 +0,0 @@
-dnl SPDX-License-Identifier: GPL-2.0-or-later
-dnl Copyright (c) Linux Test Project, 2012
-dnl Author: Cyril Hrubis <chrubis@suse.cz>
-
-AC_DEFUN([LTP_CHECK_MREMAP_FIXED],[
-AH_TEMPLATE(HAVE_MREMAP_FIXED,
-[Define to 1 if you have MREMAP_FIXED in <sys/mman.h>.])
-AC_MSG_CHECKING([for MREMAP_FIXED in <sys/mman.h>])
-AC_TRY_COMPILE([#define _GNU_SOURCE
- #include <sys/mman.h>], [int flags = MREMAP_FIXED;],
- AC_DEFINE(HAVE_MREMAP_FIXED) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-])
diff --git a/testcases/kernel/mem/thp/thp02.c b/testcases/kernel/mem/thp/thp02.c
index a1b0ee0ab1..56568d1d18 100644
--- a/testcases/kernel/mem/thp/thp02.c
+++ b/testcases/kernel/mem/thp/thp02.c
@@ -40,7 +40,6 @@
#include <unistd.h>
#include "mem.h"
-#ifdef HAVE_MREMAP_FIXED
static int ps;
static long hps, size;
@@ -119,7 +118,3 @@ static struct tst_test test = {
.test_all = do_mremap,
.forks_child = 1,
};
-
-#else
- TST_TEST_TCONF("MREMAP_FIXED not present in <sys/mman.h>");
-#endif /* HAVE_MREMAP_FIXED */
diff --git a/testcases/kernel/syscalls/mremap/mremap05.c b/testcases/kernel/syscalls/mremap/mremap05.c
index 5e8cda5d78..d85ebb068d 100644
--- a/testcases/kernel/syscalls/mremap/mremap05.c
+++ b/testcases/kernel/syscalls/mremap/mremap05.c
@@ -45,8 +45,6 @@
char *TCID = "mremap05";
-#ifdef HAVE_MREMAP_FIXED
-
struct test_case_t {
char *old_address;
char *new_address;
@@ -239,12 +237,3 @@ static void setup(void)
static void cleanup(void)
{
}
-
-#else
-
-int main(void)
-{
- tst_brkm(TCONF, NULL, "MREMAP_FIXED not present in <sys/mman.h>");
-}
-
-#endif /* HAVE_MREMAP_FIXED */
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
` (4 preceding siblings ...)
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
2022-01-26 15:18 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
Fix from 1db62666ce (2014) for SLES10, RHEL4. Save to remove now.
NOTE: support for 7 args was missing in kernel 2.4 and earlier.
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2
configure.ac | 1 -
lib/cloner.c | 10 ----------
m4/ltp-clone7args.m4 | 17 -----------------
3 files changed, 28 deletions(-)
delete mode 100644 m4/ltp-clone7args.m4
diff --git a/configure.ac b/configure.ac
index 41c385edcb..f83bbe950b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -352,7 +352,6 @@ LTP_CHECK_ATOMIC_MEMORY_MODEL
LTP_CHECK_BUILTIN_CLEAR_CACHE
LTP_CHECK_CAPABILITY_SUPPORT
LTP_CHECK_CC_WARN_OLDSTYLE
-LTP_CHECK_CLONE_SUPPORTS_7_ARGS
LTP_CHECK_CRYPTO
LTP_CHECK_FORTIFY_SOURCE
LTP_CHECK_KERNEL_DEVEL
diff --git a/lib/cloner.c b/lib/cloner.c
index 11401f2303..95954f6df3 100644
--- a/lib/cloner.c
+++ b/lib/cloner.c
@@ -50,11 +50,6 @@ extern int __clone2(int (*fn) (void *arg), void *child_stack_base,
pid_t *parent_tid, void *tls, pid_t *child_tid);
#endif
-#ifndef CLONE_SUPPORTS_7_ARGS
-# define clone(fn, stack, flags, arg, ptid, tls, ctid) \
- clone(fn, stack, flags, arg)
-#endif
-
/*
* ltp_clone: wrapper for clone to hide the architecture dependencies.
* 1. hppa takes bottom of stack and no stacksize (stack grows up)
@@ -109,12 +104,7 @@ int ltp_clone7(unsigned long flags, int (*fn)(void *arg), void *arg,
ctid = va_arg(arg_clone, pid_t *);
va_end(arg_clone);
-#ifdef CLONE_SUPPORTS_7_ARGS
return ltp_clone_(flags, fn, arg, stack_size, stack, ptid, tls, ctid);
-#else
- errno = ENOSYS;
- return -1;
-#endif
}
/*
diff --git a/m4/ltp-clone7args.m4 b/m4/ltp-clone7args.m4
deleted file mode 100644
index ab55c1e335..0000000000
--- a/m4/ltp-clone7args.m4
+++ /dev/null
@@ -1,17 +0,0 @@
-dnl SPDX-License-Identifier: GPL-2.0-or-later
-dnl Copyright (c) Linux Test Project, 2014
-
-AC_DEFUN([LTP_CHECK_CLONE_SUPPORTS_7_ARGS],[
-AH_TEMPLATE(CLONE_SUPPORTS_7_ARGS,
-[Define to 1 if clone() supports 7 arguments.])
-AC_MSG_CHECKING([if clone() supports 7 args])
-AC_TRY_LINK([#define _GNU_SOURCE
- #include <sched.h>
- #include <stdlib.h>],
- [
- #ifndef __ia64__
- clone(NULL, NULL, 0, NULL, NULL, NULL, NULL);
- #endif
- ],
- AC_DEFINE(CLONE_SUPPORTS_7_ARGS) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
-])
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [LTP] [RFC PATCH v2 7/7] m4: Fix warnings
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
` (5 preceding siblings ...)
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
@ 2022-01-26 12:35 ` Petr Vorel
2022-01-26 15:23 ` Cyril Hrubis
2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
7 siblings, 1 reply; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 12:35 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
from autoconf 2.71:
* s/AC_HELP_STRING/AS_HELP_STRING/
Similar replace was done in autoconf commit 5958ce17 ("*
doc/autoconf.texi: Replace AC_HELP_STRING AS_HELP_STRING.")
from 2.58.
* s/AC_TRY_LINK/AC_COMPILE_IFELSE([AC_LANG_PROGRAM/
Similar replace was done in autoconf commit ede91cff ("Modernize
AC_EXEEXT and AC_OBJEXT. Now work with other languages than C and C++.")
from 2.50.
Due previous keep requiring 2.61. Tested on 2.63 (SLES 11 and CentOS 6
both don't even compile as unsupported, thus we could bump version to 2.63).
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v2
configure.ac | 24 ++++++++++++------------
m4/ltp-kernel_devel.m4 | 6 +++---
testcases/realtime/m4/check.m4 | 6 +++---
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/configure.ac b/configure.ac
index f83bbe950b..03184e13e3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -219,7 +219,7 @@ AC_CHECK_TYPES([struct __kernel_old_timeval, struct __kernel_old_timespec, struc
# Bash
AC_ARG_WITH([bash],
- [AC_HELP_STRING([--with-bash],
+ [AS_HELP_STRING([--with-bash],
[have the Bourne Again Shell interpreter])],
[with_bash=$withval],
[with_bash=no]
@@ -232,24 +232,24 @@ fi
# metadata
AC_ARG_ENABLE([metadata],
- [AC_HELP_STRING([--disable-metadata],
+ [AS_HELP_STRING([--disable-metadata],
[Disable metadata generation (both HTML and PDF, default no)])],
[], [enable_metadata=yes]
)
AC_ARG_ENABLE([metadata_html],
- [AC_HELP_STRING([--disable-metadata-html],
+ [AS_HELP_STRING([--disable-metadata-html],
[Disable metadata HTML generation (default no)])],
[], [enable_metadata_html=yes]
)
AC_ARG_ENABLE([metadata_pdf],
- [AC_HELP_STRING([--enable-metadata-pdf],
+ [AS_HELP_STRING([--enable-metadata-pdf],
[Enable metadata PDF generation (default no)])],
[], [enable_metadata_pdf=no]
)
AC_ARG_WITH([metadata_generator],
- [AC_HELP_STRING([--with-metadata-generator=asciidoc|asciidoctor],
+ [AS_HELP_STRING([--with-metadata-generator=asciidoc|asciidoctor],
[Specify metadata generator to use (default autodetect)])],
[with_metadata_generator=$withval],
[with_metadata_generator=detect]
@@ -259,7 +259,7 @@ LTP_DOCPARSE
# Expect
AC_ARG_WITH([expect],
- [AC_HELP_STRING([--with-expect],
+ [AS_HELP_STRING([--with-expect],
[have the Tcl/expect library])],
[with_expect=$withval],
[with_expect=no]
@@ -272,7 +272,7 @@ fi
# Numa
AC_ARG_WITH([numa],
- AC_HELP_STRING([--without-numa],
+ AS_HELP_STRING([--without-numa],
[without numa support]),
[with_numa=$withval],
[with_numa=yes]
@@ -280,7 +280,7 @@ AC_ARG_WITH([numa],
# Perl
AC_ARG_WITH([perl],
- [AC_HELP_STRING([--with-perl],
+ [AS_HELP_STRING([--with-perl],
[have a perl interpreter])],
[with_perl=$withval],
[with_perl=no]
@@ -293,7 +293,7 @@ fi
# Python
AC_ARG_WITH([python],
- [AC_HELP_STRING([--with-python],
+ [AS_HELP_STRING([--with-python],
[have a python interpreter])],
[with_python=$withval],
[with_python=no]
@@ -306,7 +306,7 @@ fi
# TI RPC
AC_ARG_WITH([tirpc],
- AC_HELP_STRING([--without-tirpc],
+ AS_HELP_STRING([--without-tirpc],
[without libtirpc support]),
[with_tirpc=$withval],
[with_tirpc=yes]
@@ -316,7 +316,7 @@ AC_ARG_WITH([tirpc],
# Testsuites knobs
AC_ARG_WITH([open-posix-testsuite],
- [AC_HELP_STRING([--with-open-posix-testsuite],
+ [AS_HELP_STRING([--with-open-posix-testsuite],
[compile and install the open posix testsuite])],
[with_open_posix_testsuite=$withval],
[with_open_posix_testsuite=no]
@@ -329,7 +329,7 @@ fi
# TODO: testcases/realtime requires bash and python.
AC_ARG_WITH([realtime-testsuite],
- [AC_HELP_STRING([--with-realtime-testsuite],
+ [AS_HELP_STRING([--with-realtime-testsuite],
[compile and install the realtime testsuite])],
[with_realtime_testsuite=$withval],
[with_realtime_testsuite=no]
diff --git a/m4/ltp-kernel_devel.m4 b/m4/ltp-kernel_devel.m4
index 8a0598e5a3..d46d54775a 100644
--- a/m4/ltp-kernel_devel.m4
+++ b/m4/ltp-kernel_devel.m4
@@ -9,7 +9,7 @@ AC_DEFUN([LTP_CHECK_KERNEL_DEVEL],[
AC_MSG_CHECKING([for kernel-devel])
AC_ARG_WITH(
[linux-version],
- [AC_HELP_STRING([--with-linux-version=VERSION],
+ [AS_HELP_STRING([--with-linux-version=VERSION],
[specify the Linux version to build modules for])],
[LINUX_VERSION="${withval}"],
AS_IF([test "$cross_compiling" = "no"],
@@ -18,7 +18,7 @@ AC_ARG_WITH(
AC_SUBST(LINUX_VERSION)
AC_ARG_WITH([linux-dir],
- [AC_HELP_STRING([--with-linux-dir=DIR],
+ [AS_HELP_STRING([--with-linux-dir=DIR],
[specify path to kernel-devel directory])],
[LINUX_DIR="${withval}"],
AS_IF([test -n "$LINUX_VERSION"],
@@ -44,7 +44,7 @@ AC_MSG_RESULT([$WITH_MODULES])
AC_ARG_WITH(
[modules],
- [AC_HELP_STRING([--without-modules],
+ [AS_HELP_STRING([--without-modules],
[disable auto-building kernel modules])],
[WITH_MODULES="no"],
[])
diff --git a/testcases/realtime/m4/check.m4 b/testcases/realtime/m4/check.m4
index e60ae19289..d04a2cc73a 100644
--- a/testcases/realtime/m4/check.m4
+++ b/testcases/realtime/m4/check.m4
@@ -1,10 +1,10 @@
AC_DEFUN([REALTIME_CHECK_PRIO_INHERIT],[
AC_MSG_CHECKING([for PTHREAD_PRIO_INHERIT])
-AC_TRY_COMPILE([
-#include <pthread.h>],[int main(void) {
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <pthread.h>]], [[int main(void) {
pthread_mutexattr_t attr;
return pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
-}],[has_priority_inherit="yes"],[])
+}]])],[has_priority_inherit="yes"],[])
if test "x$has_priority_inherit" = "xyes" ; then
AC_DEFINE(HAS_PRIORITY_INHERIT,1,[Define to 1 if you have PTHREAD_PRIO_INHERIT])
AC_MSG_RESULT(yes)
--
2.34.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
@ 2022-01-26 14:50 ` Cyril Hrubis
2022-01-27 8:38 ` Jan Stancek
1 sibling, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 14:50 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
@ 2022-01-26 14:55 ` Cyril Hrubis
0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 14:55 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Looks good.
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
@ 2022-01-26 15:00 ` Cyril Hrubis
0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:00 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Looks good as well.
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
@ 2022-01-26 15:04 ` Cyril Hrubis
2022-01-26 22:30 ` Petr Vorel
1 sibling, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:04 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Looks good as well.
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
@ 2022-01-26 15:15 ` Cyril Hrubis
0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:15 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
@ 2022-01-26 15:18 ` Cyril Hrubis
0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:18 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Reviwed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 7/7] m4: Fix warnings
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
@ 2022-01-26 15:23 ` Cyril Hrubis
0 siblings, 0 replies; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:23 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Looks like an obvious fix.
Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
` (6 preceding siblings ...)
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
@ 2022-01-26 15:25 ` Cyril Hrubis
2022-01-26 18:14 ` Petr Vorel
7 siblings, 1 reply; 19+ messages in thread
From: Cyril Hrubis @ 2022-01-26 15:25 UTC (permalink / raw)
To: Petr Vorel; +Cc: automated-testing, ltp
Hi!
Generally this is a nice cleanup, I guess that we should wait for a
while if there is someone who will ask to keep the ltp-scanner and then
we can go ahead with the changes...
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks
2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
@ 2022-01-26 18:14 ` Petr Vorel
0 siblings, 0 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 18:14 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp, automated-testing
Hi all,
[ Fixing the address: automated-testing@yoctoproject.org was wrong,
now using automated-testing@lists.yoctoproject.org ]
> Hi!
> Generally this is a nice cleanup, I guess that we should wait for a
> while if there is someone who will ask to keep the ltp-scanner and then
> we can go ahead with the changes...
+1. Please let us know if you're using ltp-scanner.
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
2022-01-26 15:04 ` Cyril Hrubis
@ 2022-01-26 22:30 ` Petr Vorel
1 sibling, 0 replies; 19+ messages in thread
From: Petr Vorel @ 2022-01-26 22:30 UTC (permalink / raw)
To: ltp; +Cc: automated-testing
> Yes, uclibc-ng still haven't defined exp10, thus still needed.
To correct myself, it has been added 5 years ago, in v1.0.27 (2017):
https://cgit.openadk.org/cgi/cgit/uclibc-ng.git/commit/?id=ea38f4d89c9698895b1cf53a5946429dc1d8bbaa.
And even before there was implementation from glibc in v1.0.12 (2016):
https://cgit.openadk.org/cgi/cgit/uclibc-ng.git/commit/?id=12a85731dc5fda3bc01ab19c82678b3bf122d794.
It'd be nice to see if there are toolchains which still use v1.0.12.
Kind regards,
Petr
> Link: https://github.com/linux-test-project/ltp/issues/13
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
2022-01-26 14:50 ` Cyril Hrubis
@ 2022-01-27 8:38 ` Jan Stancek
1 sibling, 0 replies; 19+ messages in thread
From: Jan Stancek @ 2022-01-27 8:38 UTC (permalink / raw)
To: Petr Vorel, maninder1.s, weijg.fnst; +Cc: automated-testing, LTP List
On Wed, Jan 26, 2022 at 1:37 PM Petr Vorel <pvorel@suse.cz> wrote:
>
> We believe that nobody uses it.
There were some fixes to it years ago (I was surprised to find one was
mine), but I can't recall last time I used it so I'm OK with dropping
it.
Acked-by: Jan Stancek <jstancek@redhat.com>
>
> Suggested-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> New in v2
>
> .gitignore | 1 -
> INSTALL | 2 -
> configure.ac | 1 -
> pan/Makefile | 8 -
> pan/debug.c | 84 --------
> pan/debug.h | 67 -------
> pan/ltp-scanner.c | 175 -----------------
> pan/reporter.c | 270 --------------------------
> pan/reporter.h | 80 --------
> pan/scan.h | 42 ----
> pan/scan.l | 456 -------------------------------------------
> pan/symbol.c | 467 --------------------------------------------
> pan/symbol.h | 104 ----------
> pan/tag_report.c | 478 ----------------------------------------------
> 14 files changed, 2235 deletions(-)
> delete mode 100644 pan/debug.c
> delete mode 100644 pan/debug.h
> delete mode 100644 pan/ltp-scanner.c
> delete mode 100644 pan/reporter.c
> delete mode 100644 pan/reporter.h
> delete mode 100644 pan/scan.h
> delete mode 100644 pan/scan.l
> delete mode 100644 pan/symbol.c
> delete mode 100644 pan/symbol.h
> delete mode 100644 pan/tag_report.c
>
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2022-01-27 8:39 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-26 12:35 [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner Petr Vorel
2022-01-26 14:50 ` Cyril Hrubis
2022-01-27 8:38 ` Jan Stancek
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd Petr Vorel
2022-01-26 14:55 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr Petr Vorel
2022-01-26 15:00 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check Petr Vorel
2022-01-26 15:04 ` Cyril Hrubis
2022-01-26 22:30 ` Petr Vorel
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED Petr Vorel
2022-01-26 15:15 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args Petr Vorel
2022-01-26 15:18 ` Cyril Hrubis
2022-01-26 12:35 ` [LTP] [RFC PATCH v2 7/7] m4: Fix warnings Petr Vorel
2022-01-26 15:23 ` Cyril Hrubis
2022-01-26 15:25 ` [LTP] [PATCH v2 0/7] m4: Fix warnings, remove old checks Cyril Hrubis
2022-01-26 18:14 ` Petr Vorel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.