@@ -155,7 +155,7 @@ impl MachineChip for BgeuChip {
155155#[ cfg( test) ]
156156mod test {
157157 use crate :: {
158- chips:: { AddChip , CpuChip , RegisterMemCheckChip , SubChip } ,
158+ chips:: { AddChip , CpuChip , ProgramMemCheckChip , RegisterMemCheckChip , SubChip } ,
159159 test_utils:: assert_chip,
160160 trace:: {
161161 preprocessed:: PreprocessedBuilder , program:: iter_program_steps,
@@ -165,11 +165,12 @@ mod test {
165165
166166 use super :: * ;
167167 use nexus_vm:: {
168+ emulator:: { Emulator , HarvardEmulator } ,
168169 riscv:: { BasicBlock , BuiltinOpcode , Instruction , InstructionType , Opcode } ,
169170 trace:: k_trace_direct,
170171 } ;
171172
172- const LOG_SIZE : u32 = PreprocessedBuilder :: MIN_LOG_SIZE ;
173+ const LOG_SIZE : u32 = 8 ; // PreprocessedBuilder::MIN_LOG_SIZE makes the test more than a minute long
173174
174175 #[ rustfmt:: skip]
175176 fn setup_basic_block_ir ( ) -> Vec < BasicBlock > {
@@ -237,16 +238,25 @@ mod test {
237238
238239 #[ test]
239240 fn test_k_trace_constrained_bgeu_instructions ( ) {
240- type Chips = ( CpuChip , AddChip , SubChip , BgeuChip , RegisterMemCheckChip ) ;
241+ type Chips = (
242+ CpuChip ,
243+ AddChip ,
244+ SubChip ,
245+ BgeuChip ,
246+ RegisterMemCheckChip ,
247+ ProgramMemCheckChip ,
248+ ) ;
241249 let basic_block = setup_basic_block_ir ( ) ;
242250 let k = 1 ;
243251
244252 // Get traces from VM K-Trace interface
245253 let vm_traces = k_trace_direct ( & basic_block, k) . expect ( "Failed to create trace" ) ;
254+ let emulator = HarvardEmulator :: from_basic_blocks ( & basic_block) ;
255+ let program_memory = emulator. get_program_memory ( ) ;
246256
247257 // Trace circuit
248258 let mut traces = TracesBuilder :: new ( LOG_SIZE ) ;
249- let program_trace = ProgramTraces :: dummy ( LOG_SIZE ) ;
259+ let program_trace = ProgramTraces :: new ( LOG_SIZE , program_memory ) ;
250260 let mut side_note = SideNote :: new ( & program_trace) ;
251261 let program_steps = iter_program_steps ( & vm_traces, traces. num_rows ( ) ) ;
252262
@@ -266,6 +276,6 @@ mod test {
266276 preprocessed_column. fill_is_first32 ( ) ;
267277 preprocessed_column. fill_row_idx ( ) ;
268278 preprocessed_column. fill_timestamps ( ) ;
269- assert_chip :: < Chips > ( traces, Some ( preprocessed_column) , None ) ;
279+ assert_chip :: < Chips > ( traces, Some ( preprocessed_column) , Some ( program_trace ) ) ;
270280 }
271281}
0 commit comments