1
1
use std:: { collections:: BTreeMap , io:: Write , path:: Path } ;
2
2
3
- use acvm:: { PartialWitnessGenerator , ProofSystemCompiler } ;
3
+ use acvm:: { pwg :: block :: Blocks , PartialWitnessGenerator , ProofSystemCompiler } ;
4
4
use clap:: Args ;
5
5
use noirc_driver:: { CompileOptions , Driver } ;
6
6
use noirc_frontend:: node_interner:: FuncId ;
@@ -79,6 +79,7 @@ fn run_test(
79
79
config : & CompileOptions ,
80
80
) -> Result < ( ) , CliError > {
81
81
let backend = crate :: backends:: ConcreteBackend ;
82
+ let mut blocks = Blocks :: default ( ) ;
82
83
83
84
let program = driver
84
85
. compile_no_check ( config, main)
@@ -88,13 +89,20 @@ fn run_test(
88
89
89
90
// Run the backend to ensure the PWG evaluates functions like std::hash::pedersen,
90
91
// otherwise constraints involving these expressions will not error.
91
- if let Err ( error) = backend. solve ( & mut solved_witness, program. circuit . opcodes ) {
92
- let writer = StandardStream :: stderr ( ColorChoice :: Always ) ;
93
- let mut writer = writer. lock ( ) ;
94
- writer. set_color ( ColorSpec :: new ( ) . set_fg ( Some ( Color :: Red ) ) ) . ok ( ) ;
95
- writeln ! ( writer, "failed" ) . ok ( ) ;
96
- writer. reset ( ) . ok ( ) ;
97
- return Err ( error. into ( ) ) ;
92
+ match backend. solve ( & mut solved_witness, & mut blocks, program. circuit . opcodes ) {
93
+ Ok ( ( unresolved_opcodes, oracles) ) => {
94
+ if !unresolved_opcodes. is_empty ( ) || !oracles. is_empty ( ) {
95
+ todo ! ( "Add oracle support to nargo test" )
96
+ }
97
+ Ok ( ( ) )
98
+ }
99
+ Err ( error) => {
100
+ let writer = StandardStream :: stderr ( ColorChoice :: Always ) ;
101
+ let mut writer = writer. lock ( ) ;
102
+ writer. set_color ( ColorSpec :: new ( ) . set_fg ( Some ( Color :: Red ) ) ) . ok ( ) ;
103
+ writeln ! ( writer, "failed" ) . ok ( ) ;
104
+ writer. reset ( ) . ok ( ) ;
105
+ Err ( error. into ( ) )
106
+ }
98
107
}
99
- Ok ( ( ) )
100
108
}
0 commit comments