RHEL 9.0.0 Alpha bootstrap

The content of this branch was automatically imported from Fedora ELN
with the following as its source:
https://src.fedoraproject.org/rpms/sed#1c4b830a2cbc4a6c918202b7373d58205b70494d
This commit is contained in:
Troy Dawson 2020-10-15 09:26:51 -07:00
parent f2c11df633
commit abf49f22b0
33 changed files with 5926 additions and 0 deletions

6
.gitignore vendored
View File

@ -0,0 +1,6 @@
sed-4.2.1.tar.bz2
/sed-4.2.2.tar.bz2
/sed-4.3.tar.xz
/sed-4.4.tar.xz
/sed-4.5.tar.xz
/sed-4.8.tar.xz

11
STAGE1-sed Normal file
View File

@ -0,0 +1,11 @@
srpm $1
mcd $BUILDDIR/$1
$SRC/${1}-*/configure $TCONFIGARGS
notparallel
# Touch sed.1 so that it will not be built.
# The makefile in the sed/doc directory attempts to run the
# built sed binary in order to extract the --help output, but
# this fails because the sed binary is a cross-tool.
touch doc/sed.1
make $J V=1
make $J install DESTDIR=${ROOTFS}

29
sed-b-flag.patch Normal file
View File

@ -0,0 +1,29 @@
From 613057152c4f6caba22a15ed2ff0aeb9c4ce6a83 Mon Sep 17 00:00:00 2001
From: Jakub Martisko <jamartis@redhat.com>
Date: Wed, 5 Feb 2020 15:50:15 +0100
Subject: [PATCH] enable the -b option on all platforms
---
sed/sed.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sed/sed.c b/sed/sed.c
index f75e4b6..1ca5839 100644
--- a/sed/sed.c
+++ b/sed/sed.c
@@ -174,7 +174,12 @@ Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n\
fprintf (out, _(" -b, --binary\n\
open files in binary mode (CR+LFs are not" \
" processed specially)\n"));
+#else
+ fprintf (out, _(" -b, --binary\n\
+ does nothing; for compatibility with WIN32/CYGWIN/MSDOS/EMX \n\
+ (open files in binary mode; CR+LF are not processed specially)\n" ));
#endif
+
fprintf (out, _(" -l N, --line-length=N\n\
specify the desired line-wrap length for the `l' command\n"));
fprintf (out, _(" --posix\n\
--
2.24.1

247
sed-c-flag.patch Normal file
View File

@ -0,0 +1,247 @@
From f336bde91e3fd9c3c2960aa548b8917eb1216678 Mon Sep 17 00:00:00 2001
From: Jakub Martisko <jamartis@redhat.com>
Date: Thu, 6 Feb 2020 15:26:33 +0100
Subject: [PATCH] -c flag
---
sed/execute.c | 18 +++++++++--
sed/sed.c | 20 +++++++++++-
sed/sed.h | 4 +++
sed/utils.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++
sed/utils.h | 2 ++
5 files changed, 127 insertions(+), 3 deletions(-)
diff --git a/sed/execute.c b/sed/execute.c
index c5f07cc..4e5f5b3 100644
--- a/sed/execute.c
+++ b/sed/execute.c
@@ -670,11 +670,25 @@ closedown (struct input *input)
if (strcmp (in_place_extension, "*") != 0)
{
char *backup_file_name = get_backup_file_name (target_name);
- ck_rename (target_name, backup_file_name, input->out_file_name);
+ if (copy_instead_of_rename)
+ {
+ ck_fccopy (target_name, backup_file_name, input->out_file_name);
+ }
+ else
+ {
+ ck_rename (target_name, backup_file_name, input->out_file_name);
+ }
free (backup_file_name);
}
- ck_rename (input->out_file_name, target_name, input->out_file_name);
+ if (copy_instead_of_rename)
+ {
+ ck_fcmove (input->out_file_name, target_name, input->out_file_name);
+ }
+ else
+ {
+ ck_rename (input->out_file_name, target_name, input->out_file_name);
+ }
cancel_cleanup ();
free (input->out_file_name);
}
diff --git a/sed/sed.c b/sed/sed.c
index 1ca5839..745159e 100644
--- a/sed/sed.c
+++ b/sed/sed.c
@@ -67,6 +67,10 @@ bool debug = false;
/* How do we edit files in-place? (we don't if NULL) */
char *in_place_extension = NULL;
+/* Do we use copy or rename when in in-place edit mode? (boolean
+ + value, non-zero for copy, zero for rename).*/
+int copy_instead_of_rename = 0;
+
/* The mode to use to read/write files, either "r"/"w" or "rb"/"wb". */
char const *read_mode = "r";
char const *write_mode = "w";
@@ -170,6 +174,10 @@ Usage: %s [OPTION]... {script-only-if-no-other-script} [input-file]...\n\
#endif
fprintf (out, _(" -i[SUFFIX], --in-place[=SUFFIX]\n\
edit files in place (makes backup if SUFFIX supplied)\n"));
+
+ fprintf(out, _(" -c, --copy\n\
+ use copy instead of rename when shuffling files in -i mode\n"));
+
#if O_BINARY
fprintf (out, _(" -b, --binary\n\
open files in binary mode (CR+LFs are not" \
@@ -214,7 +222,7 @@ specified, then the standard input is read.\n\
int
main (int argc, char **argv)
{
-#define SHORTOPTS "bsnrzuEe:f:l:i::V:"
+#define SHORTOPTS "bcsnrzuEe:f:l:i::V:"
enum { SANDBOX_OPTION = CHAR_MAX+1,
DEBUG_OPTION
@@ -228,6 +236,7 @@ main (int argc, char **argv)
{"file", 1, NULL, 'f'},
{"in-place", 2, NULL, 'i'},
{"line-length", 1, NULL, 'l'},
+ {"copy", 0, NULL, 'c'},
{"null-data", 0, NULL, 'z'},
{"zero-terminated", 0, NULL, 'z'},
{"quiet", 0, NULL, 'n'},
@@ -306,6 +315,10 @@ main (int argc, char **argv)
follow_symlinks = true;
break;
+ case 'c':
+ copy_instead_of_rename = true;
+ break;
+
case 'i':
separate_files = true;
IF_LINT (free (in_place_extension));
@@ -376,6 +389,11 @@ main (int argc, char **argv)
}
}
+ if (copy_instead_of_rename && in_place_extension == NULL)
+ {
+ fprintf (stderr, _("Error: -c used without -i.\n"));
+ usage(4);
+ }
if (!the_program)
{
if (optind < argc)
diff --git a/sed/sed.h b/sed/sed.h
index 1c8e83a..0859e72 100644
--- a/sed/sed.h
+++ b/sed/sed.h
@@ -236,6 +236,10 @@ extern countT lcmd_out_line_len;
/* How do we edit files in-place? (we don't if NULL) */
extern char *in_place_extension;
+/* Do we use copy or rename when in in-place edit mode? (boolean
+ value, non-zero for copy, zero for rename).*/
+extern int copy_instead_of_rename;
+
/* The mode to use to read and write files, either "rt"/"w" or "rb"/"wb". */
extern char const *read_mode;
extern char const *write_mode;
diff --git a/sed/utils.c b/sed/utils.c
index 9576dd1..371d5a9 100644
--- a/sed/utils.c
+++ b/sed/utils.c
@@ -25,6 +25,7 @@
#include <sys/stat.h>
#include <unistd.h>
#include <limits.h>
+#include <fcntl.h>
#include "binary-io.h"
#include "unlocked-io.h"
@@ -400,7 +401,92 @@ ck_rename (const char *from, const char *to, const char *unlink_if_fail)
panic (_("cannot rename %s: %s"), from, strerror (errno));
}
+/* Downstream -c related functions */
+/* Panic on failing unlink */
+void
+ck_unlink (const char *name)
+{
+ if (unlink (name) == -1)
+ panic (_("cannot remove %s: %s"), name, strerror (errno));
+}
+
+/* Attempt to unlink denoted file if operation rd failed. */
+static int
+_unlink_if_fail (int rd,const char * unlink_if_fail)
+{
+ if (rd == -1 && unlink_if_fail)
+ {
+ int save_errno = errno;
+ ck_unlink (unlink_if_fail);
+ errno = save_errno;
+ }
+
+ return rd != -1;
+}
+
+/* Copy contents between files. */
+static int
+_copy (from, to)
+ const char *from, *to;
+{
+ static char buf[4096];
+
+ FILE *infile, *outfile;
+ int c, retval = 0;
+ errno = 0;
+
+ infile = fopen (from, "r");
+ if (infile == NULL)
+ return -1;
+
+ outfile = fopen (to, "w");
+ if (outfile == NULL)
+ {
+ fclose (infile);
+ return -1;
+ }
+
+ while (1)
+ {
+ size_t bytes_in = fread (buf, 1, sizeof (buf), infile);
+ size_t bytes_out;
+ if (bytes_in == 0)
+ {
+ if (ferror (infile))
+ retval = -1;
+ break;
+ }
+
+ bytes_out = fwrite (buf, 1, bytes_in, outfile);
+ if (bytes_out != bytes_in)
+ {
+ retval = -1;
+ break;
+ }
+ }
+
+ fclose (outfile);
+ fclose (infile);
+
+ return retval;
+}
+
+/* Attempt to copy file contents between the files. */
+void
+ck_fccopy (const char *from,const char *to, const char *unlink_if_fail)
+{
+ if (!_unlink_if_fail (_copy (from, to), unlink_if_fail))
+ panic (_("cannot copy %s to %s: %s"), from, to, strerror (errno));
+ }
+
+/* Copy contents between files, and then unlink the source. */
+void
+ck_fcmove (const char *from, const char *to,const char *unlink_if_fail)
+{
+ ck_fccopy (from, to, unlink_if_fail);
+ ck_unlink (from);
+}
/* Implement a variable sized buffer of `stuff'. We don't know what it is,
diff --git a/sed/utils.h b/sed/utils.h
index 47a029e..0aba107 100644
--- a/sed/utils.h
+++ b/sed/utils.h
@@ -40,6 +40,8 @@ size_t ck_getdelim (char **text, size_t *buflen, char buffer_delimiter,
FILE * ck_mkstemp (char **p_filename, const char *tmpdir, const char *base,
const char *mode) _GL_ARG_NONNULL ((1, 2, 3, 4));
void ck_rename (const char *from, const char *to, const char *unlink_if_fail);
+void ck_fccopy (const char *from, const char *to, const char *unlink_if_fail);
+void ck_fcmove (const char *from, const char *to, const char *unlink_if_fail);
void *ck_malloc (size_t size);
void *ck_realloc (void *ptr, size_t size);
--
2.24.1

405
sed.spec Normal file
View File

@ -0,0 +1,405 @@
# -*- coding: utf-8 -*-
Summary: A GNU stream text editor
Name: sed
Version: 4.8
Release: 6%{?dist}
License: GPLv3+
URL: http://sed.sourceforge.net/
Source0: ftp://ftp.gnu.org/pub/gnu/sed/sed-%{version}.tar.xz
Source1: http://sed.sourceforge.net/sedfaq.txt
Patch0: sed-b-flag.patch
Patch1: sed-c-flag.patch
BuildRequires: glibc-devel, libselinux-devel, libacl-devel, automake, autoconf, gcc
BuildRequires: perl-Getopt-Long
BuildRequires: perl(FileHandle)
Provides: /bin/sed
#copylib
Provides: bundled(gnulib)
%description
The sed (Stream EDitor) editor is a stream or batch (non-interactive)
editor. Sed takes text as input, performs an operation or set of
operations on the text and outputs the modified text. The operations
that sed performs (substitutions, deletions, insertions, etc.) can be
specified in a script file or from the command line.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
sed -e 's/1729576/EPERM/' \
-i gnulib-tests/test-{strerror_r,perror2}.c
%build
%configure --without-included-regex
%make_build
install -m 644 -p %{SOURCE1} sedfaq.txt
gzip -9 sedfaq.txt
%check
echo ====================TESTING=========================
make check
echo ====================TESTING END=====================
%install
rm -rf ${RPM_BUILD_ROOT}
%make_install
rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
%find_lang %{name}
%files -f %{name}.lang
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc BUGS NEWS THANKS README AUTHORS sedfaq.txt.gz
%{_bindir}/sed
%{_infodir}/sed.info*
%{_mandir}/man1/sed.1*
%changelog
* Mon Aug 17 2020 Jakub Martisko <jamartis@redhat.com> - 4.8-6
- Minor spec cleanup
* Mon Aug 03 2020 Jakub Martisko <jamartis@redhat.com> - 4.8-5
- Use make macros
* Mon Aug 03 2020 Jakub Martisko <jamartis@redhat.com> - 4.8-4
- Replace some hardcoded constants in the gnulib-testsuite
... that caused build failures on arm7
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.8-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Feb 11 2020 Jakub Martisko <jamartis@redhat.com> - 4.8-1
- Rebase to 4.8
- Refresh the downstream patch and split it into two
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Apr 03 2018 Jakub Martisko <jamartis@redhat.com> - 4.5-1
- Rebase to 4.5
- Drop patches from 4.4-4 and 4.4-7
* Thu Mar 08 2018 Jakub Martisko <jamartis@redhat.com> - 4.4-7
- Fix build failure with glibc-2.28
* Thu Mar 08 2018 Jakub Martisko <jamartis@redhat.com> - 4.4-6
- Add gcc to BuildRequires
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jan 11 2018 Jakub Martisko <jamartis@redhat.com> - 4.4-4
- When editing file inplace, the SELinux context should
be based on the link instead of the target file itself.
--follow-symlinks option remains unchanged
- Resolves: #1401442
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Feb 09 2017 Jakub Martisko <jamartis@redhat.com> - 4.4-1
- new version 4.4
- removed COPYING.DOC license which is no longer in upstream
- Resolves: #1410093
* Wed Jan 04 2017 Jakub Martisko <jamartis@redhat.com> - 4.3-1
- new version 4.3
- Resolves: #1410093
* Tue Feb 09 2016 Petr Stodulka <pstodulk@redhat.com> - 4.2.2-15
- provides /bin/sed
* Tue Feb 09 2016 Petr Stodulka <pstodulk@redhat.com> - 4.2.2-14
- remove meaningless redefinition of _bindir - it's standard macro now;
sed will be store in /usr/bin/sed
Resovles: #1305835
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.2.2-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Sat Dec 26 2015 Petr Stodulka <pstodulk@redhat.com> - 4.2.2-12
- use global instead of define in spec file
- added new build dependency on perl-Getopt-Long
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.2-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 4.2.2-10
- Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Mon Aug 4 2014 Tom Callaway <spot@fedoraproject.org> - 4.2.2-8
- fix license handling
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Feb 10 2014 Jan Pacner <jpacner@redhat.com> - 4.2.2-6
- Resolves: #1061367 (Dropping -b option breaks cross-platform compat.)
- Related: #948598 (Man page scan results for sed)
- introduce -c argument, add help for -b --binary arguments,
cleanup arguments & help)
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue May 07 2013 Fridolin Pokorny <fpokorny@redhat.com> - 4.2.2-4
- Added libacl-devel to BuildRequires for ACL support rhbz#959432
* Fri May 03 2013 Fridolin Pokorny <fpokorny@redhat.com> - 4.2.2-3
- Fixed option handling rhbz#948598
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Fri Jan 04 2013 Martin Briza <mbriza@redhat.com> - 4.2.2-1
- New release
- Dropping included patches: sed-4.2.1-data-loss.patch sed-4.2.1-fix-0x26-on-RHS.patch sed-4.2.1-makecheck.patch
- Dropping unused patch sed-4.2.1-dummyparam.diff
- Regenerated sed-4.2.{1,2}-copy.patch
- Minor change to patching (creating backup files)
* Tue Jul 10 2012 Martin Briza <mbriza@redhat.com> - 4.2.1-10
- Fixed the readded -c option
Resolves: #832855
* Wed Jun 13 2012 Martin Briza <mbriza@redhat.com> - 4.2.1-9
- Backported commit from upstream to fix treating "x26" as "&" character
- Added virtual provide for gnulib according to http://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries
Resolves: #812067 #821776
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Jul 12 2011 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 4.2.1-7
- avoid silent data loss when an input line is 2^31 bytes or longer
Resolves: #720438
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Mar 17 2010 Jan Görig <jgorig@redhat.com> 4.2.1-5
- fixed make check on non UTF-8 locale - upstream patch rhbz#550731
- readded -c option (thanks Paolo Bonzini) rhbz#566455
- removed previous -c dummy patch
- changed license to GPLv3+
* Fri Oct 16 2009 Jiri Moskovcak <jmoskovc@redhat.com> 4.2.1-4
- added libselinux-devel to buildrequires rhbz#514182
- fixed problem with --excludedocs rhbz#515913
* Tue Aug 11 2009 Ville Skyttä <ville.skytta@iki.fi> - 4.2.1-3
- Use bzipped upstream tarball.
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.2.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon Jun 29 2009 Jiri Moskovcak <jmoskovc@redhat.com> - 4.2.1-1
- new version
- obsoletes previous patches
- added patch to maintain backwards compatibility for scripts using -c/--copy
- Resolves: #502934
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1.5-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Thu Nov 13 2008 Jiri Moskovcak <jmoskovc@redhat.com> 4.1.5-11
- improved follow.patch (thanks to Arkadiusz Miskiewicz for initial patch)
- Resolves: #470912
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 4.1.5-10
- Autorebuild for GCC 4.3
* Thu Oct 4 2007 Petr Machata <pmachata@redhat.com> - 4.1.5-9
- Fix licensing tag.
- Clean up per merge review comments.
- Resolves: #226404
* Wed Feb 7 2007 Petr Machata <pmachata@redhat.com> - 4.1.5-8
- tidy up the specfile per rpmlint comments
- use utf-8 and fix national characters in contributor's names
* Thu Jan 25 2007 Petr Machata <pmachata@redhat.com> - 4.1.5-7
- Ville Skyttä: patch for non-failing %%post, %%preun
- Resolves: #223716
* Fri Dec 8 2006 Petr Machata <pmachata@redhat.com> - 4.1.5-6
- Split confused patches "copy+symlink" and "relsymlink" into discrete
"copy" and "symlink".
* Mon Sep 4 2006 Petr Machata <pmachata@redhat.com> - 4.1.5-5
- Fix handling of relative symlinks (#205122)
* Thu Aug 3 2006 Petr Machata <pmachata@redhat.com> - 4.1.5-4
- remove superfluous multibyte processing in str_append for UTF-8
encoding (thanks Paolo Bonzini, #177246)
* Mon Jul 17 2006 Petr Machata <pmachata@redhat.com> - 4.1.5-3
- use dist tag
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 4.1.5-2.2.1
- rebuild
* Thu Jun 29 2006 Petr Machata <pmachata@redhat.com> - 4.1.5-2.2
- typo in patch name
* Thu Jun 29 2006 Petr Machata <pmachata@redhat.com> - 4.1.5-2.1
- rebuild
* Thu Jun 29 2006 Petr Machata <pmachata@redhat.com> - 4.1.5-2
- #185374:
- Follow symlinks before rename (avoid symlink overwrite)
- Add -c flag for copy instead of rename (avoid ownership change)
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 4.1.5-1.2
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 4.1.5-1.1
- rebuilt for new gcc4.1 snapshot and glibc changes
* Mon Feb 06 2006 Florian La Roche <laroche@redhat.com>
- 4.1.5
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt
* Thu Mar 17 2005 Jakub Jelinek <jakub@redhat.com> 4.1.4-1
- update to 4.1.4
* Sat Mar 5 2005 Jakub Jelinek <jakub@redhat.com> 4.1.2-5
- rebuilt with GCC 4
* Fri Oct 8 2004 Jakub Jelinek <jakub@redhat.com> 4.1.2-4
- fix up make check to run sed --version with LC_ALL=C
in the environment (#129014)
* Sat Oct 2 2004 Jakub Jelinek <jakub@redhat.com> 4.1.2-3
- add sedfaq.txt to %%{_docdir} (#16202)
* Mon Aug 23 2004 Florian La Roche <Florian.LaRoche@redhat.de>
- update to 4.1.2
* Thu Jul 8 2004 Jakub Jelinek <jakub@redhat.com> 4.1.1-1
- update to 4.1.1
* Mon Jun 21 2004 Jakub Jelinek <jakub@redhat.com> 4.1-1
- update to 4.1
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Tue May 25 2004 Jakub Jelinek <jakub@redhat.com> 4.0.9-1
- update to 4.0.9
- BuildRequire recent glibc and glibc-devel (#123043)
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed Jan 7 2004 Jakub Jelinek <jakub@redhat.com> 4.0.8-3
- if not -n, print current buffer after N command on the last line
unless POSIXLY_CORRECT (#112952)
- adjust XFAIL_TESTS for the improved glibc regex implementation
(#112642)
* Fri Nov 14 2003 Jakub Jelinek <jakub@redhat.com> 4.0.8-2
- enable --without-included-regex again
- use fastmap for regex searching
* Sat Oct 25 2003 Florian La Roche <Florian.LaRoche@redhat.de>
- update to 4.0.8
- simplify specfile
- disable --without-included-regex to pass the testsuite
* Thu Jun 26 2003 Jakub Jelinek <jakub@redhat.com> 4.0.7-3
- rebuilt
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Sat Apr 12 2003 Florian La Roche <Florian.LaRoche@redhat.de>
- update to 4.0.7
- use "--without-included-regex"
- do not gzip info pages in spec file, "TODO" is not present anymore
* Thu Jan 23 2003 Jakub Jelinek <jakub@redhat.com> 4.0.5-1
- update to 4.0.5
* Tue Oct 22 2002 Jakub Jelinek <jakub@redhat.com>
- rebuilt to fix x86-64 miscompilation
- run make check in %%build
* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Thu May 23 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Fri Apr 5 2002 Jakub Jelinek <jakub@redhat.com>
- Remove stale URLs from documentation (#62519)
* Sun Jun 24 2001 Elliot Lee <sopwith@redhat.com>
- Bump release + rebuild.
* Mon Dec 18 2000 Yukihiro Nakai <ynakai@redhat.com>
- Update to 2000.11.28 patch
- Rebuild for 7.1 tree
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
* Mon Jun 5 2000 Jeff Johnson <jbj@redhat.com>
- FHS packaging.
* Mon Feb 7 2000 Jeff Johnson <jbj@redhat.com>
- compress man pages.
* Tue Jan 18 2000 Jakub Jelinek <jakub@redhat.com>
- rebuild with glibc 2.1.3 to fix an mmap64 bug in sys/mman.h
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
- auto rebuild in the new build environment (release 4)
* Tue Aug 18 1998 Jeff Johnson <jbj@redhat.com>
- update to 3.02
* Sun Jul 26 1998 Jeff Johnson <jbj@redhat.com>
- update to 3.01
* Mon Apr 27 1998 Prospector System <bugs@redhat.com>
- translations modified for de, fr, tr
* Thu Oct 23 1997 Donnie Barnes <djb@redhat.com>
- removed references to the -g option from the man page that we add
* Fri Oct 17 1997 Donnie Barnes <djb@redhat.com>
- spec file cleanups
- added BuildRoot
* Mon Jun 02 1997 Erik Troan <ewt@redhat.com>
- built against glibc

3964
sedfaq.txt Normal file

File diff suppressed because it is too large Load Diff

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (sed-4.8.tar.xz) = 7de25d9bc2981c63321c2223f3fbcab61d7b0df4fcf7d4394b72400b91993e1288d8bf53948ed5fffcf5a98c75265726a68ad4fb98e1d571bf768603a108c1c8

View File

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/sed/Regression/backup-file-not-cleared
# Description: Test for tmp file not clear after registered to rhevm
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/sed/Regression/backup-file-not-cleared
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.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: Petr Muller <pmuller@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for tmp file not clear after registered to rhevm" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: sed" >> $(METADATA)
@echo "Requires: sed" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,4 @@
PURPOSE of /CoreOS/sed/Regression/backup-file-not-cleared
Description: Test for tmp file not clear after registered to rhevm
Author: Petr Muller <pmuller@redhat.com>
Bug summary: tmp file not clear after registered to rhevm

View File

@ -0,0 +1,106 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/sed/Regression/backup-file-not-cleared
# Description: Test for tmp file not clear after registered to rhevm
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh
PACKAGE="sed"
rlJournalStart
rlPhaseStartSetup
rlRun "mkdir TMP"
rlRun "cd TMP"
rlRun "echo 'some content' > somefile"
rlRun "echo 'changed content' > somefile-expected"
rlRun "touch filelist"
cat > filelist-golden << EOF
./filelist
./filelist-golden
./somefile
./somefile-expected
EOF
rlPhaseEnd
rlPhaseStartTest
rlRun "sed -i --copy 's/some/changed/' somefile"
rlRun "find . -type f | sort -f > filelist"
rlAssertNotDiffer filelist filelist-golden
if [ $? -ne 0 ]
then
rlLog "Differences found: "
diff -u filelist-golden filelist | while read line
do
rlLog "\"$line\""
done
fi
rlAssertNotDiffer somefile somefile-expected
if [ $? -ne 0 ]
then
rlLog "Differences found: "
diff -u somefile-expected somefile | while read line
do
rlLog "\"$line\""
done
fi
rlRun "rm -f sed*"
rlRun "echo 'some content' > somefile"
rlRun "sed -i-fxpected --copy 's/some/changed/' somefile"
rlRun "find . -type f | sort > filelist"
echo "./somefile-fxpected" >> filelist-golden
rlAssertExists somefile-fxpected
sort filelist-golden -o filelist-golden
rlAssertNotDiffer filelist filelist-golden
if [ $? -ne 0 ]
then
rlLog "Differences found: "
diff -u filelist-golden filelist | while read line
do
rlLog "\"$line\""
done
fi
rlAssertNotDiffer somefile somefile-expected
if [ $? -ne 0 ]
then
rlLog "Differences found: "
diff -u somefile-expected somefile | while read line
do
rlLog "\"$line\""
done
fi
rlPhaseEnd
rlPhaseStartCleanup
rlRun "cd .."
rlRun "rm -rf TMP"
rlPhaseEnd
rlJournalEnd

View File

@ -0,0 +1,49 @@
# The toplevel namespace within which the test lives.
TOPLEVEL_NAMESPACE=/CoreOS
# The name of the package under test:
PACKAGE_NAME=sed
# The path of the test below the package:
RELATIVE_PATH=handle-escapes-correctly
# Version of the Test. Used with make tag.
export TESTVERSION=1.1
# The compiled namespace of the test.
export TEST=$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
.PHONY: all install download clean
BUILT_FILES= # executables to be built should be added here, they will be generated on the system under test.
FILES=$(METADATA) runtest.sh Makefile handle-escapes-correctly.sh
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x ./runtest.sh
chmod a+x ./handle-escapes-correctly.sh
clean:
rm -f *~ $(BUILT_FILES)
# Include Common Makefile
include /usr/share/rhts/lib/rhts-make.include
# Generate the testinfo.desc here:
$(METADATA): Makefile
@touch $(METADATA)
@echo "Owner: Bastien Nocera <bnocera@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "License: RH Internal Test" >> $(METADATA)
@echo "Description: Tests if sed handles escapes correctly">> $(METADATA)
@echo "TestTime: 1m" >> $(METADATA)
@echo "RunFor: $(PACKAGE_NAME) " >> $(METADATA) # add any other packages for which your test ought to run here
@echo "Requires: $(PACKAGE_NAME) " >> $(METADATA) # add any other requirements for the script to run here
@echo "Priority: Normal" >> $(METADATA)
@echo "Type: Regression " >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,21 @@
#!/bin/bash
# Tests if sed handles escapes correctly
ACTUALFILE=`mktemp`
EXPECTEDFILE=`mktemp`
RETVAL=1
echo '' | sed -e ' i\\co' > $ACTUALFILE
printf '\x0f\n\n' > $EXPECTEDFILE
if diff $EXPECTEDFILE $ACTUALFILE > /dev/null; then
RETVAL=0
echo "Succeeded"
else
echo "Failed"
fi
rm -f $ACTUALFILE $EXPECTEDFILE
exit $RETVAL

View File

@ -0,0 +1,33 @@
#!/bin/sh
# Package: Package under test (will be used to get version info on executed
# tests). If RPM query results on PACKAGE are null, then pass value of
# PACKAGE variable for Version
PACKAGE=sed
# source the test script helpers
# BUG: This line is intentionally left commented out.
# When I have the helper packages installed the line below should be
# uncommented
. /usr/bin/rhts-environment.sh
# Commands in this section are provided by test developer.
# ---------------------------------------------
# Assume the test will pass.
result=PASS
# Run the acutal test and redirect the output to the log file
# So if need be we will have the debug info after the fact.
./handle-escapes-correctly.sh > $OUTPUTFILE
if [ $? -ne 0 ]; then
result=FAIL
fi
echo $result
# Then file the results in the database
#------------------------------------------------
report_result $TEST $result

View File

@ -0,0 +1,7 @@
- hosts: '{{ hosts | default("localhost") }}'
vars:
package: sed
OUTPUTFILE: ./outputfile
tasks:
- name: Runtest
script: "./handle-escapes-correctly.sh > {{ OUTPUTFILE }}"

3
tests/inventory Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
export TEST_DOCKER_EXTRA_ARGS="--privileged"
exec merge-standard-inventory "$@"

View File

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/sed/Regression/sed-does-not-handle-inline-edits-of-symlinks-with
# Description: Test for sed does not handle inline edits of symlinks with
# Author: Marek Polacek <mpolacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/sed/Regression/sed-does-not-handle-inline-edits-of-symlinks-with
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Marek Polacek <mpolacek@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for sed does not handle inline edits of symlinks with" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: sed" >> $(METADATA)
@echo "Requires: sed" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,34 @@
PURPOSE of /CoreOS/sed/Regression/sed-does-not-handle-inline-edits-of-symlinks-with
Description: Test for sed does not handle inline edits of symlinks with
Author: Marek Polacek <mpolacek@redhat.com>
Bug summary: sed does not handle inline edits of symlinks with no dir portion
Description:
Description of problem:
When executing on a symlink in present working directory, sed does not build the original path correctly, thus failing to follow the symlink.
Version-Release number of selected component (if applicable):
sed-4.1.5-5.fc6
How reproducible:
Always.
Steps to Reproduce:
1. echo "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" >1
2. ln -s 1 2
3. sed -i -e 's/z/a/g' 2
Actual results:
sed: ck_follow_symlink: couldn't lstat 2/1: Not a directory
Expected results:
All z's in the file should be replaced with a's.
Additional info:

View File

@ -0,0 +1,56 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/sed/Regression/sed-does-not-handle-inline-edits-of-symlinks-with
# Description: Test for sed does not handle inline edits of symlinks with
# Author: Marek Polacek <mpolacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/bin/rhts-environment.sh
. /usr/lib/beakerlib/beakerlib.sh
PACKAGE="sed"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
# Prepare the test file
rlRun "echo 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz' > 1" 0
# Create a symlink
rlRun "ln -s 1 2" 0
rlPhaseEnd
rlPhaseStartTest
# Try to replace characters
rlRun "sed -i -e 's/z/a/g' 2 " 0 "Replace all z's with a's"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -0,0 +1,56 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/sed/Regression/sed-does-not-handle-inline-edits-of-symlinks-with
# Description: Test for sed does not handle inline edits of symlinks with
# Author: Marek Polacek <mpolacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- hosts: '{{ hosts | default("localhost") }}'
vars:
package: sed
tasks:
- name: Make TmpDir
command: "mktemp -d"
register: TmpDir
- name: Prepare the test file
lineinfile:
create: yes
dest: "{{ TmpDir.stdout }}/1"
line: 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz'
- name: Create a sym link
file:
src: "{{ TmpDir.stdout }}/1"
dest: "{{ TmpDir.stdout }}/2"
state: link
- block:
- name: Runtest - Try to replace characters
shell: "sed -i -e 's/z/a/g' 2 "
args:
warn: no
chdir: "{{ TmpDir.stdout }}"
always:
- name: Cleanup
file:
path: "{{ TmpDir.stdout }}"
state: absent

View File

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/sed/Regression/sed-needs-to-support-c-copy-option
# Description: Test for sed needs to support -c/--copy option
# Author: Karel Srot <ksrot@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/sed/Regression/sed-needs-to-support-c-copy-option
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Karel Srot <ksrot@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for sed needs to support -c/--copy option" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: sed" >> $(METADATA)
@echo "Requires: sed" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,33 @@
PURPOSE of /CoreOS/sed/Regression/sed-needs-to-support-c-copy-option
Description: Test for sed needs to support -c/--copy option
Author: Karel Srot <ksrot@redhat.com>
Bug summary: sed needs to support -c/--copy option
Description:
Description of problem:
sed on bind-mounted files fails in rename step. In previous versions this was fixed by using -c/--copy functionality which appears to have been removed in 4.2.1-4.
Bind mounts are used in stateless systems for persistent data.
Version-Release number of selected component (if applicable):
4.2.1-4
How reproducible:
Always
Steps to Reproduce:
1. touch file1 file2
2. mount --bind file1 file2
3. echo "test" > file1
4. sed -i "s/test/fail/g" file2
Actual results:
sed: cannot rename ./sedfnZpvY: Device or resource busy
Expected results:
sed script completes.
Additional info:
As of 4.2.1-4, the -c/--copy options did not exist at all. Using them resulted in the printing of the help message. Using 4.2.1-5 from koji reintroduced the -c/--copy option support, but the above sed command still fails.

View File

@ -0,0 +1,61 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/sed/Regression/sed-needs-to-support-c-copy-option
# Description: Test for sed needs to support -c/--copy option
# Author: Karel Srot <ksrot@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/bin/rhts-environment.sh
. /usr/lib/beakerlib/beakerlib.sh
PACKAGE="sed"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlRun "echo 'test' > file1" 0 "Prepare test files"
rlRun "touch file2"
rlRun "mount -n --bind file1 file2"
rlRun "grep test file2" 0 "Verify tests files"
rlPhaseEnd
rlPhaseStartTest
rlRun "sed -i 's/test/passed/' file2 &> out1" 4 "Executing sed -i"
rlAssertGrep "cannot rename" out1
rlAssertGrep "test" file2
rlRun "sed -i -c 's/test/passed/' file2 &> out2" 0 "Executing sed -i -c"
rlAssertNotGrep "cannot rename" out2
rlAssertGrep "passed" file2
rlPhaseEnd
rlPhaseStartCleanup
rlRun "umount file2"
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -0,0 +1,93 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/sed/Regression/sed-needs-to-support-c-copy-option
# Description: Test for sed needs to support -c/--copy option
# Author: Karel Srot <ksrot@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- hosts: '{{ hosts | default("localhost") }}'
vars:
package: sed
tasks:
- name: Make TmpDir
command: "mktemp -d"
register: TmpDir
- name: Prepare test files
lineinfile:
dest: "{{ TmpDir.stdout }}/file1"
create: yes
line: "test"
- name: Prepare second test file
file:
dest: "{{ TmpDir.stdout }}/file2"
state: touch
- name: Bind mount files. Dont write to /etc so dont use mount module
shell: "mount -n --bind file1 file2"
args:
warn: no
chdir: "{{ TmpDir.stdout }}"
- name: Verify tests files
command: "grep test file2"
args:
chdir: "{{ TmpDir.stdout }}"
- block:
- name: Runtest - executing sed -i
shell: "sed -i 's/test/passed/' file2 &> out1"
args:
warn: no
chdir: "{{ TmpDir.stdout }}"
register: sedi
failed_when: sedi.rc != 4
- name: Runtest - grep out1
command: grep "cannot rename" out1
args:
chdir: "{{ TmpDir.stdout }}"
- name: Runtest - grep file2
command: grep "test" file2
args:
chdir: "{{ TmpDir.stdout }}"
- name: Runtest - executing sed -i -c
shell: "sed -i -c 's/test/passed/' file2 &> out2"
args:
warn: no
chdir: "{{ TmpDir.stdout }}"
- name: Runtest - grep out2
command: grep "cannot rename" out2
args:
chdir: "{{ TmpDir.stdout }}"
register: out2
failed_when: out2.rc != 1
- name: Runtest - grep file2
command: grep "passed" file2
args:
chdir: "{{ TmpDir.stdout }}"
always:
- name: Cleanup file
shell: "umount file2"
args:
chdir: "{{ TmpDir.stdout }}"
- name: Cleanup dir
file:
path: "{{ TmpDir.stdout }}"
state: absent

View File

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/sed/Regression/sed-reports-syntax-errors-with-some-multibyte
# Description: Test for sed reports syntax errors with some multibyte
# Author: Marek Polacek <mpolacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/sed/Regression/sed-reports-syntax-errors-with-some-multibyte
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Marek Polacek <mpolacek@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Test for sed reports syntax errors with some multibyte" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: sed" >> $(METADATA)
@echo "Requires: sed glibc-all-langpacks" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,45 @@
PURPOSE of /CoreOS/sed/Regression/sed-reports-syntax-errors-with-some-multibyte
Description: Test for sed reports syntax errors with some multibyte
Author: Marek Polacek <mpolacek@redhat.com>
Bug summary: sed reports syntax errors with some multibyte characters
Description:
Description of problem:
Using a multibyte character that ends with 0x5c (backslash) can cause sed to report syntax errors.
Version-Release number of selected component (if applicable): sed-4.1.5-5
How reproducible: Always
Steps to Reproduce:
1. Start with your shell in a UTF-8 locale, eg en-US.UTF-8 (you can probably do this in a different locale, but it definitely works if you start in a UTF-8 locale).
2. Run the follow commands to construct a sed script:
U2010=$(echo -ne '\x20\x10' | iconv -f ucs-2be)
echo "echo '$U2010' | sed 's/$U2010/hyphen/g'" | iconv -t gbk > /tmp/script
3. Run the shell script in a locale that uses the gbk character set:
LC_ALL=zh_CN.gbk sh /tmp/script 2>&1 | iconv -f gbk
Actual results:
The script reports an error:
sed-e 表达式 #1字符 13unterminated `s' command
Expected results:
The single word "hyphen"
Additional info:
The error arises because the character U+2010 (HYPHEN) is encoded as \xa9\x5c in the gbk encoding. Sed sees the "\x5c" as a backslash escaping the following character which, in this case, is the "/" that we hope is going to terminate the pattern; it doesn't and so we get a syntax error.
Of course, this is just one character in one encoding. There are likely to be many others and this is just one example. I have another example for SJIS, (U+8868) but SJIS isn't a good encoding to use for reporting bugs :-).

View File

@ -0,0 +1,59 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/sed/Regression/sed-reports-syntax-errors-with-some-multibyte
# Description: Test for sed reports syntax errors with some multibyte
# Author: Marek Polacek <mpolacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/bin/rhts-environment.sh
. /usr/lib/beakerlib/beakerlib.sh
PACKAGE="sed"
# as explained in the PURPOSE file, we need to start in a UTF-8 locale
export LC_ALL=en_US.UTF-8
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
# Construct a sed script
rlRun "U2010=\$(echo -ne '\x20\x10' | iconv -f ucs-2be)" 0
rlRun "echo \"echo '$U2010' | sed 's/$U2010/hyphen/g'\" | iconv -t gbk > script" 0
rlRun "set -o pipefail"
rlPhaseEnd
rlPhaseStartTest
# Run the shell script in a locale that uses the gbk character set
rlRun "LC_ALL=zh_CN.gbk sh ./script 2>&1 | iconv -f gbk" 0
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

64
tests/selftest/Makefile Normal file
View File

@ -0,0 +1,64 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/sed/Sanity/selftest
# Description: Execute test suite comming with sed
# Author: Miroslav Vadkerti <mvadkert@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/sed/Sanity/selftest
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Miroslav Vadkerti <mvadkert@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Execute test suite comming with sed" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 30m" >> $(METADATA)
@echo "RunFor: sed" >> $(METADATA)
@echo "Requires: sed" >> $(METADATA)
@echo "Requires: gcc rpm-build automake libselinux-devel glibc-devel yum-utils" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

3
tests/selftest/PURPOSE Normal file
View File

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/sed/Sanity/selftest
Description: Execute test suite comming with sed
Author: Miroslav Vadkerti <mvadkert@redhat.com>

87
tests/selftest/runtest.sh Executable file
View File

@ -0,0 +1,87 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/sed/Sanity/selftest
# Description: Execute test suite comming with sed
# Author: Miroslav Vadkerti <mvadkert@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# 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, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/bin/rhts-environment.sh
. /usr/lib/beakerlib/beakerlib.sh
PACKAGE="sed"
PACKAGES="sed gcc rpm-build automake libselinux-devel glibc-devel"
UPSTREAMPKG="sed-*"
BUILDLOG=`mktemp`
TESTLOG=`mktemp`
TARGET=$(echo `uname -m` | egrep ppc)
if [[ $TARGET != "" ]]; then
if rlIsRHEL 4; then
TARGET="--target ppc"
else
TARGET="--target `uname -m`"
fi
fi
rlJournalStart
rlPhaseStartSetup
for PKG in $PACKAGES; do
rlAssertRpm $PKG
done
rlFetchSrcForInstalled $PACKAGE
# make sure all deps installed
if ! rlIsRHEL 3 4 5; then
rlRun "yum-builddep -y *.src.rpm" 0-255
fi
rlPhaseEnd
rlPhaseStartTest
rlRun "rpm -ivh $PACKAGE*.src.rpm" 0 "Installing $PACKAGE src rpm"
SRCDIR="/usr/src/redhat"
if ! rlIsRHEL 3 4 5; then
SRCDIR="$HOME/rpmbuild/"
echo "+ RHEL6+ detected: SRCDIR=$SRCDIR"
fi
SPEC="$SRCDIR/SPECS/$PACKAGE*.spec"
TESTDIR="$SRCDIR/BUILD/$UPSTREAMPKG/"
echo "+ Building $PACKAGE (Log: $BUILDLOG)"
echo "+ Build command: rpmbuild -bc $SPEC $TARGET"
rlRun "rpmbuild -bc $SPEC $TARGET &> $BUILDLOG"
echo "+ Buildlog:"
tail -n 100 $BUILDLOG
rlRun "pushd ."
rlRun "cd $TESTDIR"
# disable test known to fail when run as root
rlRun "sed -i 's/testsuite\/panic-tests.sh//' Makefile.in"
rlRun "make check &> $TESTLOG"
cat $TESTLOG
rlAssertNotGrep "^FAIL" $TESTLOG
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -rf $PACKAGE*.src.rpm" 0 "Removing source rpm"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

44
tests/tests.yml Normal file
View File

@ -0,0 +1,44 @@
---
# Tests for classic and docker container environments
- hosts: localhost
tags:
- classic
- container
roles:
- role: standard-test-beakerlib
tests:
- selftest
- backup-file-not-cleared
- handle-escapes-correctly
- sed-does-not-handle-inline-edits-of-symlinks-with
- sed-needs-to-support-c-copy-option
- sed-reports-syntax-errors-with-some-multibyte
- uppercase-operand
required_packages:
- wget # beakerlib needs wget command
- findutils # backup-file-not-cleared needs find command
- glibc-langpack-en # sed-reports-syntax-errors-with-some-multibyte needs en_US.UTF-8 locale
- glibc-langpack-zh # sed-reports-syntax-errors-with-some-multibyte needs zh_CN.gbk locale
- glibc-langpack-ru # selftest needs ru_RU.UTF-8 locale
- gcc # selftest needs gcc package
- rpm-build # selftest needs rpm-build package
- automake # selftest needs automake package
- libselinux-devel # selftest needs libselinux-devel package
- glibc-devel # selftest needs glibc-devel package
- yum-utils # selftest needs yum-utils package
- libacl-devel # selftest needs libacl-devel package
# Tests for Atomic Host
- hosts: localhost
tags:
- atomic
roles:
- role: standard-test-beakerlib
tests:
#- selftest # cannot run under Atomic
- backup-file-not-cleared
- handle-escapes-correctly
- sed-does-not-handle-inline-edits-of-symlinks-with
- sed-needs-to-support-c-copy-option
#- sed-reports-syntax-errors-with-some-multibyte # needs glibc-langpack-zh
- uppercase-operand

View File

@ -0,0 +1,61 @@
# Makefile - uppercase-operand
# Author: Petr Muller <pmuller@redhat.com>
# Location: /CoreOS/sed/Regression/uppercase-operand/Makefile
# Description: Verifiies that sed correctly processes an 'u' operand, which returns uppercase of matched character
# Copyright (c) 2008 Red Hat, Inc. All rights reserved. This copyrighted material
# is made available to anyone wishing to use, modify, copy, or
# redistribute it subject to the terms and conditions of the GNU General
# Public License v.2.
#
# 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
TOPLEVEL_NAMESPACE=/CoreOS
PACKAGE_NAME=sed
RELATIVE_PATH=Regression/uppercase-operand
export TEST=$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
chmod a+x ./runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@touch $(METADATA)
@echo "Owner: Petr Muller <pmuller@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Description: Verifiies that sed correctly processes an 'u' operand, which returns uppercase of matched character" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 1m" >> $(METADATA)
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
@echo "Requires: $(PACKAGE_NAME)" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -0,0 +1,9 @@
Test Name: uppercase-operand
Author: Petr Muller <pmuller@redhat.com>
Location: /CoreOS/sed/Regression/uppercase-operand
Short Description: Verifiies that sed correctly processes an 'u' operand, which returns uppercase of matched character
Long Description:
Verifiies that sed correctly processes an 'u' operand, which returns uppercase of matched character

View File

@ -0,0 +1,83 @@
# runtest.sh - uppercase-operand
# Author: Petr Muller <pmuller@redhat.com>
# Location: /CoreOS/sed/Regression/uppercase-operand/runtest.sh
# Description: Verifiies that sed correctly processes an 'u' operand, which returns uppercase of matched character
# Copyright (c) 2008 Red Hat, Inc. All rights reserved. This copyrighted material
# is made available to anyone wishing to use, modify, copy, or
# redistribute it subject to the terms and conditions of the GNU General
# Public License v.2.
#
# 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
PACKAGE=sed
RESULT=FAIL
SCORE=0
if rpm -q $PACKAGE &>/dev/null; then
PKG_VERS=$( rpm -q ${PACKAGE} --queryformat %{version} )
PKG_RELEASE=$( rpm -q ${PACKAGE} --queryformat %{release} )
fi
# Include rhts environment
. /usr/bin/rhts-environment.sh
function Log {
echo -e ":: [`date +%H:%M:%S`] :: $1" >> $OUTPUTFILE
}
function HeaderLog {
echo -e "\n::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" >> $OUTPUTFILE
echo -e ":: [`date +%H:%M:%S`] :: $1" >> $OUTPUTFILE
echo -e "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n" >>$OUTPUTFILE
}
HeaderLog "Starting $PACKAGE RHTS Test"
if rpm -q $PACKAGE &>/dev/null; then
Log "Running $PACKAGE-$PKG_VERS-$PKG_RELEASE"
else
Log "WARNING: Unable to locate $PACKAGE"
fi
####################
# Begin Test-Case
# Find result should be PASS or FAIL
####################
HeaderLog "Starting Test-Case"
testcase='i shouLD be In UpPeR CaSe, yeah, I should'
Log "Testcase: '$testcase'"
res=`echo $testcase | sed -e 's/[a-z]/\u&/g'`
Log "Result: $res"
####################
# Check Results
####################
HeaderLog "Checking Results"
if [ "$res" == "I SHOULD BE IN UPPER CASE, YEAH, I SHOULD" ]
then
RESULT=PASS
Log "Seems correct: PASS"
else
RESULT=FAIL
Log "Didn't get what we expected: FAIL"
fi
HeaderLog "Reporting Results"
Log "TEST: $TEST | RESULT: $RESULT\n"
report_result $TEST $RESULT
HeaderLog "End of $PACKAGE RHTS Test"