Compare commits
33 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96d07b164c | ||
|
|
20bb1a840e | ||
|
|
73bc4f2166 | ||
|
|
4dae814361 | ||
|
|
d83cfd466f | ||
|
|
08afa5a30b | ||
|
|
067a9cbdac | ||
|
|
17cf2b8eab | ||
|
|
2368a74ed4 | ||
|
|
d50b04b4e6 | ||
|
|
dd185e287c | ||
|
|
baa17dc79e | ||
|
|
a3b0abe343 | ||
|
|
fabe45b9ac | ||
|
|
10f098be0e | ||
|
|
8201a40ccb | ||
|
|
64ffd40f85 | ||
|
|
186fec90ed | ||
|
|
c1826398d7 | ||
|
|
3aa0fcfae1 | ||
|
|
cea353fe0f | ||
|
|
3a488cc430 | ||
|
|
13a12cf58c | ||
|
|
832287ee0d | ||
|
|
419da203da | ||
|
|
25d8b8ae11 | ||
|
|
debaa68e48 | ||
|
|
d95f0a73a9 |
||
|
|
7811e6b368 |
||
|
|
f2c952cad2 | ||
|
|
dd93c18e8e | ||
|
|
905c8647c6 | ||
|
|
3e95385379 |
15 changed files with 561 additions and 80 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
18
.gitignore
vendored
18
.gitignore
vendored
|
|
@ -1,12 +1,6 @@
|
|||
bison-2.4.tar.bz2
|
||||
bison-2.4.1.tar.bz2
|
||||
bison-2.4.2.tar.bz2
|
||||
bison-2.4.3.tar.bz2
|
||||
bison-*/
|
||||
/bison-2.5.tar.bz2
|
||||
/bison-2.6.1.tar.xz
|
||||
/bison-2.6.4.tar.xz
|
||||
/bison-2.7.tar.xz
|
||||
/bison-3.0.2.tar.xz
|
||||
/bison-3.0.4.tar.xz
|
||||
/bison-3.0.5.tar.xz
|
||||
# Release tarballs.
|
||||
/bison-*.tar.[bgx]z*
|
||||
# Generated (source) RPMs.
|
||||
/*.rpm
|
||||
# Expanded source trees.
|
||||
/bison-*/
|
||||
|
|
|
|||
69
bison-3.8.2-gcc15-glibcxx-assertions.patch
Normal file
69
bison-3.8.2-gcc15-glibcxx-assertions.patch
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
https://bugs.gentoo.org/935754
|
||||
https://lists.gnu.org/archive/html/bison-patches/2024-07/msg00000.html
|
||||
|
||||
* data/skeletons/glr2.cc (yyundeleteLastStack): Recover
|
||||
yylookaheadNeeds stack entry also, to prevent desyncing the sizes
|
||||
of yystates and yylookaheadNeeds.
|
||||
(class glr_state_set): New field yylookaheadNeedLastDeleted,
|
||||
tracks lookahead need of last deleted state.
|
||||
(yymarkStackDeleted): Save yylookaheadNeeds also.
|
||||
---
|
||||
Hi!
|
||||
|
||||
GCC 15 has added bounds-checks to vector<bool> when assertions are
|
||||
enabled. This has caught a bug in Bison. See bug referenced above.
|
||||
|
||||
Now, WRT the fix: I am not sure of its correctness, but it appears to
|
||||
pass tests and everything seems to indicate that the presumption it is
|
||||
based on is correct. That presumption is that the two stacks mentioned
|
||||
above (yylookaheadNeeds and yystates) ought to be the same size. I
|
||||
inferred this because all other locations that alter the size of the two
|
||||
vectors appear to do so in lock-step.
|
||||
|
||||
TIA, have a lovely day.
|
||||
|
||||
data/skeletons/glr2.cc | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc
|
||||
index 970ccfdf..8b962d6f 100644
|
||||
--- a/data/skeletons/glr2.cc
|
||||
+++ b/data/skeletons/glr2.cc
|
||||
@@ -1080,7 +1080,10 @@ namespace
|
||||
{
|
||||
size_t k = yyk.uget ();
|
||||
if (yystates[k] != YY_NULLPTR)
|
||||
- yylastDeleted = yystates[k];
|
||||
+ {
|
||||
+ yylastDeleted = yystates[k];
|
||||
+ yylookaheadNeedLastDeleted = yylookaheadNeeds[k];
|
||||
+ }
|
||||
yystates[k] = YY_NULLPTR;
|
||||
}
|
||||
|
||||
@@ -1093,6 +1096,7 @@ namespace
|
||||
if (yylastDeleted == YY_NULLPTR || !yystates.empty ())
|
||||
return;
|
||||
yystates.push_back (yylastDeleted);
|
||||
+ yylookaheadNeeds.push_back (yylookaheadNeedLastDeleted);
|
||||
YYCDEBUG << "Restoring last deleted stack as stack #0.\n";
|
||||
clearLastDeleted ();
|
||||
}
|
||||
@@ -1102,6 +1106,7 @@ namespace
|
||||
void
|
||||
yyremoveDeletes ()
|
||||
{
|
||||
+ YYASSERT(yystates.size () == yylookaheadNeeds.size ());
|
||||
size_t newsize = yystates.size ();
|
||||
/* j is the number of live stacks we have seen. */
|
||||
for (size_t i = 0, j = 0; j < newsize; ++i)
|
||||
@@ -1160,6 +1165,7 @@ namespace
|
||||
|
||||
/** The last stack we invalidated. */
|
||||
glr_state* yylastDeleted;
|
||||
+ bool yylookaheadNeedLastDeleted;
|
||||
}; // class glr_state_set
|
||||
} // namespace
|
||||
|
||||
--
|
||||
2.45.2
|
||||
108
bison-license-check.sh
Executable file
108
bison-license-check.sh
Executable file
|
|
@ -0,0 +1,108 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Run this in a bison source tree basedir to quickly guess the licensing
|
||||
# status of various bison source files. e.g. when using
|
||||
# glibc-maintainer-scripts for package maintenance, this means running it in
|
||||
# the bison-patches directory.
|
||||
# We use this because for some reason, fossology is unable to grok bison
|
||||
# sources for a license analysis.
|
||||
|
||||
for f in $(find . -type f | grep -v '\.git/' | grep -v 'gnulib/'); do
|
||||
|
||||
if file $f | grep -q text; then # Hoping this is true iff the file is a text file
|
||||
|
||||
license="Unknown"
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "This.*file is free software; the Free Software Foundation" \
|
||||
| grep -C50 -i "unlimited permission to copy and/or distribute it" \
|
||||
| grep -C50 -i "with or without" \
|
||||
| grep -qi "modifications, as long as this notice is preserved"; then
|
||||
license="FSFULLR"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "This.*\(program\|file\) is free software" \
|
||||
| grep -C50 -i "GNU General Public License" \
|
||||
| grep -C50 -i "either version 2" \
|
||||
| grep -qi "any later version"; then
|
||||
license="GPL-2.0-or-later"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "This.*\(program\|file\) is free" \
|
||||
| grep -C50 -i "GNU General Public License" \
|
||||
| grep -C50 -i "either version 3" \
|
||||
| grep -qi "any later version"; then
|
||||
license="GPL-3.0-or-later"
|
||||
fi
|
||||
|
||||
# Order of check for v2 and v2.1 is important here;
|
||||
# "either version 2" will also match "either version 2.1"
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "This.*\(program\|file\) is free software" \
|
||||
| grep -C50 -i "GNU Lesser General Public License" \
|
||||
| grep -C50 -i "either version 2" \
|
||||
| grep -qi "any later version"; then
|
||||
license="LGPL-2.0-or-later"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "Th.* is free software" \
|
||||
| grep -C50 -i "GNU Lesser General Public" \
|
||||
| grep -C50 -i "License" \
|
||||
| grep -C50 -i "either" \
|
||||
| grep -C50 -i "version 2.1" \
|
||||
| grep -qi "any later version"; then
|
||||
license="LGPL-2.1-or-later"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "This.*\(program\|file\) is free software" \
|
||||
| grep -C50 -i "GNU Lesser General Public License" \
|
||||
| grep -C50 -i "either version 3" \
|
||||
| grep -qi "any later version"; then
|
||||
license="LGPL-3.0-or-later"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "Permission is granted" \
|
||||
| grep -C50 -i "copy, distribute.*modify" \
|
||||
| grep -C50 -i "GNU Free Documentation License" \
|
||||
| grep -C50 -i "Version 1.3" \
|
||||
| grep -qi "any later version"; then
|
||||
license="GFDL-1.3-or-later"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "Permission is hereby granted, free of charge" \
|
||||
| grep -C50 -i "to any person" \
|
||||
| grep -C50 -i "the Software without restriction" \
|
||||
| grep -C50 -i "use, copy, modify, merge, publish, distribute, sublicense" \
|
||||
| grep -qi "X Consortium"; then
|
||||
license="X11"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -C50 -i "This file is distributed under the same license as" \
|
||||
| grep -qi "package"; then
|
||||
license="Same-as-package-license"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -A20 -i "as .*exception" \
|
||||
| grep -qi "2\.2 of bison"; then
|
||||
license="$license WITH Bison-exception-2.2"
|
||||
fi
|
||||
|
||||
if head -n50 $f \
|
||||
| grep -A20 -i "as .*exception" \
|
||||
| grep -A20 -i "distribute" \
|
||||
| grep -A20 -i "generated by autoconf" \
|
||||
| grep -qi "same distribution terms"; then
|
||||
license="$license WITH Autoconf-exception-generic-3.0"
|
||||
fi
|
||||
|
||||
echo $license "("$f")"
|
||||
fi;
|
||||
done | sort
|
||||
129
bison.spec
129
bison.spec
|
|
@ -1,20 +1,31 @@
|
|||
Summary: A GNU general-purpose parser generator
|
||||
Name: bison
|
||||
Version: 3.0.5
|
||||
Release: 2%{?dist}
|
||||
License: GPLv3+
|
||||
Source: ftp://ftp.gnu.org/pub/gnu/bison/bison-%{version}.tar.xz
|
||||
Version: 3.8.2
|
||||
Release: 11%{?dist}
|
||||
|
||||
# Fix errors caused by references to obsolete libio.h
|
||||
Patch0: bison-3.0.5-gnulib-fseterr.patch
|
||||
# An SPDX license string check done against bison-3.8.2 found strings
|
||||
# corresponding to the following licenses across the bison source tree:
|
||||
License: GPL-3.0-or-later AND GPL-3.0-or-later WITH Autoconf-exception-generic-3.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-2.0-or-later AND GPL-2.0-or-later WITH Autoconf-exception-generic AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later AND FSFULLR AND GFDL-1.3-or-later AND X11
|
||||
|
||||
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
|
||||
# genereted from https://ftp.gnu.org/gnu/gnu-keyring.gpg via:
|
||||
# curl https://ftp.gnu.org/gnu/gnu-keyring.gpg | gpg2 --import
|
||||
# gpg2 --export --export-options export-minimal 7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E > gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg
|
||||
Source2: gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg
|
||||
|
||||
# from Gentoo sys-devel/bison
|
||||
Patch0: bison-3.8.2-gcc15-glibcxx-assertions.patch
|
||||
|
||||
# testsuite dependency
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: flex
|
||||
BuildRequires: gnupg2
|
||||
|
||||
URL: http://www.gnu.org/software/bison/
|
||||
URL: http://www.gnu.org/software/%{name}/
|
||||
BuildRequires: m4 >= 1.4
|
||||
BuildRequires: make
|
||||
#java-1.7.0-openjdk-devel
|
||||
Requires: m4 >= 1.4
|
||||
|
||||
|
|
@ -71,37 +82,35 @@ these files are available. See the Internationalization in the
|
|||
Bison manual section for more information.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%configure
|
||||
make
|
||||
%make_build
|
||||
|
||||
%check
|
||||
make check
|
||||
#make maintainer-check
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
%makeinstall
|
||||
%make_install
|
||||
|
||||
# Remove unpackaged files.
|
||||
rm -f $RPM_BUILD_ROOT/%{_bindir}/yacc
|
||||
rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
|
||||
rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/yacc*
|
||||
rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/calc++/*
|
||||
rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/mfcalc/*
|
||||
rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/rpcalc/*
|
||||
rm -f %{buildroot}/%{_bindir}/yacc
|
||||
rm -f %{buildroot}/%{_infodir}/dir
|
||||
rm -f %{buildroot}/%{_mandir}/man1/yacc*
|
||||
rm -rf %{buildroot}/%{_docdir}/%{name}/examples/*
|
||||
|
||||
%find_lang %{name}
|
||||
%find_lang %{name}-runtime
|
||||
%find_lang %{name}-gnulib
|
||||
|
||||
gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info*
|
||||
|
||||
# The distribution contains also source files. These are used by m4
|
||||
# when the target parser file is generated.
|
||||
%files -f %{name}.lang
|
||||
%files -f %{name}.lang -f %{name}-gnulib.lang
|
||||
%doc AUTHORS ChangeLog NEWS README THANKS TODO COPYING
|
||||
%{_mandir}/*/bison*
|
||||
%{_datadir}/bison
|
||||
|
|
@ -118,6 +127,88 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info*
|
|||
%{_libdir}/liby.a
|
||||
|
||||
%changelog
|
||||
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Sep 1 2023 Arjun Shankar <arjun@redhat.com> - 3.8.2-6
|
||||
- Analyse bison sources for license information
|
||||
- Migrate License field to SPDX identifiers for
|
||||
https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2
|
||||
(#2222079)
|
||||
|
||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Mon Dec 13 2021 Arjun Shankar <arjun@redhat.com> - 3.8.2-1
|
||||
- Update to bison 3.8.2 (#2002074)
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.7.6-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue May 18 2021 Arjun Shankar <arjun@redhat.com> - 3.7.6-2
|
||||
- Rebuild with binutils-2.36.1-12.fc35
|
||||
|
||||
* Tue Mar 16 2021 Arjun Shankar <arjun@redhat.com> - 3.7.6-1
|
||||
- Update to bison 3.7.6 (#1920078)
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.7.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Mon Jan 11 2021 Arjun Shankar <arjun@redhat.com> - 3.7.4-1
|
||||
- Update to bison 3.7.4 (#1897780)
|
||||
|
||||
* Tue Nov 10 2020 Arjun Shankar <arjun@redhat.com> - 3.7.3-1
|
||||
- Update to bison 3.7.3 (#1887766)
|
||||
|
||||
* Tue Sep 8 2020 Arjun Shankar <arjun@redhat.com> - 3.7.2-1
|
||||
- Update to bison 3.7.2 (#1876120)
|
||||
|
||||
* Thu Aug 27 2020 Arjun Shankar <arjun@redhat.com> - 3.7.1-1
|
||||
- Update to bison 3.7.1 (#1859887)
|
||||
|
||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.4-3
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Fri Jul 10 2020 Dan Čermák <dan.cermak@cgc-instruments.com> - 3.6.4-1
|
||||
- Update to bison 3.6.4 (#1792738, #1847608)
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.5-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Tue Jan 7 2020 Arjun Shankar <arjun@redhat.com> - 3.5-1
|
||||
- Update to bison 3.5 (#1751843)
|
||||
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Fri Jun 21 2019 Arjun Shankar <arjun@redhat.com> - 3.4.1-1
|
||||
- Update to bison 3.4.1 (#1631912)
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.5-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
19
gating.yaml
Normal file
19
gating.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
--- !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}
|
||||
BIN
gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg
Normal file
BIN
gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg
Normal file
Binary file not shown.
5
plans/ci.fmf
Normal file
5
plans/ci.fmf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
summary: CI Gating Plan
|
||||
discover:
|
||||
how: fmf
|
||||
execute:
|
||||
how: tmt
|
||||
3
sources
3
sources
|
|
@ -1 +1,2 @@
|
|||
SHA512 (bison-3.0.5.tar.xz) = 00b448db8abe91b07e32ff5273c6617bc1350d806f92073a9472f4c2f0de5d22c152795674171b74f2eb9eff8d36f8173b82dacb215601bb071ae39404d4a8a2
|
||||
SHA512 (bison-3.8.2.tar.xz) = d4d23af6671406e97257892f90651b67f2ab95219831372be032190b7156c10a3435d457857e677445df8b2327aacccc15344acbbc3808a6f332a93cce23b444
|
||||
SHA512 (bison-3.8.2.tar.xz.sig) = 8bb7743ca326e81a6c091b1413e3c09bd43c7eabbb80bac0638ccd52bdf7e3395cce300a86acd95f4637a9ec8a1b0e9a4d3d25d95ab0a8f03e57fd82eb87a7ac
|
||||
|
|
|
|||
63
tests/Sanity/basic-test/Makefile
Normal file
63
tests/Sanity/basic-test/Makefile
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Makefile of /tools/bison/Sanity/basic-test
|
||||
# Description: bison basic test
|
||||
# Author: Edjunior Machado <emachado@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2021 Red Hat, Inc.
|
||||
#
|
||||
# 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 the Free Software Foundation, either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
export TEST=/tools/bison/Sanity/basic-test
|
||||
export TESTVERSION=1.0
|
||||
|
||||
BUILT_FILES=
|
||||
|
||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE calc.y
|
||||
|
||||
.PHONY: all install download clean
|
||||
|
||||
run: $(FILES) build
|
||||
./runtest.sh
|
||||
|
||||
build: $(BUILT_FILES)
|
||||
test -x runtest.sh || chmod a+x runtest.sh
|
||||
|
||||
clean:
|
||||
rm -f *~ $(BUILT_FILES)
|
||||
|
||||
|
||||
include /usr/share/rhts/lib/rhts-make.include
|
||||
|
||||
$(METADATA): Makefile
|
||||
@echo "Owner: Edjunior Machado <emachado@redhat.com>" > $(METADATA)
|
||||
@echo "Name: $(TEST)" >> $(METADATA)
|
||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||
@echo "Description: bison basic test" >> $(METADATA)
|
||||
@echo "Type: Sanity" >> $(METADATA)
|
||||
@echo "TestTime: 1h" >> $(METADATA)
|
||||
@echo "RunFor: bison" >> $(METADATA)
|
||||
@echo "Requires: bison gcc" >> $(METADATA)
|
||||
@echo "Priority: Normal" >> $(METADATA)
|
||||
@echo "License: GPLv2+" >> $(METADATA)
|
||||
@echo "Confidential: no" >> $(METADATA)
|
||||
@echo "Destructive: no" >> $(METADATA)
|
||||
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6" >> $(METADATA)
|
||||
|
||||
rhts-lint $(METADATA)
|
||||
3
tests/Sanity/basic-test/PURPOSE
Normal file
3
tests/Sanity/basic-test/PURPOSE
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
PURPOSE of /tools/bison/Sanity/basic-test
|
||||
Description: bison basic test
|
||||
Author: Edjunior Machado <emachado@redhat.com>
|
||||
100
tests/Sanity/basic-test/calc.y
Normal file
100
tests/Sanity/basic-test/calc.y
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
%code top {
|
||||
#include <assert.h>
|
||||
#include <ctype.h> /* isdigit. */
|
||||
#include <stdio.h> /* printf. */
|
||||
#include <stdlib.h> /* abort. */
|
||||
#include <string.h> /* strcmp. */
|
||||
|
||||
int yylex (void);
|
||||
void yyerror (char const *);
|
||||
}
|
||||
|
||||
/* Generate YYSTYPE from the types used in %token and %type. */
|
||||
%define api.value.type union
|
||||
%token <double> NUM "number"
|
||||
%type <double> expr term fact
|
||||
|
||||
/* Generate the parser description file (calc.output). */
|
||||
%verbose
|
||||
|
||||
/* Nice error messages with details. */
|
||||
%define parse.error verbose
|
||||
|
||||
/* Enable run-time traces (yydebug). */
|
||||
%define parse.trace
|
||||
|
||||
/* Formatting semantic values in debug traces. */
|
||||
%printer { fprintf (yyo, "%g", $$); } <double>;
|
||||
|
||||
%% /* The grammar follows. */
|
||||
input:
|
||||
%empty
|
||||
| input line
|
||||
;
|
||||
|
||||
line:
|
||||
'\n'
|
||||
| expr '\n' { printf ("%.10g\n", $1); }
|
||||
| error '\n' { yyerrok; }
|
||||
;
|
||||
|
||||
expr:
|
||||
expr '+' term { $$ = $1 + $3; }
|
||||
| expr '-' term { $$ = $1 - $3; }
|
||||
| term
|
||||
;
|
||||
|
||||
term:
|
||||
term '*' fact { $$ = $1 * $3; }
|
||||
| term '/' fact { $$ = $1 / $3; }
|
||||
| fact
|
||||
;
|
||||
|
||||
fact:
|
||||
"number"
|
||||
| '(' expr ')' { $$ = $2; }
|
||||
;
|
||||
|
||||
%%
|
||||
|
||||
int
|
||||
yylex (void)
|
||||
{
|
||||
int c;
|
||||
|
||||
/* Ignore white space, get first nonwhite character. */
|
||||
while ((c = getchar ()) == ' ' || c == '\t')
|
||||
continue;
|
||||
|
||||
if (c == EOF)
|
||||
return 0;
|
||||
|
||||
/* Char starts a number => parse the number. */
|
||||
if (c == '.' || isdigit (c))
|
||||
{
|
||||
ungetc (c, stdin);
|
||||
if (scanf ("%lf", &yylval.NUM) != 1)
|
||||
abort ();
|
||||
return NUM;
|
||||
}
|
||||
|
||||
/* Any other character is a token by itself. */
|
||||
return c;
|
||||
}
|
||||
|
||||
/* Called by yyparse on error. */
|
||||
void
|
||||
yyerror (char const *s)
|
||||
{
|
||||
fprintf (stderr, "%s\n", s);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char const* argv[])
|
||||
{
|
||||
/* Enable parse traces on option -p. */
|
||||
for (int i = 1; i < argc; ++i)
|
||||
if (!strcmp (argv[i], "-p"))
|
||||
yydebug = 1;
|
||||
return yyparse ();
|
||||
}
|
||||
14
tests/Sanity/basic-test/main.fmf
Normal file
14
tests/Sanity/basic-test/main.fmf
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
summary: bison basic test
|
||||
description: ''
|
||||
contact:
|
||||
- Edjunior Machado <emachado@redhat.com>
|
||||
component:
|
||||
- bison
|
||||
test: ./runtest.sh
|
||||
framework: beakerlib
|
||||
recommend:
|
||||
- bison
|
||||
- gcc
|
||||
duration: 1h
|
||||
extra-summary: /tools/bison/Sanity/basic-test
|
||||
extra-task: /tools/bison/Sanity/basic-test
|
||||
61
tests/Sanity/basic-test/runtest.sh
Executable file
61
tests/Sanity/basic-test/runtest.sh
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
#!/bin/bash
|
||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# runtest.sh of /tools/bison/Sanity/basic-test
|
||||
# Description: bison basic test
|
||||
# Author: Edjunior Machado <emachado@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2021 Red Hat, Inc.
|
||||
#
|
||||
# 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 the Free Software Foundation, either version 2 of
|
||||
# the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# Include Beaker environment
|
||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
PACKAGE="bison"
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlAssertRpm $PACKAGE
|
||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||
rlRun "cp calc.y $TmpDir"
|
||||
rlRun "pushd $TmpDir"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
# calc.y from http://git.savannah.gnu.org/cgit/bison.git/tree/examples/c/calc?h=v3.7.5
|
||||
rlRun -c "bison --defines --xml --graph=calc.gv -o calc.c calc.y"
|
||||
|
||||
rlAssertExists "calc.c"
|
||||
rlAssertGrep "int yylex (void);" calc.c
|
||||
rlAssertExists "calc.h"
|
||||
rlAssertGrep "int yyparse (void);" calc.h
|
||||
|
||||
rlRun -c "gcc -std=c99 -o calc calc.c"
|
||||
rlAssertExists "calc"
|
||||
|
||||
rlAssertEquals "Testing if './calc <<< 1+2*3' is equal '7'" $(./calc <<< 1+2*3) 7
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "popd"
|
||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.1 (GNU/Linux)
|
||||
|
||||
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
|
||||
=rfoO
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
Loading…
Add table
Add a link
Reference in a new issue