@@ -361,9 +361,6 @@ Resource Optional Too Large Loaded Details
361361outer1 NO NO YES Structure of size 1
362362outer2 NO NO YES Structure of size 1
363363inner NO NO NO Uninitialized Archive InnerArchive
364- |
365- |-> Flatdata Archive: InnerArchive
366- inner NO NO NO Uninitialized Structure AStruct
367364================================================================================
368365)data" ;
369366
@@ -395,9 +392,44 @@ Resource Optional Too Large Loaded Details
395392================================================================================
396393outer NO NO YES Structure of size 1
397394archive_resource YES NO NO Uninitialized Archive InnerArchive
395+ ================================================================================
396+ )data" ;
397+
398+ REQUIRE ( outer.describe ( ) == expected );
399+ }
400+
401+ TEMPLATE_TEST_CASE_METHOD (
402+ Fixture, " Sub-archives are described" , " [GeneratedArchive]" , std::true_type, std::false_type )
403+ {
404+ {
405+ auto outer_builder = OuterArchiveBuilder::open ( Fixture< TestType >::storage );
406+ CHECK ( outer_builder );
407+
408+ flatdata::Struct< AStruct > o;
409+ outer_builder.set_outer1 ( *o );
410+ outer_builder.set_outer2 ( *o );
411+
412+ auto inner_builder = outer_builder.inner ( );
413+ CHECK ( inner_builder );
414+ inner_builder.set_inner ( *o );
415+ }
416+
417+ auto outer = OuterArchive::open ( Fixture< TestType >::storage );
418+ REQUIRE ( outer.is_open ( ) );
419+ REQUIRE ( outer.inner ( ).is_open ( ) );
420+
421+ const char * const expected
422+ = R"data( ================================================================================
423+ Flatdata Archive: OuterArchive
424+ ================================================================================
425+ Resource Optional Too Large Loaded Details
426+ ================================================================================
427+ outer1 NO NO YES Structure of size 1
428+ outer2 NO NO YES Structure of size 1
429+ inner NO NO YES
398430|
399431|-> Flatdata Archive: InnerArchive
400- inner NO NO NO Uninitialized Structure AStruct
432+ inner NO NO YES Structure of size 1
401433================================================================================
402434)data" ;
403435
@@ -531,16 +563,6 @@ TEST_CASE( "Describe ouputs fatal errors", "[GeneratedArchive]" )
531563 R"data( ================================================================================
532564FATAL: Resource storage not initialized. Please check archive path.
533565================================================================================
534- Flatdata Archive: SimpleResources
535- ================================================================================
536- Resource Optional Too Large Loaded Details
537- ================================================================================
538- object_resource NO NO NO Uninitialized Structure AStruct
539- vector_resource NO NO NO Uninitialized Array
540- multivector_resource NO NO NO Uninitialized MultiArray
541- raw_data_resource NO NO NO Uninitialized Raw data
542- optional_resource YES NO NO Uninitialized Raw data
543- ================================================================================
544566)data" ;
545567
546568 REQUIRE ( archive.describe ( ) == expected );
@@ -604,24 +626,6 @@ FATAL: Archive signature does not match software expectations.
604626 "}"
605627 "}"
606628...
607- ================================================================================
608- FATAL: Archive initialization failed. Failed loading mandatory resources.
609- ================================================================================
610- Flatdata Archive: OutermostArchive
611- ================================================================================
612- Resource Optional Too Large Loaded Details
613- ================================================================================
614- outermost NO NO NO Uninitialized Structure AStruct
615- outer NO NO NO Uninitialized Archive OuterArchive
616- |
617- |-> Flatdata Archive: OuterArchive
618- outer1 NO NO NO Uninitialized Structure AStruct
619- outer2 NO NO NO Uninitialized Structure AStruct
620- inner NO NO NO Uninitialized Archive InnerArchive
621- |
622- |-> Flatdata Archive: InnerArchive
623- inner NO NO NO Uninitialized Structure AStruct
624- ================================================================================
625629)" ;
626630 REQUIRE ( description == expectation );
627631}
@@ -668,19 +672,6 @@ FATAL: Archive signature does not match software expectations.
668672 "}"
669673 "}"
670674...
671- ================================================================================
672- FATAL: Archive initialization failed. Failed loading mandatory resources.
673- ================================================================================
674- Flatdata Archive: OuterWithOptional
675- ================================================================================
676- Resource Optional Too Large Loaded Details
677- ================================================================================
678- outer NO NO NO Uninitialized Structure AStruct
679- archive_resource YES NO NO Uninitialized Archive InnerArchive
680- |
681- |-> Flatdata Archive: InnerArchive
682- inner NO NO NO Uninitialized Structure AStruct
683- ================================================================================
684675)" ;
685676 REQUIRE ( description == expectation );
686677}
0 commit comments