| 19 | #include <iostream> |
| 20 | |
| 21 | int TestMySQLTableReadWrite(int argc, char* argv[]) |
| 22 | { |
| 23 | if (argc <= 1) |
| 24 | { |
| 25 | std::cerr << "Usage: " << argv[0] << " <.vtk table file>" << std::endl; |
| 26 | return 1; |
| 27 | } |
| 28 | std::cerr << "reading a vtkTable from file" << std::endl; |
| 29 | vtkSmartPointer<vtkTableReader> tableFileReader = vtkSmartPointer<vtkTableReader>::New(); |
| 30 | tableFileReader->SetFileName(argv[1]); |
| 31 | vtkTable* table = tableFileReader->GetOutput(); |
| 32 | tableFileReader->Update(); |
| 33 | |
| 34 | std::cerr << "opening a MySQL database connection" << std::endl; |
| 35 | |
| 36 | vtkMySQLDatabase* db = |
| 37 | vtkMySQLDatabase::SafeDownCast(vtkSQLDatabase::CreateFromURL(VTK_MYSQL_TEST_URL)); |
| 38 | bool status = db->Open(); |
| 39 | |
| 40 | if (!status) |
| 41 | { |
| 42 | std::cerr << "Couldn't open database.\n"; |
| 43 | return 1; |
| 44 | } |
| 45 | |
| 46 | std::cerr << "creating a MySQL table from a vtkTable" << std::endl; |
| 47 | vtkSmartPointer<vtkTableToMySQLWriter> writerToTest = |
| 48 | vtkSmartPointer<vtkTableToMySQLWriter>::New(); |
| 49 | |
| 50 | writerToTest->SetInputData(table); |
| 51 | writerToTest->SetDatabase(db); |
| 52 | writerToTest->SetTableName("tableTest"); |
| 53 | writerToTest->Update(); |
| 54 | |
| 55 | std::cerr << "converting it back to a vtkTable" << std::endl; |
| 56 | vtkSmartPointer<vtkMySQLToTableReader> readerToTest = |
| 57 | vtkSmartPointer<vtkMySQLToTableReader>::New(); |
| 58 | |
| 59 | readerToTest->SetDatabase(db); |
| 60 | readerToTest->SetTableName("tableTest"); |
| 61 | readerToTest->Update(); |
| 62 | |
| 63 | std::cerr << "writing the table out to disk" << std::endl; |
| 64 | vtkSmartPointer<vtkTableWriter> tableFileWriter = vtkSmartPointer<vtkTableWriter>::New(); |
| 65 | tableFileWriter->SetFileName("TestMySQLTableReadWrite.vtk"); |
| 66 | tableFileWriter->SetInputConnection(readerToTest->GetOutputPort()); |
| 67 | tableFileWriter->Update(); |
| 68 | |
| 69 | std::cerr << "verifying that it's the same as what we started with..."; |
| 70 | int result = 0; |
| 71 | if (vtksys::SystemTools::FilesDiffer(argv[1], "TestMySQLTableReadWrite.vtk")) |
| 72 | { |
| 73 | std::cerr << "it's not." << std::endl; |
| 74 | result = 1; |
| 75 | } |
| 76 | else |
| 77 | { |
| 78 | std::cerr << "it is!" << std::endl; |
nothing calls this directly
no test coverage detected