diff --git a/src/builder.rs b/src/builder.rs index f367c04..c9bd89e 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -161,7 +161,7 @@ impl SymbolBuilder> for DefaultBuilder { target: & as Resource>::Artifact, (cert_chain, key): ::Artifact, ) -> Self::Symbol { - ConcatSymbol::new([cert_chain.0, key.0], target.0.clone()) + ConcatSymbol::new([key.0, cert_chain.0], target.0.clone()) } } diff --git a/src/setup.rs b/src/setup.rs index ebf4e71..2ea075a 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -128,7 +128,9 @@ macro_rules! runnable_for_tuple { #[allow(unused)] fn run<_R: SymbolRunner>(&self, runner: &_R, force: bool) -> Result> { let ($($name,)*) = self; - Ok($(runner.run_symbol($name, force)? || )* false) + let mut result = false; + $(result = runner.run_symbol($name, force)? || result;)* + Ok(result) } } ); @@ -342,4 +344,23 @@ mod test { setup.add(TestResource("A", "B")).unwrap(); assert_eq!(*count.borrow(), 0); } + + #[test] + fn correctly_handles_symbol_tuples() { + let (count, setup) = get_setup(); + setup.run_symbol((TestSymbol { reached: false }, TestSymbol { reached: false }), false).unwrap(); + assert_eq!(*count.borrow(), 2); + + let (count, setup) = get_setup(); + setup.run_symbol((TestSymbol { reached: true }, TestSymbol { reached: false }), false).unwrap(); + assert_eq!(*count.borrow(), 1); + + let (count, setup) = get_setup(); + setup.run_symbol((TestSymbol { reached: false }, TestSymbol { reached: true }), false).unwrap(); + assert_eq!(*count.borrow(), 1); + + let (count, setup) = get_setup(); + setup.run_symbol((TestSymbol { reached: true }, TestSymbol { reached: true }), true).unwrap(); + assert_eq!(*count.borrow(), 2); + } }