Add code to CI to verify signed/unsigned char

Make sure that our attempt to test both signed and unsigned char is
actually right.
This commit is contained in:
Jay Berkenbilt 2022-09-23 17:43:01 -04:00
parent a085479ad9
commit 77111086eb
4 changed files with 18 additions and 0 deletions

View File

@ -8,6 +8,8 @@ cmake -S . -B build -DCI_MODE=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DREQUIRE_CRYPTO_OPENSSL=1 -DREQUIRE_CRYPTO_GNUTLS=1
cmake --build build -j$(nproc) -- -k
cd build
# Make sure char is signed by default -- see also test-unsigned-char
./qpdf/test_char_sign | grep 'char is signed'
# libtests automatically runs with all crypto providers.
env QPDF_TEST_COMPARE_IMAGES=1 ctest --verbose
# Run just qpdf tests with remaining crypto providers.

View File

@ -15,4 +15,8 @@ env CFLAGS="-funsigned-char" \
-DENABLE_QTC=1
cmake --build build -j$(nproc) -- -k
cd build
# Make sure char is unsigned by default. ./build-linux verifies that
# that build has char signed by default. That way we can be sure we
# are testing both ways.
./qpdf/test_char_sign | grep 'char is unsigned'
ctest --verbose

View File

@ -3,6 +3,7 @@ set(MAIN_CXX_PROGRAMS
fix-qdf
pdf_from_scratch
sizes
test_char_sign
test_driver
test_large_file
test_many_nulls

11
qpdf/test_char_sign.cc Normal file
View File

@ -0,0 +1,11 @@
#include <cstdio>
int main()
{
char ch = '\xf7';
if (ch < 0) {
printf("char is signed\n");
} else {
printf("char is unsigned\n");
}
return 0;
}