@@ -58,6 +58,38 @@ TEST(TemplateGeneratorTestGroup, Basic_InputParse) {
5858CHECK (buildcc::env::get_task_state () == buildcc::env::TaskState::SUCCESS);
5959}
6060
61+ TEST (TemplateGeneratorTestGroup, Basic_SaveFailure) {
62+ constexpr const char *const NAME =" basic_save_failure" ;
63+ {
64+ buildcc::TemplateGeneratorgenerator (NAME," " );
65+
66+ fs::create_directories (generator.GetBuildDir () /" default_values.txt" );
67+
68+ generator.AddTemplate (" {gen_root_dir}/template/default_values.txt.in" ,
69+ " {gen_build_dir}/default_values.txt" );
70+ generator.Build ();
71+
72+ buildcc::m::CustomGeneratorRunner (generator);
73+ CHECK (buildcc::env::get_task_state () == buildcc::env::TaskState::FAILURE);
74+ }
75+ }
76+
77+ TEST (TemplateGeneratorTestGroup, Basic_LoadFailure) {
78+ constexpr const char *const NAME =" basic_load_failure" ;
79+ {
80+ buildcc::TemplateGeneratorgenerator (NAME," " );
81+
82+ fs::create_directories (generator.GetBuildDir () /" default_values.txt.in" );
83+
84+ generator.AddTemplate (" {gen_build_dir}/default_values.txt.in" ,
85+ " {gen_build_dir}/default_values.txt" );
86+ generator.Build ();
87+
88+ buildcc::m::CustomGeneratorRunner (generator);
89+ CHECK (buildcc::env::get_task_state () == buildcc::env::TaskState::FAILURE);
90+ }
91+ }
92+
6193int main (int ac,char **av) {
6294fs::remove_all (BUILD_DIR);
6395buildcc::Project::Init (fs::current_path () /" data" , BUILD_DIR);