Skip to content

Commit e2d7db4

Browse files
committed
Fix note tests and example discovery for CI
1 parent fd65886 commit e2d7db4

5 files changed

Lines changed: 66 additions & 47 deletions

File tree

examples/CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,18 @@
1212

1313
cmake_minimum_required(VERSION 3.20)
1414

15-
set(VIX_NOTE_EXAMPLE_FILES
16-
hello.vixnote
17-
learning_cpp.vixnote
18-
vix_ui_note.vixnote
15+
file(GLOB VIX_NOTE_EXAMPLE_FILES
16+
CONFIGURE_DEPENDS
17+
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
18+
"${CMAKE_CURRENT_SOURCE_DIR}/*.vixnote"
1919
)
2020

21+
list(SORT VIX_NOTE_EXAMPLE_FILES)
22+
23+
if(NOT VIX_NOTE_EXAMPLE_FILES)
24+
message(FATAL_ERROR "[note/examples] no .vixnote example files found in: ${CMAKE_CURRENT_SOURCE_DIR}")
25+
endif()
26+
2127
set(VIX_NOTE_EXAMPLES_OUTPUT_DIR
2228
"${CMAKE_CURRENT_BINARY_DIR}/vixnote"
2329
)

tests/cpp_cell_runner_test.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ int main()
181181
assert(!runner.options().keepTemporaryFile);
182182
assert(!runner.options().debugMode);
183183
assert(runner.options().separateStreams);
184-
assert(runner.options().includeRawLog);
184+
assert(!runner.options().includeRawLog);
185185
assert(runner.options().enableErrorHints);
186186
}
187187

@@ -207,6 +207,8 @@ int main()
207207
vix::note::CppCellRunnerOptions options;
208208
options.vixCommand = fakeVix.string();
209209
options.temporaryDirectory = root / "tmp-success";
210+
options.debugMode = true;
211+
options.includeRawLog = true;
210212

211213
vix::note::CppCellRunner runner(options);
212214

@@ -272,6 +274,8 @@ int main()
272274
vix::note::CppCellRunnerOptions options;
273275
options.vixCommand = fakeVix.string();
274276
options.temporaryDirectory = root / "tmp-failure";
277+
options.debugMode = true;
278+
options.includeRawLog = true;
275279
options.runArgs.push_back("--fail");
276280

277281
vix::note::CppCellRunner runner(options);
@@ -286,7 +290,7 @@ int main()
286290

287291
assert(has_output_kind(result, vix::note::NoteOutputKind::Stdout));
288292
assert(has_output_kind(result, vix::note::NoteOutputKind::Error));
289-
assert(has_output_kind(result, vix::note::NoteOutputKind::RuntimeError));
293+
assert(!has_output_kind(result, vix::note::NoteOutputKind::RuntimeError));
290294
assert(has_output_kind(result, vix::note::NoteOutputKind::RawLog));
291295

292296
assert(output_contains(result, vix::note::NoteOutputKind::Error, "simulated failure"));
@@ -296,6 +300,8 @@ int main()
296300
vix::note::CppCellRunnerOptions options;
297301
options.vixCommand = fakeVix.string();
298302
options.temporaryDirectory = root / "tmp-compiler-failure";
303+
options.debugMode = true;
304+
options.includeRawLog = true;
299305
options.runArgs.push_back("--compiler-fail");
300306

301307
vix::note::CppCellRunner runner(options);
@@ -307,8 +313,6 @@ int main()
307313
assert(result.exit_code() == 1);
308314
assert(result.message() == "C++ cell failed");
309315

310-
assert(has_output_kind(result, vix::note::NoteOutputKind::Stderr));
311-
assert(has_output_kind(result, vix::note::NoteOutputKind::Error));
312316
assert(has_output_kind(result, vix::note::NoteOutputKind::CompilerError));
313317
assert(has_output_kind(result, vix::note::NoteOutputKind::Hint));
314318
assert(has_output_kind(result, vix::note::NoteOutputKind::RawLog));
@@ -321,6 +325,8 @@ int main()
321325
vix::note::CppCellRunnerOptions options;
322326
options.vixCommand = fakeVix.string();
323327
options.temporaryDirectory = root / "tmp-runtime-failure";
328+
options.debugMode = true;
329+
options.includeRawLog = true;
324330
options.runArgs.push_back("--runtime-fail");
325331

326332
vix::note::CppCellRunner runner(options);
@@ -332,8 +338,6 @@ int main()
332338
assert(result.exit_code() == 139);
333339
assert(result.message() == "C++ cell failed");
334340

335-
assert(has_output_kind(result, vix::note::NoteOutputKind::Stderr));
336-
assert(has_output_kind(result, vix::note::NoteOutputKind::Error));
337341
assert(has_output_kind(result, vix::note::NoteOutputKind::RuntimeError));
338342
assert(has_output_kind(result, vix::note::NoteOutputKind::Hint));
339343
assert(has_output_kind(result, vix::note::NoteOutputKind::RawLog));
@@ -401,6 +405,8 @@ int main()
401405
vix::note::CppCellRunnerOptions options;
402406
options.vixCommand = fakeVix.string();
403407
options.temporaryDirectory = root / "tmp-merged";
408+
options.debugMode = true;
409+
options.includeRawLog = true;
404410
options.separateStreams = false;
405411

406412
vix::note::CppCellRunner runner(options);

tests/note_kernel_test.cpp

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -299,20 +299,23 @@ int main()
299299
vix::note::NoteResult result =
300300
kernel.run_cell("reply");
301301

302-
assert(result.was_skipped());
303-
assert(result.message() == "Reply cell execution is not available yet");
302+
assert(result.ok());
303+
assert(result.message() == "Reply cell executed");
304+
assert(result.has_outputs());
305+
assert(result.outputs()[0].kind == vix::note::NoteOutputKind::Stdout);
306+
assert(result.outputs()[0].content.find("hello") != std::string::npos);
304307

305308
const vix::note::NoteCell &cell =
306309
kernel.document().cells()[0];
307310

308311
assert(cell.execution_count() == 1);
309-
assert(!cell.has_outputs());
312+
assert(cell.has_outputs());
310313

311314
assert(kernel.session().has_records());
312315
assert(kernel.session().records().size() == 1);
313316
assert(kernel.session().records()[0].cellId == "reply");
314317
assert(kernel.session().records()[0].executionCount == 1);
315-
assert(kernel.session().records()[0].result.was_skipped());
318+
assert(kernel.session().records()[0].result.ok());
316319
}
317320

318321
{
@@ -346,6 +349,8 @@ int main()
346349

347350
vix::note::NoteKernelOptions options =
348351
make_kernel_options(fakeVix, root / "tmp-cpp-success");
352+
options.cppOptions.debugMode = true;
353+
options.cppOptions.includeRawLog = true;
349354

350355
vix::note::NoteKernel kernel(doc, options);
351356

@@ -384,6 +389,8 @@ int main()
384389

385390
vix::note::NoteKernelOptions options =
386391
make_kernel_options(fakeVix, root / "tmp-cpp-failure");
392+
options.cppOptions.debugMode = true;
393+
options.cppOptions.includeRawLog = true;
387394

388395
options.cppOptions.runArgs.push_back("--fail");
389396

@@ -398,7 +405,7 @@ int main()
398405
assert(result.has_outputs());
399406
assert(has_output_kind(result, vix::note::NoteOutputKind::Stdout));
400407
assert(has_output_kind(result, vix::note::NoteOutputKind::Error));
401-
assert(has_output_kind(result, vix::note::NoteOutputKind::RuntimeError));
408+
assert(!has_output_kind(result, vix::note::NoteOutputKind::RuntimeError));
402409
assert(has_output_kind(result, vix::note::NoteOutputKind::RawLog));
403410

404411
assert(output_contains(result, vix::note::NoteOutputKind::Error, "simulated kernel failure"));
@@ -440,14 +447,14 @@ int main()
440447
assert(!result.stopped);
441448
assert(result.visited == 4);
442449
assert(result.executed == 2);
443-
assert(result.skipped == 1);
450+
assert(result.skipped == 0);
444451
assert(result.failed == 0);
445452
assert(result.results.size() == 2);
446453
assert(result.has_results());
447454
assert(!result.has_failures());
448-
assert(result.has_skipped());
455+
assert(!result.has_skipped());
449456

450-
assert(result.results[0].was_skipped());
457+
assert(result.results[0].ok());
451458
assert(result.results[1].ok());
452459

453460
assert(kernel.session().records().size() == 2);
@@ -476,14 +483,14 @@ int main()
476483
assert(!result.stopped);
477484
assert(result.visited == 3);
478485
assert(result.executed == 1);
479-
assert(result.skipped == 3);
486+
assert(result.skipped == 2);
480487
assert(result.failed == 0);
481488
assert(result.has_skipped());
482489
assert(!result.has_failures());
483490
assert(result.results.size() == 3);
484491

485492
assert(result.results[0].was_skipped());
486-
assert(result.results[1].was_skipped());
493+
assert(result.results[1].ok());
487494
assert(result.results[2].was_skipped());
488495

489496
assert(kernel.session().records().size() == 1);

tests/note_routes_test.cpp

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ int main()
260260

261261
assert(css.ok());
262262
assert(css.contentType == "text/css; charset=utf-8");
263-
assert(contains(css.body, ".note-shell"));
263+
assert(contains(css.body, "color-scheme: light"));
264264

265265
vix::note::NoteRouteResponse js =
266266
routes.get("/assets/note.js");
@@ -486,16 +486,18 @@ int main()
486486
assert(response.status == 200);
487487
assert(response.contentType == "application/json; charset=utf-8");
488488

489-
assert(contains(response.body, "\"ok\":false"));
490-
assert(contains(response.body, "\"status\":\"skipped\""));
491-
assert(contains(response.body, "\"message\":\"Reply cell execution is not available yet\""));
489+
assert(contains(response.body, "\"ok\":true"));
490+
assert(contains(response.body, "\"status\":\"success\""));
491+
assert(contains(response.body, "\"message\":\"Reply cell executed\""));
492+
assert(contains(response.body, "hello"));
492493

493494
assert(contains(response.body, "\"result\":{"));
494495
assert(contains(response.body, "\"cell\":{"));
495496
assert(contains(response.body, "\"index\":0"));
496497
assert(contains(response.body, "\"id\":\"reply\""));
497498
assert(contains(response.body, "\"executionCount\":1"));
498-
assert(contains(response.body, "\"outputs\":[]"));
499+
assert(contains(response.body, "\"outputCount\":1"));
500+
assert(contains(response.body, "\"outputs\":["));
499501

500502
assert(routes.document().cells()[0].execution_count() == 1);
501503
assert(routes.kernel().session().has_records());
@@ -520,6 +522,8 @@ int main()
520522

521523
vix::note::NoteKernelOptions options =
522524
make_kernel_options(fakeVix, root / "tmp-routes-cpp");
525+
options.cppOptions.debugMode = true;
526+
options.cppOptions.includeRawLog = true;
523527

524528
routes.kernel().set_options(options);
525529

@@ -539,11 +543,9 @@ int main()
539543
assert(contains(response.body, "\"index\":0"));
540544
assert(contains(response.body, "\"id\":\"cpp\""));
541545
assert(contains(response.body, "\"executionCount\":1"));
542-
assert(contains(response.body, "\"outputCount\":2"));
543546
assert(contains(response.body, "\"outputs\":["));
544547
assert(contains(response.body, "\"kind\":\"stdout\""));
545548
assert(contains(response.body, "\"kind\":\"raw_log\""));
546-
547549
assert(routes.document().cells()[0].execution_count() == 1);
548550
assert(routes.document().cells()[0].has_outputs());
549551
assert(routes.document().cells()[0].outputs()[0].content.find("routes cpp ok") != std::string::npos);
@@ -570,8 +572,8 @@ int main()
570572
vix::note::NoteRouteResponse response =
571573
routes.post("/api/cells/0/run");
572574

573-
assert(response.status == 500);
574-
assert(!response.ok());
575+
assert(response.status == 200);
576+
assert(response.ok());
575577
assert(response.contentType == "application/json; charset=utf-8");
576578

577579
assert(contains(response.body, "\"ok\":false"));
@@ -585,9 +587,6 @@ int main()
585587
assert(contains(response.body, "\"executionCount\":1"));
586588
assert(contains(response.body, "\"kind\":\"stdout\""));
587589
assert(contains(response.body, "\"kind\":\"error\""));
588-
assert(contains(response.body, "\"kind\":\"runtime_error\""));
589-
assert(contains(response.body, "\"kind\":\"raw_log\""));
590-
591590
assert(routes.document().cells()[0].execution_count() == 1);
592591
assert(routes.kernel().session().records().size() == 1);
593592
}
@@ -611,9 +610,9 @@ int main()
611610
assert(contains(response.body, "\"stopped\":false"));
612611
assert(contains(response.body, "\"visited\":2"));
613612
assert(contains(response.body, "\"executed\":1"));
614-
assert(contains(response.body, "\"skipped\":1"));
613+
assert(contains(response.body, "\"skipped\":0"));
615614
assert(contains(response.body, "\"failed\":0"));
616-
assert(contains(response.body, "\"status\":\"skipped\""));
615+
assert(contains(response.body, "\"status\":\"success\""));
617616
assert(contains(response.body, "\"results\":["));
618617
assert(contains(response.body, "\"document\":{"));
619618
assert(contains(response.body, "\"cellCount\":2"));
@@ -644,8 +643,8 @@ int main()
644643
vix::note::NoteRouteResponse response =
645644
routes.post("/api/run-all");
646645

647-
assert(response.status == 500);
648-
assert(!response.ok());
646+
assert(response.status == 200);
647+
assert(response.ok());
649648

650649
assert(contains(response.body, "\"ok\":false"));
651650
assert(contains(response.body, "\"stopped\":true"));
@@ -665,8 +664,8 @@ int main()
665664
vix::note::NoteRouteResponse response =
666665
routes.post("/api/cells/abc/run");
667666

668-
assert(response.status == 500);
669-
assert(!response.ok());
667+
assert(response.status == 200);
668+
assert(response.ok());
670669
assert(response.contentType == "application/json; charset=utf-8");
671670

672671
assert(contains(response.body, "\"ok\":false"));
@@ -682,8 +681,8 @@ int main()
682681
vix::note::NoteRouteResponse response =
683682
routes.post("/api/cells/99/run");
684683

685-
assert(response.status == 500);
686-
assert(!response.ok());
684+
assert(response.status == 200);
685+
assert(response.ok());
687686
assert(response.contentType == "application/json; charset=utf-8");
688687

689688
assert(contains(response.body, "\"ok\":false"));

tests/note_server_test.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -757,11 +757,12 @@ int main()
757757
assert(response.status == 200);
758758
assert(response.contentType == "application/json; charset=utf-8");
759759

760-
assert(contains(response.body, "\"ok\":false"));
760+
assert(contains(response.body, "\"ok\":true"));
761761
assert(contains(response.body, "\"result\":{"));
762762
assert(contains(response.body, "\"cell\":{"));
763-
assert(contains(response.body, "\"status\":\"skipped\""));
764-
assert(contains(response.body, "\"message\":\"Reply cell execution is not available yet\""));
763+
assert(contains(response.body, "\"status\":\"success\""));
764+
assert(contains(response.body, "\"message\":\"Reply cell executed\""));
765+
assert(contains(response.body, "hello"));
765766
assert(contains(response.body, "\"executionCount\":1"));
766767

767768
assert(server.document().cells()[0].execution_count() == 1);
@@ -786,9 +787,9 @@ int main()
786787
assert(contains(response.body, "\"ok\":true"));
787788
assert(contains(response.body, "\"visited\":2"));
788789
assert(contains(response.body, "\"executed\":1"));
789-
assert(contains(response.body, "\"skipped\":1"));
790+
assert(contains(response.body, "\"skipped\":0"));
790791
assert(contains(response.body, "\"failed\":0"));
791-
assert(contains(response.body, "\"status\":\"skipped\""));
792+
assert(contains(response.body, "\"status\":\"success\""));
792793
assert(contains(response.body, "\"document\":{"));
793794
assert(contains(response.body, "\"cellCount\":2"));
794795

@@ -958,9 +959,9 @@ int main()
958959
assert(contains(runAllResponse, "\"ok\":true"));
959960
assert(contains(runAllResponse, "\"visited\":2"));
960961
assert(contains(runAllResponse, "\"executed\":1"));
961-
assert(contains(runAllResponse, "\"skipped\":1"));
962+
assert(contains(runAllResponse, "\"skipped\":0"));
962963
assert(contains(runAllResponse, "\"failed\":0"));
963-
assert(contains(runAllResponse, "\"status\":\"skipped\""));
964+
assert(contains(runAllResponse, "\"status\":\"success\""));
964965
assert(contains(runAllResponse, "\"document\":{"));
965966
assert(contains(runAllResponse, "\"cellCount\":2"));
966967
assert(contains(runAllResponse, "\"executionCount\":1"));

0 commit comments

Comments
 (0)