Run with mutagen on travis.
[rust-lightning] / .travis.yml
index 557170ff640cdb7c54ef53f1a51b14980ad2ffc8..85408e826ff998fc7f31c67932c491c20846d3b4 100644 (file)
@@ -1,7 +1,7 @@
 language: rust
 rust:
   - stable
-  - beta
+  - nightly
   # 1.22.0 is MSRV for rust-lightning in general:
   - 1.22.0
   # 1.34.2 is Debian stable, and we use it to run fuzzing on:
@@ -15,7 +15,7 @@ before_install:
   - sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev libiberty-dev
 
 script:
-     # Support lightning-net-tokio only on Rust stable, beta, and 1.39.0
+     # Support lightning-net-tokio only on Rust stable, nightly, and 1.39.0
      - if [ "$(rustup show | grep default | grep '1.39.0')" != "" ]; then export BUILD_NET_TOKIO=1; fi
      - if [ "$(rustup show | grep default | grep '1\.')" == "" ]; then export BUILD_NET_TOKIO=1; fi
      # Build the appropriate workspace(s)
@@ -27,6 +27,14 @@ script:
      - if [ "$BUILD_NET_TOKIO" != "1" ]; then RUSTFLAGS="-C link-dead-code" cargo test --verbose -p lightning; fi
      # Run lightning workspace fuzz tests for Rust 1.34.2
      - if [ "$(rustup show | grep default | grep 1.34.2)" != "" ]; then cd fuzz && cargo test --verbose && ./travis-fuzz.sh; fi
+     # Run mutagen on nightly with TheBlueMatt's fork which exits with non-0 status
+     # if any mutations resulted in anything except test failures to prevent regressions.
+     - if [ "$(rustup show | grep default | grep nightly)" != "" ]; then
+           rm -rf mutagen && git clone https://github.com/TheBlueMatt/mutagen &&
+           cargo install --force --path mutagen/mutagen-runner &&
+           cd lightning &&
+           ~/.cargo/bin/cargo-mutagen --features mutation_testing; fi
+     # Generate codecov on stable
      - if [ "$(rustup show | grep default | grep stable)" != "" ]; then
            wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
            tar xzf master.tar.gz &&