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)
This commit is contained in:
Pauli 2018-09-17 08:09:25 +10:00
parent 972f67889b
commit da5fac72b1
3 changed files with 32 additions and 1 deletions

1
.gitignore vendored
View file

@ -59,6 +59,7 @@ Makefile
/test/v3ext
/test/versions
/test/ossl_shim/ossl_shim
/test/rsa_complex
# Certain files that get created by tests on the fly
/test/test-runs

View file

@ -26,7 +26,7 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=main
PROGRAMS_NO_INST=\
versions \
aborttest test_test \
sanitytest exdatatest bntest \
sanitytest rsa_complex exdatatest bntest \
ectest ecstresstest ecdsatest gmdifftest pbelutest ideatest \
md2test \
hmactest \
@ -64,6 +64,9 @@ INCLUDE_MAIN___test_libtestutil_OLB = /INCLUDE=main
INCLUDE[sanitytest]=../include
DEPEND[sanitytest]=../libcrypto libtestutil.a
SOURCE[rsa_complex]=rsa_complex.c
INCLUDE[rsa_complex]=../include
SOURCE[test_test]=test_test.c
INCLUDE[test_test]=../include
DEPEND[test_test]=../libcrypto libtestutil.a

27
test/rsa_complex.c Normal file
View file

@ -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;
}