summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-01-12 13:07:39 +0100
committerRichard Levitte <levitte@openssl.org>2017-01-12 15:23:15 +0100
commit6a15d5b637638c37046d90c02e717543fa63f6da (patch)
treef2c3b71c38d2aa0fba9a3b359c11e0c35e03b9bc
parent027609f9563014a6f5bc6917f085bd77e8dc8dc7 (diff)
UI: fix uitest for VMS
- On VMS, apps/apps.c depends on apps/vms_term_sock.c, so add it to the build - On VMS, apps/*.c are compiled with default symbol settings, i.e. uppercased and truncated symbols, which differs from test programs. Make sure uitest.c knows that with a few pragmas. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/2218)
-rw-r--r--test/build.info6
-rw-r--r--test/uitest.c17
2 files changed, 22 insertions, 1 deletions
diff --git a/test/build.info b/test/build.info
index eed8aa5fa7..c116238948 100644
--- a/test/build.info
+++ b/test/build.info
@@ -5,6 +5,9 @@
my ($base, $files) = @_;
return join(" ", map { "$base/$_" } split(/\s+/, $files));
}
+ our $apps_extra =
+ $config{target} =~ /^vms-/ ? "../apps/vms_term_sock.c" : "";
+ ""
-}
IF[{- !$disabled{tests} -}]
PROGRAMS_NO_INST=\
@@ -316,7 +319,8 @@ IF[{- !$disabled{tests} -}]
DEPEND[cipher_overhead_test]=../libcrypto ../libssl
ENDIF
- SOURCE[uitest]=uitest.c testutil.c test_main_custom.c ../apps/apps.c ../apps/opt.c
+ SOURCE[uitest]=uitest.c testutil.c test_main_custom.c \
+ ../apps/apps.c ../apps/opt.c {- $apps_extra -}
INCLUDE[uitest]=.. ../include
DEPEND[uitest]=../libcrypto ../libssl
diff --git a/test/uitest.c b/test/uitest.c
index 16d83b9528..0a7420d4d1 100644
--- a/test/uitest.c
+++ b/test/uitest.c
@@ -11,8 +11,25 @@
#include <string.h>
#include <openssl/opensslconf.h>
#include <openssl/err.h>
+
+/*
+ * We know that on VMS, the [.apps] object files are compiled with uppercased
+ * symbols. We must therefore follow suit, or there will be linking errors.
+ * Additionally, the VMS build does stdio via a socketpair.
+ */
+#ifdef __VMS
+# pragma names save
+# pragma names uppercase, truncated
+
+# include "../apps/vms_term_sock.h"
+#endif
+
#include "../apps/apps.h"
+#ifdef __VMS
+# pragma names restore
+#endif
+
#include "testutil.h"
#include "test_main_custom.h"