@@ -4004,4 +4004,64 @@ TEST_CASE( "append_mode", "[serial]" )
40044004 {
40054005 append_mode ( t );
40064006 }
4007+ }
4008+
4009+ void append_mode_filebased ( std::string const & extension )
4010+ {
4011+ std::string jsonConfig = R"END(
4012+ {
4013+ "adios2":
4014+ {
4015+ "schema": 20210209,
4016+ "engine":
4017+ {
4018+ "usesteps" : true
4019+ }
4020+ }
4021+ })END" ;
4022+ auto writeSomeIterations = []( WriteIterations && writeIterations,
4023+ std::vector< uint64_t > indices )
4024+ {
4025+ for ( auto index : indices )
4026+ {
4027+ auto it = writeIterations[ index ];
4028+ auto dataset = it.meshes [ " E" ][ " x" ];
4029+ dataset.resetDataset ( { Datatype::INT, { 1 } } );
4030+ dataset.makeConstant < int >( 0 );
4031+ // test that it works without closing too
4032+ it.close ();
4033+ }
4034+ };
4035+ {
4036+ Series write (
4037+ " ../samples/append_%T." + extension, Access::CREATE, jsonConfig );
4038+ writeSomeIterations (
4039+ write.writeIterations (), std::vector< uint64_t >{ 0 , 1 } );
4040+ }
4041+ {
4042+ Series write (
4043+ " ../samples/append_%T." + extension, Access::APPEND, jsonConfig );
4044+ writeSomeIterations (
4045+ write.writeIterations (), std::vector< uint64_t >{ 4 , 5 } );
4046+ write.flush ();
4047+ }
4048+ {
4049+ Series write (
4050+ " ../samples/append_%T." + extension, Access::APPEND, jsonConfig );
4051+ writeSomeIterations (
4052+ write.writeIterations (), std::vector< uint64_t >{ 2 , 3 } );
4053+ write.flush ();
4054+ }
4055+ {
4056+ Series read ( " ../samples/append_%T." + extension, Access::READ_ONLY );
4057+ REQUIRE ( read.iterations .size () == 6 );
4058+ }
4059+ }
4060+
4061+ TEST_CASE ( " append_mode_filebased" , " [serial]" )
4062+ {
4063+ for ( auto const & t : testedFileExtensions () )
4064+ {
4065+ append_mode_filebased ( t );
4066+ }
40074067}
0 commit comments