Merge #922: Add mingw32-w64/wine CI build

ed5a199bed65bf084f34ce18d35807d31a1c75bb tests: fopen /dev/urandom in binary mode (Tim Ruffing)
4dc37bf81b55b9a3ffcf09f7a212436d25844710 Add mingw32-w64/wine CI build (Pieter Wuille)

Pull request description:

ACKs for top commit:
  real-or-random:
    ACK ed5a199bed65bf084f34ce18d35807d31a1c75bb
  jonasnick:
    utACK ed5a199bed65bf084f34ce18d35807d31a1c75bb

Tree-SHA512: 45afc394e3a200f7c020426a66f78df8d12827b9dc91bb04dc1708c3ad5cdc4e7d20554d6d5c046d288552f4e722d4fe8a0f3234b662e7351a4d27aaaeb0d5c0
This commit is contained in:
Jonas Nick 2021-05-02 12:57:34 +00:00
commit 34388af6b6
No known key found for this signature in database
GPG Key ID: 4861DBF262123605
4 changed files with 38 additions and 3 deletions

View File

@ -196,3 +196,24 @@ task:
- rm /etc/ld.so.cache
- ./ci/cirrus.sh
<< : *CAT_LOGS
task:
name: "x86_64 (mingw32-w64): Windows (Debian stable, Wine)"
container:
dockerfile: ci/linux-debian.Dockerfile
cpu: 1
memory: 1G
env:
WINE_CMD: wine64-stable
HOST: x86_64-w64-mingw32
BUILD:
WITH_VALGRIND: no
ECDH: yes
RECOVERY: yes
EXPERIMENTAL: yes
SCHNORRSIG: yes
CTIMETEST: no
<< : *MERGE_BASE
test_script:
- ./ci/cirrus.sh
<< : *CAT_LOGS

View File

@ -25,7 +25,7 @@ valgrind --version || true
make
# Print information about binaries so that we can see that the architecture is correct
file *tests || true
file *tests* || true
file bench_* || true
file .libs/* || true
@ -47,6 +47,12 @@ then
$QEMU_CMD ./exhaustive_tests
fi
if [ -n "$WINE_CMD" ]
then
$WINE_CMD ./tests 16
$WINE_CMD ./exhaustive_tests
fi
if [ "$BENCH" = "yes" ]
then
# Using the local `libtool` because on macOS the system's libtool has nothing to do with GNU libtool
@ -59,6 +65,10 @@ then
then
EXEC="$EXEC valgrind --error-exitcode=42"
fi
if [ -n "$WINE_CMD" ]
then
EXEC="$WINE_CMD"
fi
# This limits the iterations in the benchmarks below to ITER iterations.
export SECP256K1_BENCH_ITERS="$ITERS"
{

View File

@ -10,4 +10,8 @@ RUN apt-get install --no-install-recommends --no-upgrade -y \
make automake libtool pkg-config dpkg-dev valgrind qemu-user \
gcc clang libc6-dbg \
gcc-i686-linux-gnu libc6-dev-i386-cross libc6-dbg:i386 \
gcc-s390x-linux-gnu libc6-dev-s390x-cross libc6-dbg:s390x
gcc-s390x-linux-gnu libc6-dev-s390x-cross libc6-dbg:s390x \
wine gcc-mingw-w64-x86-64
# Run a dummy command in wine to make it set up configuration
RUN wine64-stable xcopy || true

View File

@ -127,7 +127,7 @@ static void secp256k1_testrand_init(const char* hexseed) {
pos++;
}
} else {
FILE *frand = fopen("/dev/urandom", "r");
FILE *frand = fopen("/dev/urandom", "rb");
if ((frand == NULL) || fread(&seed16, 1, sizeof(seed16), frand) != sizeof(seed16)) {
uint64_t t = time(NULL) * (uint64_t)1337;
fprintf(stderr, "WARNING: could not read 16 bytes from /dev/urandom; falling back to insecure PRNG\n");