tests: add uuid parser check

The check is based on code by Theodore Ts'o to test libuuid, from which
unstable output is commented out.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2015-10-18 18:39:21 +01:00
parent c2f03da93d
commit 4d3f964e4a
No known key found for this signature in database
GPG Key ID: A9553245FDE9B739
5 changed files with 53 additions and 5 deletions

View File

@ -1,8 +1,8 @@
check_PROGRAMS += test_uuid
test_uuid_SOURCES = libuuid/src/test_uuid.c
test_uuid_LDADD = libuuid.la $(SOCKET_LIBS)
test_uuid_CFLAGS = -I$(ul_libuuid_incdir)
check_PROGRAMS += test_uuid_parser
test_uuid_parser_SOURCES = libuuid/src/test_uuid.c
test_uuid_parser_LDADD = libuuid.la $(SOCKET_LIBS)
test_uuid_parser_CFLAGS = -I$(ul_libuuid_incdir)
# includes
uuidincdir = $(includedir)/uuid

View File

@ -69,13 +69,15 @@ static int test_uuid(const char * uuid, int isValid)
int
main(int argc ATTR((unused)) , char **argv ATTR((unused)))
{
int failed = 0;
/* Code commented out will print random uuid's that are unsuitable output
* for test suite.
uuid_t buf, tst;
char str[100];
struct timeval tv;
time_t time_reg;
unsigned char *cp;
int i;
int failed = 0;
int type, variant;
uuid_generate(buf);
@ -160,6 +162,7 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
printf("UUID copy and compare failed!\n");
failed++;
}
*/
failed += test_uuid("84949cc5-4701-4a84-895b-354c584a981b", 1);
failed += test_uuid("84949CC5-4701-4A84-895B-354C584A981B", 1);
failed += test_uuid("84949cc5-4701-4a84-895b-354c584a981bc", 0);
@ -171,6 +174,9 @@ main(int argc ATTR((unused)) , char **argv ATTR((unused)))
failed += test_uuid("84949cc5-4701-4a84-895b0354c584a981b", 0);
failed += test_uuid("g4949cc5-4701-4a84-895b-354c584a981b", 0);
failed += test_uuid("84949cc5-4701-4a84-895b-354c584a981g", 0);
failed += test_uuid("00000000-0000-0000-0000-000000000000", 1);
failed += test_uuid("01234567-89ab-cdef-0134-567890abcedf", 1);
failed += test_uuid("ffffffff-ffff-ffff-ffff-ffffffffffff", 1);
if (failed) {
printf("%d failures.\n", failed);

View File

@ -30,6 +30,7 @@ TS_HELPER_SCRIPT="$top_builddir/test_script"
TS_HELPER_SIGRECEIVE="$top_builddir/test_sigreceive"
TS_HELPER_STRUTILS="$top_builddir/test_strutils"
TS_HELPER_SYSINFO="$top_builddir/test_sysinfo"
TS_HELPER_UUID_PARSER="$top_builddir/test_uuid_parser"
# paths to commands
TS_CMD_ADDPART=${TS_CMD_ADDPART:-"$top_builddir/addpart"}

View File

@ -0,0 +1,15 @@
84949cc5-4701-4a84-895b-354c584a981b is valid, OK
84949CC5-4701-4A84-895B-354C584A981B is valid, OK
84949cc5-4701-4a84-895b-354c584a981bc is invalid, OK
84949cc5-4701-4a84-895b-354c584a981 is invalid, OK
84949cc5x4701-4a84-895b-354c584a981b is invalid, OK
84949cc504701-4a84-895b-354c584a981b is invalid, OK
84949cc5-470104a84-895b-354c584a981b is invalid, OK
84949cc5-4701-4a840895b-354c584a981b is invalid, OK
84949cc5-4701-4a84-895b0354c584a981b is invalid, OK
g4949cc5-4701-4a84-895b-354c584a981b is invalid, OK
84949cc5-4701-4a84-895b-354c584a981g is invalid, OK
00000000-0000-0000-0000-000000000000 is valid, OK
01234567-89ab-cdef-0134-567890abcedf is valid, OK
ffffffff-ffff-ffff-ffff-ffffffffffff is valid, OK
return value: 0

26
tests/ts/uuid/uuid_parser Executable file
View File

@ -0,0 +1,26 @@
#!/bin/bash
# This file is part of util-linux.
#
# This file 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 file 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.
TS_TOPDIR="${0%/*}/../.."
TS_DESC="uuid_parser"
. $TS_TOPDIR/functions.sh
ts_init "$*"
ts_check_test_command "$TS_HELPER_UUID_PARSER"
$TS_HELPER_UUID_PARSER > $TS_OUTPUT 2>&1
echo "return value: $?" >> $TS_OUTPUT
ts_finalize