diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9fba28f --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +libunistring-0.9.3.tar.gz +/libunistring-0.9.4.tar.xz +/libunistring-0.9.7.tar.xz +/libunistring-0.9.8.tar.xz +/libunistring-0.9.9.tar.xz +/libunistring-0.9.10.tar.xz +/libunistring-1.0.tar.xz +/libunistring-1.1.tar.xz diff --git a/Makefile b/Makefile deleted file mode 100644 index ae427d8..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: libunistring -# $Id$ -NAME := libunistring -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/README.md b/README.md new file mode 100644 index 0000000..fd5c17f --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# libunistring + +This project conatains libunistring i18n testcases diff --git a/changelog b/changelog new file mode 100644 index 0000000..9109fb1 --- /dev/null +++ b/changelog @@ -0,0 +1,127 @@ +* Thu Jul 21 2022 Fedora Release Engineering - 1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Jan 23 2022 Daiki Ueno - 1.0-1 +- Update to upstream 1.0 release +- Switch to %%autosetup + +* Thu Jan 20 2022 Fedora Release Engineering - 0.9.10-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 0.9.10-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jun 21 2021 Mike FABIAN - 0.9.10-13 +- Related rhbz#1938800: Fix CI tests and convert them to tmt + +* Mon Jun 14 2021 Mike FABIAN - 0.9.10-12 +- Fix memory leak in vasnprint. Resolves: rhbz#1938800 + (Backported from upstream: https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4d288a80bf7ebe29334b9805cdcc70eacb6059c1) +- Fix spelling in license GPLV2+ -> GPLv2+ + +* Tue Jan 26 2021 Fedora Release Engineering - 0.9.10-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 0.9.10-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 13 2020 Tom Stellard - 0.9.10-8 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Wed Jan 29 2020 Fedora Release Engineering - 0.9.10-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 0.9.10-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 0.9.10-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jul 31 2018 Florian Weimer - 0.9.10-4 +- Rebuild with fixed binutils + +* Sat Jul 28 2018 Igor Gnatenko - 0.9.10-3 +- Replace obsolete scriptlets + +* Fri Jul 13 2018 Fedora Release Engineering - 0.9.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon May 28 2018 Daiki Ueno - 0.9.10-1 +- Update to upstream 0.9.10 release + +* Thu Mar 01 2018 Daiki Ueno - 0.9.9-1 +- Update to upstream 0.9.9 release + +* Wed Feb 07 2018 Fedora Release Engineering - 0.9.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 0.9.8-2 +- Switch to %%ldconfig_scriptlets + +* Sat Dec 2 2017 Daiki Ueno - 0.9.8-1 +- Update to 0.9.8 + +* Thu Aug 03 2017 Fedora Release Engineering - 0.9.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.9.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 17 2017 Daiki Ueno - 0.9.7-1 +- Update to 0.9.7 +- Update license to "GPLv2+ or LGPLv2+" + +* Wed Feb 01 2017 Stephen Gallagher - 0.9.4-4 +- Add missing %%license macro + +* Thu Feb 04 2016 Fedora Release Engineering - 0.9.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 0.9.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Sep 02 2014 Pádraig Brady - 0.9.4-1 +- Latest upstream + +* Sun Aug 17 2014 Fedora Release Engineering - 0.9.3-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.9.3-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Aug 29 2013 Pádraig Brady 0.9.3-9 +- Adjust to avoid duplicate docs caused by %%doc macro changes in Fedora 20 + +* Sat Aug 03 2013 Fedora Release Engineering - 0.9.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 0.9.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 0.9.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jun 26 2012 Akira TAGOH - 0.9.3-5 +- Fix a typo in %%preun. (#737638) + +* Tue May 15 2012 Mikolaj Izdebski - 0.9.3-4 +- Add bundled(gnulib) provides + +* Fri Jan 13 2012 Fedora Release Engineering - 0.9.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Feb 08 2011 Fedora Release Engineering - 0.9.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun May 23 2010 Pádraig Brady 0.9.3-1 +- Update to 0.9.3 + +* Thu Nov 19 2009 Pádraig Brady 0.9.1-3 +- Remove glibc-devel and texinfo build deps + +* Thu Nov 19 2009 Pádraig Brady 0.9.1-2 +- Changes as per initial review by panemade@gmail.com + +* Tue Nov 17 2009 Pádraig Brady 0.9.1-1 +- Initial version diff --git a/libunistring.spec b/libunistring.spec new file mode 100644 index 0000000..6174759 --- /dev/null +++ b/libunistring.spec @@ -0,0 +1,57 @@ +# This spec file has been automatically updated +Version: 1.1 +Release: %{?autorelease}%{!?autorelease:1%{?dist}} +Name: libunistring +Summary: GNU Unicode string library +License: GPL-2.0-or-later OR LGPL-3.0-or-later +URL: https://www.gnu.org/software/libunistring/ +Source0: https://ftp.gnu.org/gnu/libunistring/%{name}-%{version}.tar.xz +BuildRequires: gcc +BuildRequires: make +Provides: bundled(gnulib) + +%description +This portable C library implements Unicode string types in three flavours: +(UTF-8, UTF-16, UTF-32), together with functions for character processing +(names, classifications, properties) and functions for string processing +(iteration, formatted output, width, word breaks, line breaks, normalization, +case folding and regular expressions). + +%package devel +Summary: GNU Unicode string library - development files +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Development files for programs using libunistring. + +%prep +%autosetup + +%build +%configure --disable-static --disable-rpath +%make_build + +%install +%make_install +rm -f $RPM_BUILD_ROOT%{_infodir}/dir +rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}.la +# Move staged docs so not picked up by %%doc in main package +mv $RPM_BUILD_ROOT%{_datadir}/doc/%{name} __doc + +%files +%license COPYING COPYING.LIB +%doc AUTHORS NEWS README +%{_libdir}/%{name}.so.5* + +%files devel +%doc HACKING DEPENDENCIES THANKS ChangeLog +%doc __doc/* +%{_infodir}/%{name}.info* +%{_libdir}/%{name}.so +%{_includedir}/unistring +%{_includedir}/*.h + +%ldconfig_scriptlets + +%changelog +%autochangelog diff --git a/plans/basic.fmf b/plans/basic.fmf new file mode 100644 index 0000000..c1627f9 --- /dev/null +++ b/plans/basic.fmf @@ -0,0 +1,5 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index e69de29..ec47161 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +SHA512 (libunistring-1.1.tar.xz) = 01a4267bbd301ea5c389b17ee918ae5b7d645da8b2c6c6f0f004ff2dead9f8e50cda2c6047358890a5fceadc8820ffc5154879193b9bb8970f3fb1fea1f411d6 diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..fd5c17f --- /dev/null +++ b/tests/README.md @@ -0,0 +1,3 @@ +# libunistring + +This project conatains libunistring i18n testcases diff --git a/tests/libunistring-tests/.gitignore b/tests/libunistring-tests/.gitignore new file mode 100644 index 0000000..3982139 --- /dev/null +++ b/tests/libunistring-tests/.gitignore @@ -0,0 +1,2 @@ +test +testfile.utf* diff --git a/tests/libunistring-tests/libunistring_test.py b/tests/libunistring-tests/libunistring_test.py new file mode 100644 index 0000000..f5ed94d --- /dev/null +++ b/tests/libunistring-tests/libunistring_test.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- + +import sys +import os +import subprocess +import logging + +""" +Creating a result.log file for saving logs +""" +logging.basicConfig(level=logging.INFO) + +logging.info("TEST RESULTS FOR FUNCTION\n\n") + +data = [] + +TESTTEXT = 'Viele Grüße\n日本語\n' + +def create_testfiles(): + dummy = subprocess.run("./test '" + TESTTEXT + "'", shell=True) + +def test(path='', encoding=''): + """ + Read the file at path using the specified encoding and check + whether the TESTTEXT can be read back correctly. + """ + logging.info('Testing file %s using encoding %s', path, encoding) + try: + with open(path, mode='rt', encoding=encoding) as testfile: + text = testfile.read() + logging.info('TESTTEXT="%s", text read ="%s"\n', TESTTEXT, text) + if text == TESTTEXT: + logging.info( + 'testfile: %s testencoding: %s Read test: SUCCESS', + path, encoding) + else: + logging.info( + 'testfile: %s testencoding: %s Read test: ERROR', + path, encoding) + except UnicodeError: + logging.error("UTF-8 Conversion Test: UnicodeError") + +if __name__ == "__main__": + if sys.byteorder == 'little': + endianness = 'le' + else: + endianness = 'be' + testfiles = { + 'testfile.utf-8': 'utf-8', + 'testfile.utf-16': 'utf-16' + endianness, + 'testfile.utf-32': 'utf-32' + endianness, + } + for testfile in testfiles: + if os.path.isfile(testfile): + os.unlink(testfile) + create_testfiles() + for testfile in testfiles: + test(path=testfile, encoding=testfiles[testfile]) diff --git a/tests/libunistring-tests/main.fmf b/tests/libunistring-tests/main.fmf new file mode 100644 index 0000000..124f572 --- /dev/null +++ b/tests/libunistring-tests/main.fmf @@ -0,0 +1,16 @@ +summary: Functional test for the gettext module +contact: Pooja Yadav +component: +- python +require: +- gcc +- make +- libunistring +- libunistring-devel +test: bash runtest.sh +framework: beakerlib +recommend: +- python +duration: 5m +extra-summary: /CoreOS/python/libunistring-tests +extra-task: /CoreOS/python/libunistring-tests diff --git a/tests/libunistring-tests/runtest.sh b/tests/libunistring-tests/runtest.sh new file mode 100755 index 0000000..7c38158 --- /dev/null +++ b/tests/libunistring-tests/runtest.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/python/libunistring-tests +# Description: Functional tests for libunistring to check i18n features. +# Author: Pooja Yadav +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="libunistring" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "gcc test.c -lunistring -o test" + rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" + rlRun "cp libunistring_test.py test $TmpDir" + rlRun "pushd $TmpDir" + rlPhaseEnd + + rlPhaseStartTest + rlLog "Run libunistring_test.py" + rlRun "python libunistring_test.py" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd + diff --git a/tests/libunistring-tests/test.c b/tests/libunistring-tests/test.c new file mode 100644 index 0000000..8186ed8 --- /dev/null +++ b/tests/libunistring-tests/test.c @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include +#include +#include + +int +main (int argc, char **argv) +{ + if (argc < 2) { + printf ("Usage: %s \n", argv[0]); + return 1; + } + + size_t len8, len16, len32; + + uint8_t *res8 = u8_conv_from_encoding ("UTF-8", iconveh_question_mark, argv[1], strlen (argv[1]), NULL, NULL, &len8); + uint16_t *res16 = u16_conv_from_encoding ("UTF-8", iconveh_question_mark, argv[1], strlen (argv[1]), NULL, NULL, &len16); + uint32_t *res32 = u32_conv_from_encoding ("UTF-8", iconveh_question_mark, argv[1], strlen (argv[1]), NULL, NULL, &len32); + + int fd = open ("testfile.utf-8", O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); + for (int i = 0; i < len8; i++) + write (fd, &res8[i], sizeof (uint8_t)); + close (fd); + + fd = open ("testfile.utf-16", O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); + for (int i = 0; i < len16; i++) + write (fd, &res16[i], sizeof (uint16_t)); + close (fd); + + fd = open ("testfile.utf-32", O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR); + for (int i = 0; i < len32; i++) + write (fd, &res32[i], sizeof (uint32_t)); + close (fd); +} +