From patchwork Wed Jan 26 12:35:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 1584457 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=c0GjoJFk; dkim=fail reason="signature verification failed" header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=wcgWpir7; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JkNXD4db2z9t4b for ; Wed, 26 Jan 2022 23:37:16 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id B63A43C0C9F for ; Wed, 26 Jan 2022 13:37:13 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-2.smtp.seeweb.it (in-2.smtp.seeweb.it [IPv6:2001:4b78:1:20::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 24F763C96D1 for ; Wed, 26 Jan 2022 13:35:59 +0100 (CET) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-2.smtp.seeweb.it (Postfix) with ESMTPS id 098E6600350 for ; Wed, 26 Jan 2022 13:35:56 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1478A1F397; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mIxdnI1/e4xXXrEMJ2fg8NNller6ipvhUOSWWNbdi5c=; b=c0GjoJFkiR1wPrQpUQVwapTDEOwQS9guhYw4HgcodwBR2SAN+8Y0M9Df0f3ePQlg6q2JZT 4b16AusimV4EkwpXpcvYRAJ0gzzL88Ym2WQvOxomh60d4gbjvpaJSdkHWxBOjwXi+H+HNo +KKpAhLPnAN/8G6FtKiKnn/kCvY50mk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mIxdnI1/e4xXXrEMJ2fg8NNller6ipvhUOSWWNbdi5c=; b=wcgWpir7tHImVOW5U+kCjGOpjtfOTYIQGaN1EcpzYGcDzJ4C4HmPiCTbzI4J8QuiuyB/tu w0ZyDSO4C8JjH8Aw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id C9B7713BB5; Wed, 26 Jan 2022 12:35:55 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id +MXVLytA8WGkOQAAMHmgww (envelope-from ); Wed, 26 Jan 2022 12:35:55 +0000 From: Petr Vorel To: ltp@lists.linux.it Date: Wed, 26 Jan 2022 13:35:41 +0100 Message-Id: <20220126123547.13298-2-pvorel@suse.cz> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220126123547.13298-1-pvorel@suse.cz> References: <20220126123547.13298-1-pvorel@suse.cz> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-2.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-2.smtp.seeweb.it Subject: [LTP] [RFC PATCH v2 1/7] pan: Remove ltp-scanner X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: automated-testing@yoctoproject.org Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" We believe that nobody uses it. Suggested-by: Cyril Hrubis Signed-off-by: Petr Vorel Reviewed-by: Cyril Hrubis Acked-by: Jan Stancek --- 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 -#include -#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 -#include -#include -#include -#include -#include -#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 -#include -#include -#include -#include -#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 -#include -#include -#include - -#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 -%% -^<<>>$ { - 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 */ -} - -^<<>>$ { - 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 */ -} - -^<<>>$ { - 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 */ -} - -^<<>>$ { - BEGIN OUT; - check_mode(scan_mode, SCAN_TSTKEY, 0); - scan_mode = SCAN_OUTPUT; - - test_output(ctag, keys); - - return(TEST_OUTPUT); - /* NOTREACHED */ -} - -^<<>>$ { - BEGIN KEY; - check_mode(scan_mode, SCAN_TSTKEY, SCAN_OUTPUT, 0); - scan_mode = SCAN_TSTKEY; - return(EXEC_STATUS); - /* NOTREACHED */ -} - -^<<>>$ { - 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 */ -} - -[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 */ -} - -[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 */ -} - -[ \t\n]* { - return(SPACE); - /* NOTREACHED */ -} - -^.+$ { -#ifdef DEBUGGING - DEBUG(D_SCAN_LEX, 5) - printf("TEXT_LINE: %s\n", yytext); -#endif - - return(TEXT_LINE); - /* NOTREACHED */ -} - -^{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 */ -} - -^{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 -#include -#include -#include -#include -#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); - -} From patchwork Wed Jan 26 12:35:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 1584456 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=oCkBSt1K; dkim=fail reason="signature verification failed" header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Zpx2sPEr; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JkNX063JRz9t4b for ; Wed, 26 Jan 2022 23:37:04 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 60A2C3C9696 for ; Wed, 26 Jan 2022 13:37:02 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-5.smtp.seeweb.it (in-5.smtp.seeweb.it [IPv6:2001:4b78:1:20::5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id C30413C96A3 for ; Wed, 26 Jan 2022 13:35:57 +0100 (CET) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-5.smtp.seeweb.it (Postfix) with ESMTPS id AB518600D70 for ; Wed, 26 Jan 2022 13:35:56 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 3E6DD218E6; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dZ2257FBpKpXx4RXfZY7Kuyy9kXb4fz+X2GIlx0+CZY=; b=oCkBSt1KVt0DZqrlK0vBtb2x7l5MF72sdEXBUJ6Q+5bwLJJWnXGZVdfToDcN95YlSADGDU /TOslxIYCLY+2eH3vOaxUu1sQHPeyBdWOrUMtlIYvzJfCDuX+2ETmKq1dJj3r9304a3j60 skGftHAHzSi1PZKXQT4YW5re4ceN9SI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=dZ2257FBpKpXx4RXfZY7Kuyy9kXb4fz+X2GIlx0+CZY=; b=Zpx2sPEr7j5b7YCi9n+alzznj3JQx3u4vKIIDZkKMeHkwHWJPyY1DkMyUv/4uG9K8k1xjb 9wIKe84C05H9yuAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 1A5DB13F30; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id +PY9BSxA8WGkOQAAMHmgww (envelope-from ); Wed, 26 Jan 2022 12:35:56 +0000 From: Petr Vorel To: ltp@lists.linux.it Date: Wed, 26 Jan 2022 13:35:42 +0100 Message-Id: <20220126123547.13298-3-pvorel@suse.cz> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220126123547.13298-1-pvorel@suse.cz> References: <20220126123547.13298-1-pvorel@suse.cz> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-5.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-5.smtp.seeweb.it Subject: [LTP] [RFC PATCH v2 2/7] m4: Remove check for io_set_eventfd X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: automated-testing@yoctoproject.org Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" 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 Reviewed-by: Cyril Hrubis --- 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 +dnl Copyright (c) 2017-2022 Petr Vorel dnl Author: Masatake YAMATO 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 - #include - ], - [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. + * 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) { From patchwork Wed Jan 26 12:35:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 1584452 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=MU06LYll; dkim=fail reason="signature verification failed" header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=RHPJKIjB; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JkNWB6hPDz9t4b for ; Wed, 26 Jan 2022 23:36:22 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 9D25B3C9717 for ; Wed, 26 Jan 2022 13:36:20 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-7.smtp.seeweb.it (in-7.smtp.seeweb.it [217.194.8.7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 1E4D13C95FF for ; Wed, 26 Jan 2022 13:35:58 +0100 (CET) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-7.smtp.seeweb.it (Postfix) with ESMTPS id 01629200C63 for ; Wed, 26 Jan 2022 13:35:56 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 6CE921F3B0; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4ZBL8dSdf1ie6uOHZhoCrXwEKXu4QNHmvW0+MUYY18s=; b=MU06LYllozRMt7zV0hPwsJYOAJfi/r80T+LPvq/tjRnt/YFzvTAVFjDXFnYE6FaRWmlV0O DKa04/ErKfljRSaPY/bnIGArmuCOrFRtHO+ExMJepfNsyRf6/oGWbWn3cmfmCGOfB1ZnVM nO+U3/F8Hov9tKUU8qWMAICxiwcKieE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4ZBL8dSdf1ie6uOHZhoCrXwEKXu4QNHmvW0+MUYY18s=; b=RHPJKIjB2+iiQBB1LyY/zQD6FLUYW3umDqr1HlvilDoDZ971odUfNZKh5Yljcj9QAZOYb9 p+NE6Z+qR9QGTxAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 45E5A13BB5; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id kDaTDyxA8WGkOQAAMHmgww (envelope-from ); Wed, 26 Jan 2022 12:35:56 +0000 From: Petr Vorel To: ltp@lists.linux.it Date: Wed, 26 Jan 2022 13:35:43 +0100 Message-Id: <20220126123547.13298-4-pvorel@suse.cz> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220126123547.13298-1-pvorel@suse.cz> References: <20220126123547.13298-1-pvorel@suse.cz> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-7.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-7.smtp.seeweb.it Subject: [LTP] [RFC PATCH v2 3/7] m4: Remove check for struct perf_event_attr X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: automated-testing@yoctoproject.org Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" 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 Reviewed-by: Cyril Hrubis --- 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 -dnl Author: Xiaoguang Wang - -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 - #include ], - [ - 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 + * 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 #include @@ -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 , 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 #include #include "config.h" -#if HAVE_PERF_EVENT_ATTR -# include -#endif +#include #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: 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 - * 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 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 + * 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 or " - "struct perf_event_attr is not defined."); -#endif From patchwork Wed Jan 26 12:35:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 1584455 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=bjJrwoQG; dkim=fail reason="signature verification failed" header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=WsfFFIlx; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JkNWp4VVYz9t4b for ; Wed, 26 Jan 2022 23:36:54 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 27E773C9664 for ; Wed, 26 Jan 2022 13:36:52 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-2.smtp.seeweb.it (in-2.smtp.seeweb.it [217.194.8.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 748E93C9664 for ; Wed, 26 Jan 2022 13:35:58 +0100 (CET) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-2.smtp.seeweb.it (Postfix) with ESMTPS id 0D254601D42 for ; Wed, 26 Jan 2022 13:35:57 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 9DA5B218E7; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FPKWjbZ/cFTETwaBTAvP7p+He0SHCkoj5X9byYNKQxk=; b=bjJrwoQG7Ei3cm6AQEYhnNbMHb2GaAd2B/sGuXYrt7vEIyK0DRtmLdaQByE2Fp5BbPl3m9 PRAPJX27OqnSEwwLxzyAmTE6N1BfzMVr5LzbU8NnEXXvTg1pDJ/gIVvQ9ZYFxvPMHYbQHO 2PTAaIla6++pdf3gckc4L7yhdl99MAQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=FPKWjbZ/cFTETwaBTAvP7p+He0SHCkoj5X9byYNKQxk=; b=WsfFFIlxWoM+qIEHQ7HZk+41c8jK9pjaaHCL7NpbCQKaMR0h+tVcSByF57ggZi+dfGNnYi l8+hY3gqoxsIGECQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7555713BB5; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wLkfGyxA8WGkOQAAMHmgww (envelope-from ); Wed, 26 Jan 2022 12:35:56 +0000 From: Petr Vorel To: ltp@lists.linux.it Date: Wed, 26 Jan 2022 13:35:44 +0100 Message-Id: <20220126123547.13298-5-pvorel@suse.cz> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220126123547.13298-1-pvorel@suse.cz> References: <20220126123547.13298-1-pvorel@suse.cz> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-2.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-2.smtp.seeweb.it Subject: [LTP] [RFC PATCH v2 4/7] realtime/m4: Simplify exp10 check X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: automated-testing@yoctoproject.org Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" 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 Reviewed-by: Cyril Hrubis --- 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 ], - [ - volatile float val; - exp10(val); - ], - AC_DEFINE(HAVE_EXP10) AC_MSG_RESULT(yes), AC_MSG_RESULT(no)) -LIBS="$backup_ldlibs" -]) From patchwork Wed Jan 26 12:35:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 1584450 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=QI3+DDUe; dkim=fail reason="signature verification failed" header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=i0VMb3pm; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=213.254.12.146; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [213.254.12.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JkNVn2SQgz9t4b for ; Wed, 26 Jan 2022 23:36:01 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id E0E2E3C96BE for ; Wed, 26 Jan 2022 13:35:58 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-3.smtp.seeweb.it (in-3.smtp.seeweb.it [217.194.8.3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id B88F23C0C9F for ; Wed, 26 Jan 2022 13:35:57 +0100 (CET) Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-3.smtp.seeweb.it (Postfix) with ESMTPS id 369CE1A00445 for ; Wed, 26 Jan 2022 13:35:57 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id CEFFF218EB; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Y6/C/c4axnouW1nL8x/bfNXJEvhZwRKGKlj8DaMcvCM=; b=QI3+DDUesW3FInudktos8qR8mAZm0HVuxRkcsQ7RU4bCDmplvi4neXv0DH6XQ2mmLXYDca oU9QuVtGoA2dj5VJYHIvRbljzC72xbj0V2kLA3ZHaEra+hUuhOhfeb1dABaTwAZbOfISnU PMuEkzVIvwWJ4rRzll+TrQSzz7J+pGI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643200556; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Y6/C/c4axnouW1nL8x/bfNXJEvhZwRKGKlj8DaMcvCM=; b=i0VMb3pm4z0OzdUIULoXHsl88fe6kftjwrCUhIympvt1P8DC51Pq3bCTp/N13g61Nt2FTz JYy3lTwdbsFSd4Aw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id A85CF13BB5; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CPE0JyxA8WGkOQAAMHmgww (envelope-from ); Wed, 26 Jan 2022 12:35:56 +0000 From: Petr Vorel To: ltp@lists.linux.it Date: Wed, 26 Jan 2022 13:35:45 +0100 Message-Id: <20220126123547.13298-6-pvorel@suse.cz> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220126123547.13298-1-pvorel@suse.cz> References: <20220126123547.13298-1-pvorel@suse.cz> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-3.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-3.smtp.seeweb.it Subject: [LTP] [RFC PATCH v2 5/7] m4: Remove check for MREMAP_FIXED X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: automated-testing@yoctoproject.org Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" glibc and uclibc added it in 2005, musl at 2011. Signed-off-by: Petr Vorel Reviewed-by: Cyril Hrubis --- 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 - -AC_DEFUN([LTP_CHECK_MREMAP_FIXED],[ -AH_TEMPLATE(HAVE_MREMAP_FIXED, -[Define to 1 if you have MREMAP_FIXED in .]) -AC_MSG_CHECKING([for MREMAP_FIXED in ]) -AC_TRY_COMPILE([#define _GNU_SOURCE - #include ], [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 #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 "); -#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 "); -} - -#endif /* HAVE_MREMAP_FIXED */ From patchwork Wed Jan 26 12:35:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 1584451 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=kKsejDsq; dkim=fail reason="signature verification failed" header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=zrPkOuql; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JkNW35gwVz9t4b for ; Wed, 26 Jan 2022 23:36:15 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 5E5423C971E for ; Wed, 26 Jan 2022 13:36:09 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-7.smtp.seeweb.it (in-7.smtp.seeweb.it [217.194.8.7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 148993C0C9F for ; Wed, 26 Jan 2022 13:35:57 +0100 (CET) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-7.smtp.seeweb.it (Postfix) with ESMTPS id 84A64200D01 for ; Wed, 26 Jan 2022 13:35:57 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 1AEEB1F3B6; Wed, 26 Jan 2022 12:35:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643200557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+9toT3+XA7dqE/yxjZvIzfROFPByeTK/tTqGA4SGvfg=; b=kKsejDsqRGWXIpgGE1GelPXIcGhu9uo9qrDnfqdbz/zk/B3Aoton67tKA+JBFnaD6w9hdf 8IsUtK1FcinhXjtYWAFp2amAxKWSDYQAPmxUZCT1khqBq6Mu1ZlfQRryMsUH/paWmNL6Me TY74hMT39liyROm8mWzJJFcioi5qh5Q= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643200557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+9toT3+XA7dqE/yxjZvIzfROFPByeTK/tTqGA4SGvfg=; b=zrPkOuqljfdlC0znJhbeInNBP+wowvJxflpS8AyUFXlS9h0z5MftESXnVp9BbzygMfe7E8 kpPm1YcmKODuY/AA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D7E2213BB5; Wed, 26 Jan 2022 12:35:56 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id WF8QMyxA8WGkOQAAMHmgww (envelope-from ); Wed, 26 Jan 2022 12:35:56 +0000 From: Petr Vorel To: ltp@lists.linux.it Date: Wed, 26 Jan 2022 13:35:46 +0100 Message-Id: <20220126123547.13298-7-pvorel@suse.cz> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220126123547.13298-1-pvorel@suse.cz> References: <20220126123547.13298-1-pvorel@suse.cz> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-7.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-7.smtp.seeweb.it Subject: [LTP] [RFC PATCH v2 6/7] m4: Remove check for clone() supports 7 args X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: automated-testing@yoctoproject.org Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" 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 --- 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 - #include ], - [ - #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)) -]) From patchwork Wed Jan 26 12:35:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Vorel X-Patchwork-Id: 1584453 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa header.b=LiRwV+Jq; dkim=fail reason="signature verification failed" header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=uiuuZA1i; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JkNWP17yTz9t4b for ; Wed, 26 Jan 2022 23:36:33 +1100 (AEDT) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 7FAF63C96F8 for ; Wed, 26 Jan 2022 13:36:30 +0100 (CET) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [217.194.8.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 3648B3C9602 for ; Wed, 26 Jan 2022 13:35:58 +0100 (CET) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by in-4.smtp.seeweb.it (Postfix) with ESMTPS id A557C10001B6 for ; Wed, 26 Jan 2022 13:35:57 +0100 (CET) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 430D01F3B9; Wed, 26 Jan 2022 12:35:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643200557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=R5QNaNhZZAW7kyqQFM19dbkSJZ+yv9Y51uJgbz/mWJs=; b=LiRwV+JqrUBE02PjkZ29qcZyu400+aU6WkHZKFhQliCesCMuRyPduA6gT9YBd+P/YOf5qB ieqinAZepBjP8FnxT+XEfvsYJqmLTbKPDhF4oPWkIYGjcZ3ibwLT5qsP+FYN22+uJu4sBH wvEB9na00GxoBjQ1YQvXXAnwSGO8iag= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643200557; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=R5QNaNhZZAW7kyqQFM19dbkSJZ+yv9Y51uJgbz/mWJs=; b=uiuuZA1i4+lw9SjWk2VRlJYT5QfisG69QSUhS7yixliDmeSsZzvZ875+Nwbnd/HX8or7xN bNchSKGp0OPEcGBQ== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 1861713F30; Wed, 26 Jan 2022 12:35:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 8DSpBC1A8WGkOQAAMHmgww (envelope-from ); Wed, 26 Jan 2022 12:35:57 +0000 From: Petr Vorel To: ltp@lists.linux.it Date: Wed, 26 Jan 2022 13:35:47 +0100 Message-Id: <20220126123547.13298-8-pvorel@suse.cz> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220126123547.13298-1-pvorel@suse.cz> References: <20220126123547.13298-1-pvorel@suse.cz> MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-4.smtp.seeweb.it Subject: [LTP] [RFC PATCH v2 7/7] m4: Fix warnings X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: automated-testing@yoctoproject.org Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" 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 Reviewed-by: Cyril Hrubis --- 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 ],[int main(void) { +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include ]], [[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)