@@ -531,57 +531,51 @@ let test_makearray_dynamic ~uninit ~local ty =
531
531
);
532
532
(* Blits currently only work for GC ignorable values *)
533
533
line " (* 7. Overlapping blits *)" ;
534
- (if ty.Ty. is_gc_ignorable then
535
- iter " blit_offsets size" " ofs1" ~debug_exprs (fun ~debug_exprs ->
536
- iter " blit_offsets size" " ofs2" ~debug_exprs (fun ~debug_exprs ->
537
- let lens = " blit_lens ~ofs1 ~ofs2 ~size1:size ~size2:size" in
538
- iter lens " len" ~debug_exprs (fun ~debug_exprs ->
539
- line " unsafe_blit a ofs1 a ofs2 len;" ;
540
- for_i_below_size ~debug_exprs (fun ~debug_exprs ->
541
- line " let expected_src_i =" ;
542
- with_indent (fun () ->
543
- line " if i >= ofs2 && i < ofs2 + len then i - ofs2 + ofs1 else i"
544
- );
545
- line " in" ;
546
- seq_assert ~debug_exprs " eq (get a i) (mk_value expected_src_i)"
547
- );
548
- line " (* Reset array *)" ;
549
- for_i_below_size ~debug_exprs (fun ~debug_exprs ->
550
- line " set a i (mk_value i);"
551
- )
552
- );
553
- );
554
- )
555
- else
556
- line " (* Test omitted because type is not GC-ignorable *)" );
534
+ iter " blit_offsets size" " ofs1" ~debug_exprs (fun ~debug_exprs ->
535
+ iter " blit_offsets size" " ofs2" ~debug_exprs (fun ~debug_exprs ->
536
+ let lens = " blit_lens ~ofs1 ~ofs2 ~size1:size ~size2:size" in
537
+ iter lens " len" ~debug_exprs (fun ~debug_exprs ->
538
+ line " unsafe_blit a ofs1 a ofs2 len;" ;
539
+ for_i_below_size ~debug_exprs (fun ~debug_exprs ->
540
+ line " let expected_src_i =" ;
541
+ with_indent (fun () ->
542
+ line " if i >= ofs2 && i < ofs2 + len then i - ofs2 + ofs1 else i"
543
+ );
544
+ line " in" ;
545
+ seq_assert ~debug_exprs " eq (get a i) (mk_value expected_src_i)"
546
+ );
547
+ line " (* Reset array *)" ;
548
+ for_i_below_size ~debug_exprs (fun ~debug_exprs ->
549
+ line " set a i (mk_value i);"
550
+ )
551
+ );
552
+ );
553
+ );
557
554
line " Gc.compact ();" ;
558
555
let test_blit_to ~to_local =
559
- if ty.Ty. is_gc_ignorable then (
560
- iter " sizes" " size2" ~debug_exprs (fun ~debug_exprs ->
561
- iter " blit_offsets size" " ofs1" ~debug_exprs (fun ~debug_exprs ->
562
- iter " blit_offsets size2" " ofs2" ~debug_exprs (fun ~debug_exprs ->
563
- let lens = " blit_lens ~ofs1 ~ofs2 ~size1:size ~size2" in
564
- iter lens " len" ~debug_exprs (fun ~debug_exprs ->
565
- (if to_local then
566
- line " let local_ a2 = makearray_dynamic_local size2 %s in" (ty.Ty. value_code 0 )
567
- else
568
- line " let a2 = makearray_dynamic size2 %s in" (ty.Ty. value_code 0 ));
569
- line " unsafe_blit a ofs1 a2 ofs2 len;" ;
570
- for_ " i" ~from: " 0" ~to_: " size2 - 1" ~debug_exprs (fun ~debug_exprs ->
571
- line " let expected_src_i =" ;
572
- with_indent (fun () ->
573
- line " if i >= ofs2 && i < ofs2 + len then i - ofs2 + ofs1 else 0"
574
- );
575
- line " in" ;
576
- seq_assert ~debug_exprs " eq (get a2 i) (mk_value expected_src_i)"
577
- )
556
+ iter " sizes" " size2" ~debug_exprs (fun ~debug_exprs ->
557
+ iter " blit_offsets size" " ofs1" ~debug_exprs (fun ~debug_exprs ->
558
+ iter " blit_offsets size2" " ofs2" ~debug_exprs (fun ~debug_exprs ->
559
+ let lens = " blit_lens ~ofs1 ~ofs2 ~size1:size ~size2" in
560
+ iter lens " len" ~debug_exprs (fun ~debug_exprs ->
561
+ (if to_local then
562
+ line " let local_ a2 = makearray_dynamic_local size2 %s in" (ty.Ty. value_code 0 )
563
+ else
564
+ line " let a2 = makearray_dynamic size2 %s in" (ty.Ty. value_code 0 ));
565
+ line " unsafe_blit a ofs1 a2 ofs2 len;" ;
566
+ for_ " i" ~from: " 0" ~to_: " size2 - 1" ~debug_exprs (fun ~debug_exprs ->
567
+ line " let expected_src_i =" ;
568
+ with_indent (fun () ->
569
+ line " if i >= ofs2 && i < ofs2 + len then i - ofs2 + ofs1 else 0"
570
+ );
571
+ line " in" ;
572
+ seq_assert ~debug_exprs " eq (get a2 i) (mk_value expected_src_i)"
578
573
)
579
574
)
580
575
)
581
- );
582
- line " Gc.compact ();"
583
- ) else
584
- line " (* Test omitted because type is not GC-ignorable *)"
576
+ )
577
+ );
578
+ line " Gc.compact ();"
585
579
in
586
580
line " (* 8. Blits to heap arrays *)" ;
587
581
test_blit_to ~to_local: false ;
0 commit comments