summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorPauli <paul.dale@oracle.com>2018-09-17 08:09:25 +1000
committerPauli <paul.dale@oracle.com>2018-09-17 09:48:09 +1000
commit55b1542ca57537e0899e8b82d4f0363db8f1d261 (patch)
treea31e9f16f95f995af0ee585aea3eb29346578a31 /test
parent622fc2e051bc3c61a09d08f1fafdb45f6f8499b0 (diff)
Add a compile time test to verify that openssl/rsa.h and complex.h can
coexist. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7233) (cherry picked from commit da5fac72b1cba5651b871902eea234e693cf01e5)
Diffstat (limited to 'test')
-rw-r--r--test/build.info5
-rw-r--r--test/rsa_complex.c27
2 files changed, 31 insertions, 1 deletions
diff --git a/test/build.info b/test/build.info
index d850b5229c..2367ab841a 100644
--- a/test/build.info
+++ b/test/build.info
@@ -2,7 +2,7 @@ IF[{- !$disabled{tests} -}]
PROGRAMS_NO_INST=\
versions \
aborttest \
- sanitytest exdatatest bntest \
+ sanitytest rsa_complex exdatatest bntest \
ectest ecdsatest gmdifftest pbelutest ideatest \
md2test md4test md5test \
hmactest wp_test \
@@ -32,6 +32,9 @@ IF[{- !$disabled{tests} -}]
INCLUDE[sanitytest]=../include
DEPEND[sanitytest]=../libcrypto
+ SOURCE[rsa_complex]=rsa_complex.c
+ INCLUDE[rsa_complex]=../include
+
SOURCE[exdatatest]=exdatatest.c
INCLUDE[exdatatest]=../include
DEPEND[exdatatest]=../libcrypto
diff --git a/test/rsa_complex.c b/test/rsa_complex.c
new file mode 100644
index 0000000000..fac581254a
--- /dev/null
+++ b/test/rsa_complex.c
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * Check to see if there is a conflict between complex.h and openssl/rsa.h.
+ * The former defines "I" as a macro and earlier versions of the latter use
+ * for function arguments.
+ */
+#if defined(__STDC_VERSION__)
+# if __STDC_VERSION__ >= 199901L
+# include <complex.h>
+# endif
+#endif
+#include <openssl/rsa.h>
+#include <stdlib.h>
+
+int main(int argc, char *argv[])
+{
+ /* There are explicitly no run time checks for this one */
+ return EXIT_SUCCESS;
+}