toolchain: ${{ matrix.toolchain }}
override: true
profile: minimal
- - name: Build on Rust ${{ matrix.toolchain }} with net-tokio
- if: "matrix.build-net-tokio && !matrix.coverage"
- run: cargo build --verbose --color always
- - name: Build on Rust ${{ matrix.toolchain }} with net-tokio and full code-linking for coverage generation
- if: matrix.coverage
- run: RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always
- - name: Build on Rust ${{ matrix.toolchain }}
- if: "! matrix.build-net-tokio"
- run: cargo build --verbose --color always -p lightning
- - name: Build Block Sync Clients on Rust ${{ matrix.toolchain }} with features
- if: "matrix.build-net-tokio && !matrix.coverage"
- run: |
- cd lightning-block-sync
- cargo build --verbose --color always --features rest-client
- cargo build --verbose --color always --features rpc-client
- cargo build --verbose --color always --features rpc-client,rest-client
- cargo build --verbose --color always --features rpc-client,rest-client,tokio
- cd ..
- - name: Build Block Sync Clients on Rust ${{ matrix.toolchain }} with features and full code-linking for coverage generation
- if: matrix.coverage
- run: |
- cd lightning-block-sync
- RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rest-client
- RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client
- RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client
- RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client,tokio
- cd ..
+ # - name: Build on Rust ${{ matrix.toolchain }} with net-tokio
+ # if: "matrix.build-net-tokio && !matrix.coverage"
+ # run: cargo build --verbose --color always
+ # - name: Build on Rust ${{ matrix.toolchain }} with net-tokio and full code-linking for coverage generation
+ # if: matrix.coverage
+ # run: RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always
+ # - name: Build on Rust ${{ matrix.toolchain }}
+ # if: "! matrix.build-net-tokio"
+ # run: cargo build --verbose --color always -p lightning
+ # - name: Build Block Sync Clients on Rust ${{ matrix.toolchain }} with features
+ # if: "matrix.build-net-tokio && !matrix.coverage"
+ # run: |
+ # cd lightning-block-sync
+ # cargo build --verbose --color always --features rest-client
+ # cargo build --verbose --color always --features rpc-client
+ # cargo build --verbose --color always --features rpc-client,rest-client
+ # cargo build --verbose --color always --features rpc-client,rest-client,tokio
+ # cd ..
+ # - name: Build Block Sync Clients on Rust ${{ matrix.toolchain }} with features and full code-linking for coverage generation
+ # if: matrix.coverage
+ # run: |
+ # cd lightning-block-sync
+ # RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rest-client
+ # RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client
+ # RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client
+ # RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client,tokio
+ # cd ..
- name: Test on Rust ${{ matrix.toolchain }} with net-tokio
if: "matrix.build-net-tokio && !matrix.coverage"
- run: cargo test --verbose --color always
- - name: Test on Rust ${{ matrix.toolchain }} with net-tokio and full code-linking for coverage generation
- if: matrix.coverage
- run: RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always
- - name: Test on Rust ${{ matrix.toolchain }}
- if: "! matrix.build-net-tokio"
- run: cargo test --verbose --color always -p lightning
- - name: Test Block Sync Clients on Rust ${{ matrix.toolchain }} with features
- if: "matrix.build-net-tokio && !matrix.coverage"
- run: |
- cd lightning-block-sync
- cargo test --verbose --color always --features rest-client
- cargo test --verbose --color always --features rpc-client
- cargo test --verbose --color always --features rpc-client,rest-client
- cargo test --verbose --color always --features rpc-client,rest-client,tokio
- cd ..
- - name: Test Block Sync Clients on Rust ${{ matrix.toolchain }} with features and full code-linking for coverage generation
- if: matrix.coverage
- run: |
- cd lightning-block-sync
- RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rest-client
- RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client
- RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client,rest-client
- RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client,rest-client,tokio
- cd ..
+ run: cargo test --verbose --color always -- --nocapture test_backgr
+ # - name: Test on Rust ${{ matrix.toolchain }} with net-tokio and full code-linking for coverage generation
+ # if: matrix.coverage
+ # run: RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always
+ # - name: Test on Rust ${{ matrix.toolchain }}
+ # if: "! matrix.build-net-tokio"
+ # run: cargo test --verbose --color always -p lightning
+ # - name: Test Block Sync Clients on Rust ${{ matrix.toolchain }} with features
+ # if: "matrix.build-net-tokio && !matrix.coverage"
+ # run: |
+ # cd lightning-block-sync
+ # cargo test --verbose --color always --features rest-client
+ # cargo test --verbose --color always --features rpc-client
+ # cargo test --verbose --color always --features rpc-client,rest-client
+ # cargo test --verbose --color always --features rpc-client,rest-client,tokio
+ # cd ..
+ # - name: Test Block Sync Clients on Rust ${{ matrix.toolchain }} with features and full code-linking for coverage generation
+ # if: matrix.coverage
+ # run: |
+ # cd lightning-block-sync
+ # RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rest-client
+ # RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client
+ # RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client,rest-client
+ # RUSTFLAGS="-C link-dead-code" cargo test --verbose --color always --features rpc-client,rest-client,tokio
+ # cd ..
- name: Install deps for kcov
if: matrix.coverage
run: |
mkdir -p "target/cov/$(basename $file)";
./kcov-build/usr/local/bin/kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file";
done
- - name: Upload coverage
- if: matrix.coverage
- uses: codecov/codecov-action@v1
- with:
- # Could you use this to fake the coverage report for your PR? Sure.
- # Will anyone be impressed by your amazing coverage? No
- # Maybe if codecov wasn't broken we wouldn't need to do this...
- token: f421b687-4dc2-4387-ac3d-dc3b2528af57
- fail_ci_if_error: true
+ # - name: Upload coverage
+ # if: matrix.coverage
+ # uses: codecov/codecov-action@v1
+ # with:
+ # # Could you use this to fake the coverage report for your PR? Sure.
+ # # Will anyone be impressed by your amazing coverage? No
+ # # Maybe if codecov wasn't broken we wouldn't need to do this...
+ # token: f421b687-4dc2-4387-ac3d-dc3b2528af57
+ # fail_ci_if_error: true
benchmark:
runs-on: ubuntu-latest
// Initiate the background processors to watch each node.
let data_dir = nodes[0].persister.get_data_dir();
- let callback = move |node: &ChannelManager<InMemoryChannelKeys, Arc<ChainMonitor>, Arc<test_utils::TestBroadcaster>, Arc<KeysManager>, Arc<test_utils::TestFeeEstimator>, Arc<test_utils::TestLogger>>| FilesystemPersister::persist_manager(data_dir.clone(), node);
+ let callback = move |node: &ChannelManager<InMemoryChannelKeys, Arc<ChainMonitor>, Arc<test_utils::TestBroadcaster>, Arc<KeysManager>, Arc<test_utils::TestFeeEstimator>, Arc<test_utils::TestLogger>>| {
+ println!("VMW: callback being invoked");
+ FilesystemPersister::persist_manager(data_dir.clone(), node)
+ };
let bg_processor = BackgroundProcessor::start(callback, nodes[0].node.clone(), nodes[0].logger.clone());
// Go through the channel creation process until each node should have something persisted.
let tx = open_channel!(nodes[0], nodes[1], 100000);
+ let mut num_calls = 0;
macro_rules! check_persisted_data {
($node: expr, $filepath: expr, $expected_bytes: expr) => {
match $node.write(&mut $expected_bytes) {
loop {
match std::fs::read($filepath) {
Ok(bytes) => {
+ if num_calls < 100 {
+ println!("VMW: bytes of node: {}, bytes on disk: {}", $expected_bytes.len(), bytes.len());
+ num_calls += 1;
+ }
if bytes == $expected_bytes {
break
} else {
+ // println!("VMW: continuing 1");
continue
}
},
- Err(_) => continue
+ Err(_) => {
+ println!("VMW: continuing 2");
+ continue
+ }
}
}
},
// Check that the initial channel manager data is persisted as expected.
let filepath = get_full_filepath("test_background_processor_persister_0".to_string(), "manager".to_string());
let mut expected_bytes = Vec::new();
+ println!("VMW: about to check for persisted 1...");
check_persisted_data!(nodes[0].node, filepath.clone(), expected_bytes);
loop {
+ println!("VMW: checking condvar 1");
if !nodes[0].node.get_persistence_condvar_value() { break }
}
// Check that the force-close updates are persisted.
let mut expected_bytes = Vec::new();
+ println!("VMW: about to check for persisted 2...");
check_persisted_data!(nodes[0].node, filepath.clone(), expected_bytes);
loop {
+ println!("VMW: checking condvar 2");
if !nodes[0].node.get_persistence_condvar_value() { break }
}