// make_cbnt_task_t.cxx #include #include #include "dataset_util/Text.h" #include "dataset_util/ssystem.h" #include "dataset_util/FileStatus.h" #include "dataset_util/getcwd.h" #include "dataset_util/mkdir.h" #include "dataset_util/XmlElement.h" #include "dataset_xml/XmlParser.h" #include "dataset_id/SimpleUniqueIdGenerator.h" #include "dataset_credential/CredentialSelectionCatalog.h" #include "dataset_credential/GssCredentialManager.h" #include "dial_task/Task.h" using std::string; using std::cout; using std::endl; using dset::CredentialSelectionCatalog; using dset::GssCredentialManager; using dial::Task; namespace { void msg(string txt) { cout << "*** "; cout << txt; cout << " ****" << endl; } bool check(int value, int expect =0) { if ( value == expect ) return true; cout << "Expected: " << expect << endl; cout << " Found: " << value << endl; cout << " Error " << errno << ": " << strerror(errno) << endl; return false; } } int make_cbnt_task_t() { system("rm -rf init.kumac cbnt.f cbnt.hbk task.xml UniqueId"); msg("Write init.kumac"); Text init("init.kumac"); init.append("1dh 1 Run 100 1 10000"); init.append("1dh 2 Event 100 1 10000"); init.write(); msg("Write cbnt.f"); Text proc("cbnt.f"); proc.append(" integer function cbnt"); proc.append(" include 'cbnt.inc'"); proc.append(" "); proc.append(" write(*,*) idnevt, run, event"); proc.append(" call hf1(1, 1.0*run, 1.0)"); proc.append(" call hf1(2, 1.0*event, 1.0)"); proc.append(" cbnt = 1"); proc.append(" end"); proc.write(); msg("Show help message"); int stat = ssystem("make_cbnt_task -h"); assert( check(stat) ); msg("Fetch default instance of CSC."); assert( CredentialSelectionCatalog::create_default_instance() == 0 ); CredentialSelectionCatalog& sc = CredentialSelectionCatalog::default_instance(); cout << sc << endl; assert( sc.is_valid() ); string owner = "me"; assert( GssCredentialManager::set_default() == 0 ); assert( GssCredentialManager::set_owner("me") == 0 ); msg("Create task"); SimpleUniqueIdGenerator::set_as_default(); SimpleUniqueIdGenerator::create_collection(Task::id_context(), 101, 1); string conn = SimpleUniqueIdGenerator::connection(); assert( conn.size() ); string com; com += "export DIAL_UIDS=" + conn + ";" + "DIAL_CATALOG_CONF=" + getcwd() + "/resolver.dat; " + "export DIAL_CATALOG_CONF; "; com += " make_cbnt_task"; cout << com << endl; stat = ssystem(com); assert( check(stat) ); //msg("Check generated HBOOK file"); //assert( FileStatus("cbnt.hbk").is_readable() ); msg("Check generated task file"); assert( FileStatus("task.xml").is_readable() ); return 0; } #ifdef CTEST_MAIN int main() { return make_cbnt_task_t(); } #endif