Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
DJ Delorie | 132999a692 |
|
@ -1 +0,0 @@
|
||||||
1
|
|
19
gating.yaml
19
gating.yaml
|
@ -1,19 +0,0 @@
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- fedora-*
|
|
||||||
decision_context: bodhi_update_push_stable
|
|
||||||
subject_type: koji_build
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-8
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-9
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
|
|
@ -1,268 +0,0 @@
|
||||||
From e49e11e069fe7f214263be1782242b9b50f71eaa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Paul Smith <psmith@gnu.org>
|
|
||||||
Date: Thu, 12 Nov 2020 17:00:39 -0500
|
|
||||||
Subject: [SV 59093] Rewrite filter/filter-out to avoid large stack usage
|
|
||||||
|
|
||||||
* src/function.c (func_filter_filterout): Allocate arrays to hold
|
|
||||||
pattern and word information rather than creating linked lists on
|
|
||||||
the stack.
|
|
||||||
* tests/scripts/functions/filter-out: Test large filters.
|
|
||||||
|
|
||||||
diff --git a/src/function.c b/src/function.c
|
|
||||||
index 0917e0cd..5edfe8b3 100644
|
|
||||||
--- a/src/function.c
|
|
||||||
+++ b/src/function.c
|
|
||||||
@@ -910,7 +910,6 @@ func_foreach (char *o, char **argv, const char *funcname UNUSED)
|
|
||||||
|
|
||||||
struct a_word
|
|
||||||
{
|
|
||||||
- struct a_word *next;
|
|
||||||
struct a_word *chain;
|
|
||||||
char *str;
|
|
||||||
size_t length;
|
|
||||||
@@ -941,7 +940,6 @@ a_word_hash_cmp (const void *x, const void *y)
|
|
||||||
|
|
||||||
struct a_pattern
|
|
||||||
{
|
|
||||||
- struct a_pattern *next;
|
|
||||||
char *str;
|
|
||||||
char *percent;
|
|
||||||
size_t length;
|
|
||||||
@@ -950,78 +948,84 @@ struct a_pattern
|
|
||||||
static char *
|
|
||||||
func_filter_filterout (char *o, char **argv, const char *funcname)
|
|
||||||
{
|
|
||||||
- struct a_word *wordhead;
|
|
||||||
- struct a_word **wordtail;
|
|
||||||
+ struct a_word *words;
|
|
||||||
+ struct a_word *word_end;
|
|
||||||
struct a_word *wp;
|
|
||||||
- struct a_pattern *pathead;
|
|
||||||
- struct a_pattern **pattail;
|
|
||||||
+ struct a_pattern *patterns;
|
|
||||||
+ struct a_pattern *pat_end;
|
|
||||||
struct a_pattern *pp;
|
|
||||||
+ size_t pat_count = 0, word_count = 0;
|
|
||||||
|
|
||||||
struct hash_table a_word_table;
|
|
||||||
int is_filter = funcname[CSTRLEN ("filter")] == '\0';
|
|
||||||
- const char *pat_iterator = argv[0];
|
|
||||||
- const char *word_iterator = argv[1];
|
|
||||||
+ const char *cp;
|
|
||||||
int literals = 0;
|
|
||||||
- int words = 0;
|
|
||||||
int hashing = 0;
|
|
||||||
char *p;
|
|
||||||
size_t len;
|
|
||||||
+ int doneany = 0;
|
|
||||||
|
|
||||||
- /* Chop ARGV[0] up into patterns to match against the words.
|
|
||||||
- We don't need to preserve it because our caller frees all the
|
|
||||||
- argument memory anyway. */
|
|
||||||
+ /* Find the number of words and get memory for them. */
|
|
||||||
+ cp = argv[1];
|
|
||||||
+ while ((p = find_next_token (&cp, NULL)) != 0)
|
|
||||||
+ ++word_count;
|
|
||||||
|
|
||||||
- pattail = &pathead;
|
|
||||||
- while ((p = find_next_token (&pat_iterator, &len)) != 0)
|
|
||||||
- {
|
|
||||||
- struct a_pattern *pat = alloca (sizeof (struct a_pattern));
|
|
||||||
+ if (!word_count)
|
|
||||||
+ return o;
|
|
||||||
+
|
|
||||||
+ words = xcalloc (word_count * sizeof (struct a_word));
|
|
||||||
+ word_end = words + word_count;
|
|
||||||
|
|
||||||
- *pattail = pat;
|
|
||||||
- pattail = &pat->next;
|
|
||||||
+ /* Find the number of patterns and get memory for them. */
|
|
||||||
+ cp = argv[0];
|
|
||||||
+ while ((p = find_next_token (&cp, NULL)) != 0)
|
|
||||||
+ ++pat_count;
|
|
||||||
|
|
||||||
- if (*pat_iterator != '\0')
|
|
||||||
- ++pat_iterator;
|
|
||||||
+ patterns = xcalloc (pat_count * sizeof (struct a_pattern));
|
|
||||||
+ pat_end = patterns + pat_count;
|
|
||||||
+
|
|
||||||
+ /* Chop argv[0] up into patterns to match against the words. */
|
|
||||||
+
|
|
||||||
+ cp = argv[0];
|
|
||||||
+ pp = patterns;
|
|
||||||
+ while ((p = find_next_token (&cp, &len)) != 0)
|
|
||||||
+ {
|
|
||||||
+ if (*cp != '\0')
|
|
||||||
+ ++cp;
|
|
||||||
|
|
||||||
- pat->str = p;
|
|
||||||
p[len] = '\0';
|
|
||||||
- pat->percent = find_percent (p);
|
|
||||||
- if (pat->percent == 0)
|
|
||||||
+ pp->str = p;
|
|
||||||
+ pp->percent = find_percent (p);
|
|
||||||
+ if (pp->percent == 0)
|
|
||||||
literals++;
|
|
||||||
-
|
|
||||||
/* find_percent() might shorten the string so LEN is wrong. */
|
|
||||||
- pat->length = strlen (pat->str);
|
|
||||||
+ pp->length = strlen (pp->str);
|
|
||||||
+
|
|
||||||
+ ++pp;
|
|
||||||
}
|
|
||||||
- *pattail = 0;
|
|
||||||
|
|
||||||
/* Chop ARGV[1] up into words to match against the patterns. */
|
|
||||||
|
|
||||||
- wordtail = &wordhead;
|
|
||||||
- while ((p = find_next_token (&word_iterator, &len)) != 0)
|
|
||||||
+ cp = argv[1];
|
|
||||||
+ wp = words;
|
|
||||||
+ while ((p = find_next_token (&cp, &len)) != 0)
|
|
||||||
{
|
|
||||||
- struct a_word *word = alloca (sizeof (struct a_word));
|
|
||||||
-
|
|
||||||
- *wordtail = word;
|
|
||||||
- wordtail = &word->next;
|
|
||||||
-
|
|
||||||
- if (*word_iterator != '\0')
|
|
||||||
- ++word_iterator;
|
|
||||||
+ if (*cp != '\0')
|
|
||||||
+ ++cp;
|
|
||||||
|
|
||||||
p[len] = '\0';
|
|
||||||
- word->str = p;
|
|
||||||
- word->length = len;
|
|
||||||
- word->matched = 0;
|
|
||||||
- word->chain = 0;
|
|
||||||
- words++;
|
|
||||||
+ wp->str = p;
|
|
||||||
+ wp->length = len;
|
|
||||||
+ ++wp;
|
|
||||||
}
|
|
||||||
- *wordtail = 0;
|
|
||||||
|
|
||||||
/* Only use a hash table if arg list lengths justifies the cost. */
|
|
||||||
- hashing = (literals >= 2 && (literals * words) >= 10);
|
|
||||||
+ hashing = (literals > 1 && (literals * word_count) >= 10);
|
|
||||||
if (hashing)
|
|
||||||
{
|
|
||||||
- hash_init (&a_word_table, words, a_word_hash_1, a_word_hash_2,
|
|
||||||
+ hash_init (&a_word_table, word_count, a_word_hash_1, a_word_hash_2,
|
|
||||||
a_word_hash_cmp);
|
|
||||||
- for (wp = wordhead; wp != 0; wp = wp->next)
|
|
||||||
+ for (wp = words; wp < word_end; ++wp)
|
|
||||||
{
|
|
||||||
struct a_word *owp = hash_insert (&a_word_table, wp);
|
|
||||||
if (owp)
|
|
||||||
@@ -1029,51 +1033,49 @@ func_filter_filterout (char *o, char **argv, const char *funcname)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (words)
|
|
||||||
+ /* Run each pattern through the words, killing words. */
|
|
||||||
+ for (pp = patterns; pp < pat_end; ++pp)
|
|
||||||
{
|
|
||||||
- int doneany = 0;
|
|
||||||
-
|
|
||||||
- /* Run each pattern through the words, killing words. */
|
|
||||||
- for (pp = pathead; pp != 0; pp = pp->next)
|
|
||||||
+ if (pp->percent)
|
|
||||||
+ for (wp = words; wp < word_end; ++wp)
|
|
||||||
+ wp->matched |= pattern_matches (pp->str, pp->percent, wp->str);
|
|
||||||
+ else if (hashing)
|
|
||||||
{
|
|
||||||
- if (pp->percent)
|
|
||||||
- for (wp = wordhead; wp != 0; wp = wp->next)
|
|
||||||
- wp->matched |= pattern_matches (pp->str, pp->percent, wp->str);
|
|
||||||
- else if (hashing)
|
|
||||||
+ struct a_word a_word_key;
|
|
||||||
+ a_word_key.str = pp->str;
|
|
||||||
+ a_word_key.length = pp->length;
|
|
||||||
+ wp = hash_find_item (&a_word_table, &a_word_key);
|
|
||||||
+ while (wp)
|
|
||||||
{
|
|
||||||
- struct a_word a_word_key;
|
|
||||||
- a_word_key.str = pp->str;
|
|
||||||
- a_word_key.length = pp->length;
|
|
||||||
- wp = hash_find_item (&a_word_table, &a_word_key);
|
|
||||||
- while (wp)
|
|
||||||
- {
|
|
||||||
- wp->matched |= 1;
|
|
||||||
- wp = wp->chain;
|
|
||||||
- }
|
|
||||||
+ wp->matched |= 1;
|
|
||||||
+ wp = wp->chain;
|
|
||||||
}
|
|
||||||
- else
|
|
||||||
- for (wp = wordhead; wp != 0; wp = wp->next)
|
|
||||||
- wp->matched |= (wp->length == pp->length
|
|
||||||
- && strneq (pp->str, wp->str, wp->length));
|
|
||||||
}
|
|
||||||
+ else
|
|
||||||
+ for (wp = words; wp < word_end; ++wp)
|
|
||||||
+ wp->matched |= (wp->length == pp->length
|
|
||||||
+ && strneq (pp->str, wp->str, wp->length));
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- /* Output the words that matched (or didn't, for filter-out). */
|
|
||||||
- for (wp = wordhead; wp != 0; wp = wp->next)
|
|
||||||
- if (is_filter ? wp->matched : !wp->matched)
|
|
||||||
- {
|
|
||||||
- o = variable_buffer_output (o, wp->str, strlen (wp->str));
|
|
||||||
- o = variable_buffer_output (o, " ", 1);
|
|
||||||
- doneany = 1;
|
|
||||||
- }
|
|
||||||
+ /* Output the words that matched (or didn't, for filter-out). */
|
|
||||||
+ for (wp = words; wp < word_end; ++wp)
|
|
||||||
+ if (is_filter ? wp->matched : !wp->matched)
|
|
||||||
+ {
|
|
||||||
+ o = variable_buffer_output (o, wp->str, strlen (wp->str));
|
|
||||||
+ o = variable_buffer_output (o, " ", 1);
|
|
||||||
+ doneany = 1;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if (doneany)
|
|
||||||
- /* Kill the last space. */
|
|
||||||
- --o;
|
|
||||||
- }
|
|
||||||
+ if (doneany)
|
|
||||||
+ /* Kill the last space. */
|
|
||||||
+ --o;
|
|
||||||
|
|
||||||
if (hashing)
|
|
||||||
hash_free (&a_word_table, 0);
|
|
||||||
|
|
||||||
+ free (patterns);
|
|
||||||
+ free (words);
|
|
||||||
+
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/tests/scripts/functions/filter-out b/tests/scripts/functions/filter-out
|
|
||||||
index 1fe4819d..dec5343e 100644
|
|
||||||
--- a/tests/scripts/functions/filter-out
|
|
||||||
+++ b/tests/scripts/functions/filter-out
|
|
||||||
@@ -27,6 +27,22 @@ all: ; @echo '$(files1) $(files2)'
|
|
||||||
!,
|
|
||||||
'', "foo.elc foo.elc\n");
|
|
||||||
|
|
||||||
+# Force use of hash (see function.c:func_filter_filterout for params)
|
|
||||||
+
|
|
||||||
+my $base = 'foo.1 foo.2 foo.3 foo.4 foo.5 foo.6 foo.7 foo.8 foo.9 foo.10';
|
|
||||||
+
|
|
||||||
+my $base10 = join(' ', ($base) x 10);
|
|
||||||
+my $out3 = join(' ', ('foo.3') x 10);
|
|
||||||
+my $out456 = join(' ', ('foo.4 foo.5 foo.6') x 10);
|
|
||||||
+
|
|
||||||
+run_make_test("words := $base10" . q!
|
|
||||||
+files1 := $(filter %.3, $(words))
|
|
||||||
+files2 := $(filter %.4 foo.5 foo.6, $(words))
|
|
||||||
+all: ; @echo '$(files1) $(files2)'
|
|
||||||
+!,
|
|
||||||
+ '', "$out3 $out456\n");
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# Escaped patterns
|
|
||||||
run_make_test(q!all:;@echo '$(filter foo\%bar,foo%bar fooXbar)'!,
|
|
||||||
'', "foo%bar\n");
|
|
88
make.spec
88
make.spec
|
@ -1,31 +1,13 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# This decides the SRPM name. Set to "make" for a rolling release
|
Summary: A GNU tool which simplifies the build process for users
|
||||||
# (like Fedora) or "make-latest" for a long term release that needs
|
|
||||||
# optional versioned updates.
|
|
||||||
Name: make
|
Name: make
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 4.3
|
Version: 4.3
|
||||||
Release: 11%{?dist}
|
Release: 5%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: http://www.gnu.org/software/make/
|
URL: http://www.gnu.org/software/make/
|
||||||
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.gz
|
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.gz
|
||||||
|
|
||||||
%if "%{name}" != "make"
|
|
||||||
# Set this to the sub-package base name, for "make-latest"
|
|
||||||
%global make make43
|
|
||||||
%if 0%{?rhel} > 0
|
|
||||||
%global _prefix /opt/rh/%{make}
|
|
||||||
%else
|
|
||||||
# We intentionally do not define a case for Fedora, as it should not
|
|
||||||
# need this functionality, and letting it error avoids accidents.
|
|
||||||
%{error:"Each downstream must specify its own /opt namespace"}
|
|
||||||
%endif
|
|
||||||
Summary: Meta package to include latest version of make
|
|
||||||
%else
|
|
||||||
%global make %{name}
|
|
||||||
Summary: A GNU tool which simplifies the build process for users
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if 0%{?rhel} > 0
|
%if 0%{?rhel} > 0
|
||||||
# This gives the user the option of saying --with guile, but defaults to WITHOUT
|
# This gives the user the option of saying --with guile, but defaults to WITHOUT
|
||||||
%bcond_with guile
|
%bcond_with guile
|
||||||
|
@ -49,33 +31,17 @@ Patch2: make-4.3-j8k.patch
|
||||||
# Remove on next make rebase
|
# Remove on next make rebase
|
||||||
Patch3: make-4.3-cloexec.patch
|
Patch3: make-4.3-cloexec.patch
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2010506
|
|
||||||
# https://savannah.gnu.org/bugs/?59093
|
|
||||||
# Remove on next make rebase
|
|
||||||
Patch4: make-4.3-filter-out.patch
|
|
||||||
|
|
||||||
# autoreconf
|
# autoreconf
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: autoconf, automake, gettext-devel
|
BuildRequires: autoconf, automake, gettext-devel
|
||||||
BuildRequires: procps
|
BuildRequires: procps
|
||||||
BuildRequires: perl
|
BuildRequires: perl-interpreter
|
||||||
%if %{with guile}
|
%if %{with guile}
|
||||||
BuildRequires: pkgconfig(guile-2.2)
|
BuildRequires: pkgconfig(guile-2.2)
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
|
|
||||||
%if "%{name}" != "make"
|
%description
|
||||||
# We're still on the make-latest package
|
|
||||||
Requires: %{make}
|
|
||||||
%description -n make-latest
|
|
||||||
The latest GNU Make, with a version-specific install
|
|
||||||
%files -n make-latest
|
|
||||||
|
|
||||||
%package -n %{make}
|
|
||||||
Summary: A GNU tool which simplifies the build process for users
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%description -n %{make}
|
|
||||||
A GNU tool for controlling the generation of executables and other
|
A GNU tool for controlling the generation of executables and other
|
||||||
non-source files of a program from the program's source files. Make
|
non-source files of a program from the program's source files. Make
|
||||||
allows users to build and install packages without any significant
|
allows users to build and install packages without any significant
|
||||||
|
@ -83,14 +49,14 @@ knowledge about the details of the build process. The details about
|
||||||
how the program should be built are provided for make in the program's
|
how the program should be built are provided for make in the program's
|
||||||
makefile.
|
makefile.
|
||||||
|
|
||||||
%package -n %{make}-devel
|
%package devel
|
||||||
Summary: Header file for externally visible definitions
|
Summary: Header file for externally visible definitions
|
||||||
|
|
||||||
%description -n %{make}-devel
|
%description devel
|
||||||
The %{make}-devel package contains gnumake.h.
|
The make-devel package contains gnumake.h.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -n make-%{version} -p1
|
%autosetup -p1
|
||||||
|
|
||||||
rm -f tests/scripts/features/parallelism.orig
|
rm -f tests/scripts/features/parallelism.orig
|
||||||
|
|
||||||
|
@ -112,57 +78,25 @@ ln -sf make ${RPM_BUILD_ROOT}/%{_bindir}/gmake
|
||||||
ln -sf make.1 ${RPM_BUILD_ROOT}/%{_mandir}/man1/gmake.1
|
ln -sf make.1 ${RPM_BUILD_ROOT}/%{_mandir}/man1/gmake.1
|
||||||
rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
|
rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
|
||||||
|
|
||||||
%if "%{name}" != "make"
|
%find_lang %name
|
||||||
install -d -m 755 ${RPM_BUILD_ROOT}/etc/scl/prefixes
|
|
||||||
dirname %{_prefix} > %{make}.prefix
|
|
||||||
install -p -m 644 %{make}.prefix ${RPM_BUILD_ROOT}/etc/scl/prefixes/%{make}
|
|
||||||
|
|
||||||
echo "export PATH=%{_prefix}/bin:\$PATH" > enable.scl
|
|
||||||
install -p -m 755 enable.scl ${RPM_BUILD_ROOT}/%{_prefix}/enable
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%find_lang make
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
echo ============TESTING===============
|
echo ============TESTING===============
|
||||||
/usr/bin/env LANG=C make check && true
|
/usr/bin/env LANG=C make check && true
|
||||||
echo ============END TESTING===========
|
echo ============END TESTING===========
|
||||||
|
|
||||||
%files -n %{make} -f make.lang
|
%files -f %{name}.lang
|
||||||
%license COPYING
|
%license COPYING
|
||||||
%doc NEWS README AUTHORS
|
%doc NEWS README AUTHORS
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
%{_mandir}/man*/*
|
%{_mandir}/man*/*
|
||||||
%{_infodir}/*.info*
|
%{_infodir}/*.info*
|
||||||
%{_includedir}/gnumake.h
|
%{_includedir}/gnumake.h
|
||||||
%if "%{name}" != "make"
|
|
||||||
/etc/scl/prefixes/%{make}
|
|
||||||
%{_prefix}/enable
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files -n %{make}-devel
|
%files devel
|
||||||
%{_includedir}/gnumake.h
|
%{_includedir}/gnumake.h
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.3-11
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 14 2022 DJ Delorie <dj@redhat.com> - 1:4.3-10
|
|
||||||
- Add SCL compatibility to LTS builds.
|
|
||||||
|
|
||||||
* Wed Jun 29 2022 DJ Delorie <dj@redhat.com> - 1:4.3-9
|
|
||||||
- Enable long-term supported builds.
|
|
||||||
|
|
||||||
* Fri Apr 8 2022 DJ Delorie <dj@redhat.com> - 1:4.3-8
|
|
||||||
- Rewrite filter/filter-out to avoid large stack usage. BZ #2010506
|
|
||||||
- Require perl core modules for testsuite
|
|
||||||
|
|
||||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.3-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.3-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Feb 19 2021 DJ Delorie <dj@redhat.com> - 1:4.3-5
|
* Fri Feb 19 2021 DJ Delorie <dj@redhat.com> - 1:4.3-5
|
||||||
- Allow users to build with or without guile support as desired.
|
- Allow users to build with or without guile support as desired.
|
||||||
- Allow derivative downstreams to default to disabling guile support.
|
- Allow derivative downstreams to default to disabling guile support.
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
summary: CI Gating Plan
|
|
||||||
discover:
|
|
||||||
how: fmf
|
|
||||||
directory: tests
|
|
||||||
execute:
|
|
||||||
how: beakerlib
|
|
|
@ -1,17 +0,0 @@
|
||||||
summary: GNU make utility v.3.82 shipped with el7 breaks
|
|
||||||
description: |
|
|
||||||
Summary: GNU make utility v.3.82 shipped with el7 breaks environment vars
|
|
||||||
contact:
|
|
||||||
- Michal Kolar <mkolar@redhat.com>
|
|
||||||
component:
|
|
||||||
- make
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- make
|
|
||||||
- coreutils
|
|
||||||
- sed
|
|
||||||
- diffutils
|
|
||||||
duration: 2m
|
|
||||||
extra-summary: /tools/make/Regression/GNU-make-utility-v-3-82-shipped-with-el7-breaks
|
|
||||||
extra-task: /tools/make/Regression/GNU-make-utility-v-3-82-shipped-with-el7-breaks
|
|
|
@ -26,6 +26,7 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
# Include Beaker environment
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh || exit 1
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
CMD="make"
|
CMD="make"
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
summary: Test for Use-after-free() when eval in variable)
|
|
||||||
description: |
|
|
||||||
Summary: Use-after-free() when eval in variable assignments reassigns the same variable
|
|
||||||
contact:
|
|
||||||
- Marek Polacek <polacek@redhat.com>
|
|
||||||
component:
|
|
||||||
- make
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- make
|
|
||||||
- coreutils
|
|
||||||
duration: 2m
|
|
||||||
extra-summary: /tools/make/Regression/Use-after-free-when-eval-in-variable
|
|
||||||
extra-task: /tools/make/Regression/Use-after-free-when-eval-in-variable
|
|
|
@ -27,7 +27,8 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
# Include Beaker environment
|
# Include Beaker environment
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
. /usr/bin/rhts-environment.sh || exit 1
|
||||||
|
. /usr/lib/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
CMD="make"
|
CMD="make"
|
||||||
BIN="$(which $CMD)"
|
BIN="$(which $CMD)"
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
summary: make 3.79 has a parsing bug
|
|
||||||
description: ''
|
|
||||||
contact:
|
|
||||||
- Michal Kolar <mkolar@redhat.com>
|
|
||||||
component:
|
|
||||||
- make
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- make
|
|
||||||
- coreutils
|
|
||||||
duration: 1m
|
|
||||||
extra-summary: /tools/make/Regression/make-3-79-has-a-parsing-bug
|
|
||||||
extra-task: /tools/make/Regression/make-3-79-has-a-parsing-bug
|
|
|
@ -26,6 +26,7 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
# Include Beaker environment
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh || exit 1
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
CMD="make"
|
CMD="make"
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
summary: Test for make bug
|
|
||||||
description: |
|
|
||||||
Summary: Test that make doesn't insert bogus values into order-only dependencies
|
|
||||||
contact:
|
|
||||||
- Petr Muller <pmuller@redhat.com>
|
|
||||||
component:
|
|
||||||
- make
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- make
|
|
||||||
- coreutils
|
|
||||||
- diffutils
|
|
||||||
duration: 1m
|
|
||||||
extra-summary: /tools/make/Regression/order-only
|
|
||||||
extra-task: /tools/make/Regression/order-only
|
|
|
@ -26,6 +26,7 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
# Include Beaker environment
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh || exit 1
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
CMD="make"
|
CMD="make"
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
summary: Show your version. Build a one-file project.
|
|
||||||
description: ''
|
|
||||||
contact:
|
|
||||||
- Vaclav Kadlcik <vkadlcik@redhat.com>
|
|
||||||
component:
|
|
||||||
- make
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- make
|
|
||||||
- gcc
|
|
||||||
duration: 5m
|
|
||||||
extra-summary: /tools/make/Sanity/smoke-check-make-runs
|
|
||||||
extra-task: /tools/make/Sanity/smoke-check-make-runs
|
|
|
@ -26,6 +26,7 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
# Include Beaker environment
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh || exit 1
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
MAKE="$(which --skip-alias make)"
|
MAKE="$(which --skip-alias make)"
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
# Tests to run against Docker and Classic mode
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
- container
|
||||||
|
tests:
|
||||||
|
- GNU-make-utility-v-3-82-shipped-with-el7-breaks
|
||||||
|
- order-only
|
||||||
|
- Use-after-free-when-eval-in-variable
|
||||||
|
- make-3-79-has-a-parsing-bug
|
||||||
|
- smoke-check-make-runs
|
||||||
|
required_packages:
|
||||||
|
- make
|
||||||
|
- coreutils
|
||||||
|
- diffutils
|
||||||
|
- sed
|
||||||
|
- gcc
|
||||||
|
- which
|
||||||
|
|
||||||
|
# Tests to run against Atomic Host
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tags:
|
||||||
|
- atomic
|
||||||
|
tests:
|
||||||
|
- GNU-make-utility-v-3-82-shipped-with-el7-breaks
|
||||||
|
- order-only
|
||||||
|
- Use-after-free-when-eval-in-variable
|
||||||
|
- make-3-79-has-a-parsing-bug
|
Loading…
Reference in New Issue