void lc3_run_test_suite(lc3_test_suite& suite, const std::string& filename, int seed) { bool passed = true; unsigned int total_points = 0; unsigned int points = 0; for (unsigned int i = 0; i < suite.tests.size(); i++) { lc3_run_test_case(suite.tests[i], filename, seed); passed = passed && suite.tests[i].passed; points += suite.tests[i].points; total_points += suite.tests[i].max_points; } suite.passed = passed; suite.points = points; suite.max_points = total_points; }
void RunTestDialog::OnRunTest(wxCommandEvent& event) { wxTreeItemId id = testTree->GetSelection(); wxTreeItemId root = testTree->GetRootItem(); if (!id.IsOk()) return; if (id == root) return; if (testTree->GetItemParent(id) != testTree->GetRootItem()) { id = testTree->GetItemParent(id); } if (testTree->GetItemParent(id) != testTree->GetRootItem()) { // Shouldn't happen return; } testTree->Unselect(); testTree->ToggleItemSelection(id); TestTreeItem* treeItem = reinterpret_cast<TestTreeItem*>(testTree->GetItemData(id)); lc3_test* test = reinterpret_cast<lc3_test*>(treeItem->data); try { lc3_run_test_case(*test, currentFile.GetFullPath().ToStdString(), false); } catch (const char* x) { wxMessageBox(wxString::Format("BAD STUDENT! %s", x), "Run Tests Failed"); return; } catch (std::string x) { wxMessageBox(wxString::Format("BAD STUDENT! %s", x), "Run Tests Failed"); return; } tspanel->Update(); tcpanel->Update(); cipanel->Update(); }