Currently, in tests/volser/vos-t.c we call afs_com_err as
"authname-t", which is clearly a mistake during some code refactoring
(introduced in commit
2ce3fdc5, "tests: Abstract out code to produce a
Ubik client").
We could just change this to "vos-t", but instead of specifying
constant strings everywhere, change this to figure out what the
current command is called, and just use that. Put this code into a new
function, afstest_GetProgname, and convert existing tests to use that
instead of hard-coding the program name given to afs_com_err.
Change-Id: I3ed02c89f93798568783c7d717e8fb2e39dcce14
Reviewed-on: https://gerrit.openafs.org/13991
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
$(MODULE_LIBS)
superuser-t: superuser-t.o ../common/config.o ../common/rxkad.o \
- test.cs.o test.ss.o test.xdr.o ../common/network.o
+ test.cs.o test.ss.o test.xdr.o ../common/network.o \
+ ../common/misc.o
$(LT_LDRULE_static) superuser-t.o ../common/config.o \
../common/rxkad.o ../common/servers.o \
test.cs.o test.ss.o test.xdr.o ../common/network.o \
- $(MODULE_LIBS)
+ ../common/misc.o $(MODULE_LIBS)
keys-t: keys-t.o ../common/config.o ../common/network.o
$(LT_LDRULE_static) keys-t.o ../common/config.o ../common/network.o $(MODULE_LIBS)
int serverPid, clientPid, waited, stat;
int code;
int ret = 0;
+ char *argv0 = afstest_GetProgname(argv);
afstest_SkipTestsIfBadHostname();
code = afstest_AddDESKeyFile(dir);
if (code) {
- afs_com_err("superuser-t", code, "while adding new key\n");
+ afs_com_err(argv0, code, "while adding new key\n");
ret = 1;
goto out;
}
extern int afstest_IsLoopbackNetworkDefault(void);
extern int afstest_SkipTestsIfLoopbackNetIsDefault(void);
extern void afstest_SkipTestsIfBadHostname(void);
+
+/* misc.c */
+extern char *afstest_GetProgname(char **argv);
--- /dev/null
+/*
+ * Copyright (c) 2019 Sine Nomine Associates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR `AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*!
+ * Common misc functions for testing programs
+ */
+
+#include <afsconfig.h>
+#include <afs/param.h>
+#include <roken.h>
+
+#include "common.h"
+
+char *
+afstest_GetProgname(char **argv)
+{
+ char *argv0;
+
+ /* For invocations like ./foo/bar/prog, strip out everything but the
+ * trailing 'prog'. */
+ argv0 = strrchr(argv[0], '/');
+ if (argv0 != NULL) {
+ argv0++;
+ return argv0;
+ }
+ return argv[0];
+}
$(XLIBS)
vos-t: vos-t.o ../common/config.o ../common/servers.o ../common/ubik.o \
- ../common/network.o
+ ../common/network.o ../common/misc.o
$(LT_LDRULE_static) vos-t.o ../common/config.o ../common/servers.o \
- ../common/ubik.o ../common/network.o $(MODULE_LIBS)
+ ../common/ubik.o ../common/network.o ../common/misc.o \
+ $(MODULE_LIBS)
clean:
$(LT_CLEAN)
struct rx_securityClass *secClass;
struct ubik_client *ubikClient = NULL;
int ret = 0;
+ char *argv0 = afstest_GetProgname(argv);
/* Skip all tests if the current hostname can't be resolved */
afstest_SkipTestsIfBadHostname();
code = afstest_AddDESKeyFile(dir);
if (code) {
- afs_com_err("vos-t", code, "while adding test DES keyfile");
+ afs_com_err(argv0, code, "while adding test DES keyfile");
ret = 1;
goto out;
}
code = afstest_StartVLServer(dirname, &serverPid);
if (code) {
- afs_com_err("vos-t", code, "while starting the vlserver");
+ afs_com_err(argv0, code, "while starting the vlserver");
ret = 1;
goto out;
}
code = afsconf_ClientAuthSecure(dir, &secClass, &secIndex);
is_int(code, 0, "Successfully got security class");
if (code) {
- afs_com_err("authname-t", code, "while getting anonymous secClass");
+ afs_com_err(argv0, code, "while getting anonymous secClass");
ret = 1;
goto out;
}
secClass, secIndex, &ubikClient);
is_int(code, 0, "Successfully built ubik client structure");
if (code) {
- afs_com_err("vos-t", code, "while building ubik client");
+ afs_com_err(argv0, code, "while building ubik client");
ret = 1;
goto out;
}