bool ert_test_context_install_workflow( ert_test_context_type * test_context , const char * workflow_name , const char * workflow_file) { if (util_file_exists( workflow_file )) { enkf_main_type * enkf_main = ert_test_context_get_main( test_context ); ert_workflow_list_type * workflow_list = enkf_main_get_workflow_list( enkf_main ); ert_workflow_list_add_workflow( workflow_list , workflow_file , workflow_name ); return ert_workflow_list_has_workflow( workflow_list , workflow_name); } else return false; }
bool ert_test_context_run_worklow( ert_test_context_type * test_context , const char * workflow_name) { enkf_main_type * enkf_main = ert_test_context_get_main( test_context ); ert_workflow_list_type * workflow_list = enkf_main_get_workflow_list( enkf_main ); if (ert_workflow_list_has_workflow( workflow_list , workflow_name )) return ert_workflow_list_run_workflow( workflow_list , workflow_name , enkf_main ); else return false; }
bool ert_test_context_run_worklow_job( ert_test_context_type * test_context , const char * job_name, const stringlist_type * args) { enkf_main_type * enkf_main = ert_test_context_get_main( test_context ); ert_workflow_list_type * workflow_list = enkf_main_get_workflow_list( enkf_main ); if (ert_workflow_list_has_job( workflow_list , job_name )) { bool status; { char * workflow = util_alloc_sprintf("WORKFLOW-%06d" , rng_get_int( test_context->rng , 1000000)); { FILE * stream = util_fopen( workflow , "w"); ert_test_context_fwrite_workflow_job( stream , job_name , args ); fclose(stream); } ert_test_context_install_workflow( test_context , workflow , workflow); status = ert_test_context_run_worklow( test_context , workflow ); free(workflow); } return status; } else return false; }
void enkf_tui_workflow_list( void * arg ) { enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); { ert_workflow_list_type * workflow_list = enkf_main_get_workflow_list( enkf_main ); stringlist_type * name_list = ert_workflow_list_alloc_namelist( workflow_list ); printf("Available workflows: \n"); { int i; for (i=0; i < stringlist_get_size( name_list ); i++) { if ((i % 5) == 0) printf("\n "); else printf(" "); printf( stringlist_iget( name_list , i )); } } stringlist_free( name_list ); printf("\n\n"); } }
void enkf_tui_workflow_run( void * arg ) { enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); { ert_workflow_list_type * workflow_list = enkf_main_get_workflow_list( enkf_main ); util_printf_prompt("Name of workflow" , PROMPT_LEN , '=' , "=> "); { char * workflow_name = util_alloc_stdin_line(); if (workflow_name != NULL) { if (ert_workflow_list_has_workflow( workflow_list , workflow_name )) { bool runOK = ert_workflow_list_run_workflow_blocking( workflow_list , workflow_name , enkf_main); if (!runOK) { printf("Errors in workflow:%s \n", workflow_name ); printf("-----------------------------------------------------------------\n"); config_error_fprintf( ert_workflow_list_get_last_error( workflow_list ) , true , stdout); printf("-----------------------------------------------------------------\n"); } } } util_safe_free( workflow_name ); } } }
void test_has_job(ert_test_context_type * test_context ) { enkf_main_type * enkf_main = ert_test_context_get_main( test_context ); ert_workflow_list_type * workflows = enkf_main_get_workflow_list( enkf_main ); test_assert_true( ert_workflow_list_has_job( workflows , "MAGIC_PRINT" )); }