@@ -120,28 +120,17 @@ func (t *WriteTests) Run(ctx evaltask.Context) (repositoryAssessment map[string]
120120 ctx .Logger .Panicf ("ERROR: unable to reset temporary repository path: %s" , err )
121121 }
122122
123- _ , err = symflowerTemplate ( taskLogger . Logger , dataPath , ctx . Language , filePath ) // TODO Incorporate template processing time. https://github.com/symflower/eval-dev-quality/issues/350
123+ testTemplate , err := symflowerTemplateAsString ( ctx , taskLogger , dataPath , filePath )
124124 if err != nil {
125- problems = append (problems , pkgerrors . WithMessage ( err , "generating Symflower template" ) )
125+ problems = append (problems , err )
126126
127127 withSymflowerTemplateAssessment .Add (modelAssessmentFile )
128128 withSymflowerTemplateAndFixAssessment .Add (withSymflowerFixAssessmentFile )
129129
130130 continue
131131 }
132132
133- testTemplateFilePath := filepath .Join (dataPath , ctx .Language .TestFilePath (dataPath , filePath ))
134- testTemplate , err := os .ReadFile (testTemplateFilePath )
135- if err != nil {
136- problems = append (problems , pkgerrors .WithMessagef (err , "reading Symflower template from %q" , testTemplateFilePath ))
137-
138- withSymflowerTemplateAssessment .Add (modelAssessmentFile )
139- withSymflowerTemplateAndFixAssessment .Add (withSymflowerFixAssessmentFile )
140-
141- continue
142- }
143-
144- arguments .Template = string (testTemplate )
133+ arguments .Template = testTemplate
145134 modelTemplateAssessmentFile , templateWithSymflowerFixAssessmentFile , ps , err := runModelAndSymflowerFix (ctx , modelContext , modelCapability .WriteTests )
146135 problems = append (problems , ps ... )
147136 if err != nil {
@@ -155,6 +144,20 @@ func (t *WriteTests) Run(ctx evaltask.Context) (repositoryAssessment map[string]
155144 return repositoryAssessment , problems , nil
156145}
157146
147+ func symflowerTemplateAsString (ctx evaltask.Context , taskLogger * taskLogger , dataPath string , filePath string ) (testTemplate string , err error ) {
148+ _ , err = symflowerTemplate (taskLogger .Logger , dataPath , ctx .Language , filePath ) // TODO Incorporate template processing time. https://github.com/symflower/eval-dev-quality/issues/350
149+ if err != nil {
150+ return "" , pkgerrors .WithMessage (err , "generating Symflower template" )
151+ }
152+ testTemplateFilePath := filepath .Join (dataPath , ctx .Language .TestFilePath (dataPath , filePath ))
153+ testTemplateData , err := os .ReadFile (testTemplateFilePath )
154+ if err != nil {
155+ return "" , pkgerrors .WithMessagef (err , "reading Symflower template from %q" , testTemplateFilePath )
156+ }
157+
158+ return string (testTemplateData ), nil
159+ }
160+
158161// validateWriteTestsRepository checks if the repository for the "write-tests" task is well-formed.
159162func validateWriteTestsRepository (logger * log.Logger , repositoryPath string , language language.Language ) (err error ) {
160163 logger .Info ("validating repository" , "path" , repositoryPath )
0 commit comments