Merge pull request #1079 from sfackler/new-rustc

Run most tests on a modern rust distribution
This commit is contained in:
Steven Fackler 2019-03-11 21:44:29 -07:00 committed by GitHub
commit 546405dc58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 86 additions and 65 deletions

View File

@ -17,8 +17,14 @@ jobs:
no_run:
type: boolean
default: false
image:
type: string
default: 1.33.0
minimal_build:
type: boolean
default: false
docker:
- image: rust:1.24.1
- image: rust:<< parameters.image >>
environment:
RUST_BACKTRACE: 1
OPENSSL_DIR: /opt/openssl
@ -50,62 +56,62 @@ jobs:
esac
rustup target add << parameters.target >>
- restore_cache:
key: openssl-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>
- run: |
if [ -d "$OPENSSL_DIR" ]; then
exit 0
fi
- unless:
condition: << parameters.vendored >>
steps:
- restore_cache:
key: openssl-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>
- run: |
if [ -d "$OPENSSL_DIR" ]; then
exit 0
fi
case "<< parameters.library >>" in
"libressl")
URL="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-<< parameters.version >>.tar.gz"
;;
"openssl")
URL="https://openssl.org/source/openssl-<< parameters.version >>.tar.gz"
;;
"")
exit 0
;;
esac
case "<< parameters.library >>" in
"libressl")
URL="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-<< parameters.version >>.tar.gz"
;;
"openssl")
URL="https://openssl.org/source/openssl-<< parameters.version >>.tar.gz"
;;
esac
case "<< parameters.target >>" in
"x86_64-unknown-linux-gnu")
OS_COMPILER=linux-x86_64
OS_FLAGS=""
;;
"i686-unknown-linux-gnu")
OS_COMPILER=linux-elf
OS_FLAGS=-m32
;;
"arm-unknown-linux-gnueabihf")
OS_COMPILER=linux-armv4
OS_FLAGS=""
export AR=arm-linux-gnueabihf-ar
export CC=arm-linux-gnueabihf-gcc
;;
esac
case "<< parameters.target >>" in
"x86_64-unknown-linux-gnu")
OS_COMPILER=linux-x86_64
OS_FLAGS=""
;;
"i686-unknown-linux-gnu")
OS_COMPILER=linux-elf
OS_FLAGS=-m32
;;
"arm-unknown-linux-gnueabihf")
OS_COMPILER=linux-armv4
OS_FLAGS=""
export AR=arm-linux-gnueabihf-ar
export CC=arm-linux-gnueabihf-gcc
;;
esac
mkdir /tmp/build
cd /tmp/build
mkdir /tmp/build
cd /tmp/build
curl -L $URL | tar --strip-components=1 -xzf -
curl -L $URL | tar --strip-components=1 -xzf -
case "<< parameters.library >>" in
"openssl")
./Configure --prefix=$OPENSSL_DIR $OS_COMPILER -fPIC -g $OS_FLAGS no-shared
;;
"libressl")
./configure --prefix=$OPENSSL_DIR --disable-shared --with-pic
;;
esac
case "<< parameters.library >>" in
"openssl")
./Configure --prefix=$OPENSSL_DIR $OS_COMPILER -fPIC -g $OS_FLAGS no-shared
;;
"libressl")
./configure --prefix=$OPENSSL_DIR --disable-shared --with-pic
;;
esac
make
make install_sw
- save_cache:
key: openssl-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>
paths:
- /opt/openssl
make
make install_sw
- save_cache:
key: openssl-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>
paths:
- /opt/openssl
- restore_cache:
key: registry
- run: cargo generate-lockfile
@ -114,12 +120,15 @@ jobs:
paths:
- /usr/local/cargo/registry/index
- restore_cache:
key: deps-1.24.1-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>-{{ checksum "Cargo.lock" }}
- run: |
cargo run \
--manifest-path=systest/Cargo.toml \
<<# parameters.vendored >>--features vendored<</ parameters.vendored >> \
--target << parameters.target >>
key: deps-<< parameters.image >>-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>-{{ checksum "Cargo.lock" }}
- unless:
condition: << parameters.minimal_build >>
steps:
- run: |
cargo run \
--manifest-path=systest/Cargo.toml \
<<# parameters.vendored >>--features vendored<</ parameters.vendored >> \
--target << parameters.target >>
- run: |
ulimit -c unlimited
export PATH=$OPENSSL_DIR/bin:$PATH
@ -129,7 +138,7 @@ jobs:
--target << parameters.target >> \
<<# parameters.no_run >>--no-run<</ parameters.no_run >>
- save_cache:
key: deps-1.24.1-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>-{{ checksum "Cargo.lock" }}
key: deps-<< parameters.image >>-<< parameters.target >>-<< parameters.library >>-<< parameters.version >>-{{ checksum "Cargo.lock" }}
paths:
- /usr/local/cargo/registry/cache
- target
@ -147,6 +156,9 @@ jobs:
vendored:
type: boolean
default: false
image:
type: string
default: 1.33.0
macos:
xcode: "9.0"
environment:
@ -155,11 +167,11 @@ jobs:
- checkout
- run: sudo mkdir /opt
- run: sudo chown -R $USER /usr/local/ /opt
- run: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain 1.24.1
- run: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain << parameters.image >>
- run: sudo ln -s ~/.cargo/bin/* /usr/local/bin
- run: cargo generate-lockfile
- restore_cache:
key: deps-1.24.1-macos-<< parameters.vendored >>-{{ checksum "Cargo.lock" }}
key: deps-<< parameters.image >>-macos-<< parameters.vendored >>-{{ checksum "Cargo.lock" }}
- run: |
cargo run \
--manifest-path=systest/Cargo.toml \
@ -170,7 +182,7 @@ jobs:
--manifest-path=openssl/Cargo.toml \
<<# parameters.vendored >> --features vendored <</ parameters.vendored >>
- save_cache:
key: deps-1.24.1-macos-<< parameters.vendored >>-{{ checksum "Cargo.lock" }}
key: deps-<< parameters.image >>-macos-<< parameters.vendored >>-{{ checksum "Cargo.lock" }}
paths:
- ~/.cargo/registry/cache
- target
@ -191,6 +203,12 @@ openssl_101: &openssl_101
workflows:
test:
jobs:
- linux:
name: mimimal-version
target: x86_64-unknown-linux-musl
vendored: true
image: 1.24.1
minimal_build: true
- linux:
name: musl-vendored
target: x86_64-unknown-linux-musl

View File

@ -1,10 +1,10 @@
environment:
SSL_CERT_FILE: "C:\\OpenSSL\\cacert.pem"
matrix:
# 1.1.0, 64/32 bit
# 1.1.1, 64 bit
- TARGET: x86_64-pc-windows-msvc
BITS: 64
OPENSSL_VERSION: 1_1_0j
OPENSSL_VERSION: 1_1_1b
OPENSSL_DIR: C:\OpenSSL
# 1.0.2, 64/32 bit
@ -16,6 +16,8 @@ environment:
BITS: 32
OPENSSL_VERSION: 1_0_2r
OPENSSL_DIR: C:\OpenSSL
# vcpkg
- TARGET: x86_64-pc-windows-msvc
VCPKG_DEFAULT_TRIPLET: x64-windows
VCPKGRS_DYNAMIC: 1

View File

@ -247,6 +247,7 @@ due to this version mismatch.
}
// parses a string that looks like "0x100020cfL"
#[allow(deprecated)] // trim_right_matches is now trim_end_matches
fn parse_version(version: &str) -> u64 {
// cut off the 0x prefix
assert!(version.starts_with("0x"));

View File

@ -8,7 +8,7 @@ libc = "0.2"
openssl-sys = { path = "../openssl-sys" }
[build-dependencies]
ctest = "0.1"
ctest = "0.2"
[features]
vendored = ['openssl-sys/vendored']

View File

@ -67,7 +67,7 @@ fn main() {
cfg.header("openssl/cms.h");
}
cfg.type_name(|s, is_struct| {
cfg.type_name(|s, is_struct, _is_union| {
// Add some `*` on some callback parameters to get function pointer to
// typecheck in C, especially on MSVC.
if s == "PasswordCallback" {