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

View File

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

View File

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

View File

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

View File

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