diff options
Diffstat (limited to 'unit_tests/init_and_shutdown.cpp')
-rw-r--r-- | unit_tests/init_and_shutdown.cpp | 533 |
1 files changed, 302 insertions, 231 deletions
diff --git a/unit_tests/init_and_shutdown.cpp b/unit_tests/init_and_shutdown.cpp index 384af43..bd72157 100644 --- a/unit_tests/init_and_shutdown.cpp +++ b/unit_tests/init_and_shutdown.cpp | |||
@@ -289,6 +289,62 @@ TEST_CASE("lanes.configure.keepers_gc_threshold") | |||
289 | 289 | ||
290 | // ################################################################################################# | 290 | // ################################################################################################# |
291 | 291 | ||
292 | TEST_CASE("lanes.configure.linda_wake_period") | ||
293 | { | ||
294 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | ||
295 | |||
296 | // linda_wake_period should be a number > 0, or 'never' | ||
297 | |||
298 | SECTION("linda_wake_period = <table>") | ||
299 | { | ||
300 | L.requireFailure("require 'lanes'.configure{linda_wake_period = {}}"); | ||
301 | } | ||
302 | |||
303 | // --------------------------------------------------------------------------------------------- | ||
304 | |||
305 | SECTION("linda_wake_period = <string>") | ||
306 | { | ||
307 | L.requireFailure("require 'lanes'.configure{linda_wake_period = 'gluh'}"); | ||
308 | } | ||
309 | |||
310 | // --------------------------------------------------------------------------------------------- | ||
311 | |||
312 | SECTION("linda_wake_period = 'never'") | ||
313 | { | ||
314 | L.requireSuccess("require 'lanes'.configure{linda_wake_period = 'never'}"); | ||
315 | } | ||
316 | |||
317 | // --------------------------------------------------------------------------------------------- | ||
318 | |||
319 | SECTION("linda_wake_period = <negative number>") | ||
320 | { | ||
321 | L.requireFailure("require 'lanes'.configure{linda_wake_period = -0.001}"); | ||
322 | } | ||
323 | |||
324 | // --------------------------------------------------------------------------------------------- | ||
325 | |||
326 | SECTION("linda_wake_period = 0") | ||
327 | { | ||
328 | L.requireFailure("require 'lanes'.configure{linda_wake_period = 0}"); | ||
329 | } | ||
330 | |||
331 | // --------------------------------------------------------------------------------------------- | ||
332 | |||
333 | SECTION("linda_wake_period = 0.0001s") | ||
334 | { | ||
335 | L.requireSuccess("require 'lanes'.configure{linda_wake_period = 0.0001}"); | ||
336 | } | ||
337 | |||
338 | // --------------------------------------------------------------------------------------------- | ||
339 | |||
340 | SECTION("linda_wake_period = 1e30") | ||
341 | { | ||
342 | L.requireSuccess("require 'lanes'.configure{linda_wake_period = 1e30}"); | ||
343 | } | ||
344 | } | ||
345 | |||
346 | // ################################################################################################# | ||
347 | |||
292 | TEST_CASE("lanes.configure.nb_user_keepers") | 348 | TEST_CASE("lanes.configure.nb_user_keepers") |
293 | { | 349 | { |
294 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | 350 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; |
@@ -300,35 +356,35 @@ TEST_CASE("lanes.configure.nb_user_keepers") | |||
300 | L.requireFailure("require 'lanes'.configure{nb_user_keepers = {}}"); | 356 | L.requireFailure("require 'lanes'.configure{nb_user_keepers = {}}"); |
301 | } | 357 | } |
302 | 358 | ||
303 | // ----------------------------------------------------------------------------------------- | 359 | // --------------------------------------------------------------------------------------------- |
304 | 360 | ||
305 | SECTION("nb_user_keepers = <string>") | 361 | SECTION("nb_user_keepers = <string>") |
306 | { | 362 | { |
307 | L.requireFailure("require 'lanes'.configure{nb_user_keepers = 'gluh'}"); | 363 | L.requireFailure("require 'lanes'.configure{nb_user_keepers = 'gluh'}"); |
308 | } | 364 | } |
309 | 365 | ||
310 | // ----------------------------------------------------------------------------------------- | 366 | // --------------------------------------------------------------------------------------------- |
311 | 367 | ||
312 | SECTION("nb_user_keepers = -1") | 368 | SECTION("nb_user_keepers = -1") |
313 | { | 369 | { |
314 | L.requireFailure("require 'lanes'.configure{nb_user_keepers = -1}"); | 370 | L.requireFailure("require 'lanes'.configure{nb_user_keepers = -1}"); |
315 | } | 371 | } |
316 | 372 | ||
317 | // ----------------------------------------------------------------------------------------- | 373 | // --------------------------------------------------------------------------------------------- |
318 | 374 | ||
319 | SECTION("nb_user_keepers = 0") | 375 | SECTION("nb_user_keepers = 0") |
320 | { | 376 | { |
321 | L.requireSuccess("require 'lanes'.configure{nb_user_keepers = 0}"); | 377 | L.requireSuccess("require 'lanes'.configure{nb_user_keepers = 0}"); |
322 | } | 378 | } |
323 | 379 | ||
324 | // ----------------------------------------------------------------------------------------- | 380 | // --------------------------------------------------------------------------------------------- |
325 | 381 | ||
326 | SECTION("nb_user_keepers = 1") | 382 | SECTION("nb_user_keepers = 1") |
327 | { | 383 | { |
328 | L.requireSuccess("require 'lanes'.configure{nb_user_keepers = 1}"); | 384 | L.requireSuccess("require 'lanes'.configure{nb_user_keepers = 1}"); |
329 | } | 385 | } |
330 | 386 | ||
331 | // ----------------------------------------------------------------------------------------- | 387 | // --------------------------------------------------------------------------------------------- |
332 | 388 | ||
333 | SECTION("nb_user_keepers = 100") | 389 | SECTION("nb_user_keepers = 100") |
334 | { | 390 | { |
@@ -345,340 +401,355 @@ TEST_CASE("lanes.configure.nb_user_keepers") | |||
345 | 401 | ||
346 | // ################################################################################################# | 402 | // ################################################################################################# |
347 | 403 | ||
348 | TEST_CASE("lanes.configure.the rest") | 404 | TEST_CASE("lanes.configure.on_state_create") |
349 | { | 405 | { |
350 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | 406 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; |
351 | 407 | ||
352 | // on_state_create should be a function, either C or Lua, without upvalues | 408 | // on_state_create should be a function, either C or Lua, without upvalues |
353 | 409 | ||
354 | SECTION("on_state_create") | 410 | SECTION("on_state_create = <table>") |
355 | { | 411 | { |
356 | SECTION("on_state_create = <table>") | 412 | L.requireFailure("require 'lanes'.configure{on_state_create = {}}"); |
357 | { | 413 | } |
358 | L.requireFailure("require 'lanes'.configure{on_state_create = {}}"); | ||
359 | } | ||
360 | 414 | ||
361 | // ----------------------------------------------------------------------------------------- | 415 | // --------------------------------------------------------------------------------------------- |
362 | 416 | ||
363 | SECTION("on_state_create = <string>") | 417 | SECTION("on_state_create = <string>") |
364 | { | 418 | { |
365 | L.requireFailure("require 'lanes'.configure{on_state_create = 'gluh'}"); | 419 | L.requireFailure("require 'lanes'.configure{on_state_create = 'gluh'}"); |
366 | } | 420 | } |
367 | 421 | ||
368 | // ----------------------------------------------------------------------------------------- | 422 | // --------------------------------------------------------------------------------------------- |
369 | 423 | ||
370 | SECTION("on_state_create = <number>") | 424 | SECTION("on_state_create = <number>") |
371 | { | 425 | { |
372 | L.requireFailure("require 'lanes'.configure{on_state_create = 1}"); | 426 | L.requireFailure("require 'lanes'.configure{on_state_create = 1}"); |
373 | } | 427 | } |
374 | 428 | ||
375 | // ----------------------------------------------------------------------------------------- | 429 | // --------------------------------------------------------------------------------------------- |
376 | 430 | ||
377 | SECTION("on_state_create = false") | 431 | SECTION("on_state_create = false") |
378 | { | 432 | { |
379 | L.requireFailure("require 'lanes'.configure{on_state_create = false}"); | 433 | L.requireFailure("require 'lanes'.configure{on_state_create = false}"); |
380 | } | 434 | } |
381 | 435 | ||
382 | // ----------------------------------------------------------------------------------------- | 436 | // --------------------------------------------------------------------------------------------- |
383 | 437 | ||
384 | SECTION("on_state_create = true") | 438 | SECTION("on_state_create = true") |
385 | { | 439 | { |
386 | L.requireFailure("require 'lanes'.configure{on_state_create = true}"); | 440 | L.requireFailure("require 'lanes'.configure{on_state_create = true}"); |
387 | } | 441 | } |
388 | 442 | ||
389 | // ----------------------------------------------------------------------------------------- | 443 | // --------------------------------------------------------------------------------------------- |
390 | 444 | ||
391 | SECTION("on_state_create = <Lua function>") | 445 | SECTION("on_state_create = <Lua function>") |
392 | { | 446 | { |
393 | // on_state_create isn't called inside a Keeper state if it's a Lua function (which is good as print() doesn't exist there!) | 447 | // on_state_create isn't called inside a Keeper state if it's a Lua function (which is good as print() doesn't exist there!) |
394 | L.requireSuccess("local print = print; require 'lanes'.configure{on_state_create = function() print 'hello' end}"); | 448 | L.requireSuccess("local print = print; require 'lanes'.configure{on_state_create = function() print 'hello' end}"); |
395 | } | 449 | } |
396 | 450 | ||
397 | // ----------------------------------------------------------------------------------------- | 451 | // --------------------------------------------------------------------------------------------- |
398 | 452 | ||
399 | SECTION("on_state_create = <C function>") | 453 | SECTION("on_state_create = <C function>") |
400 | { | 454 | { |
401 | // funnily enough, in Lua 5.3, print() uses global tostring(), that doesn't exist in a keeper since we didn't open libs -> "attempt to call a nil value" | 455 | // funnily enough, in Lua 5.3, print() uses global tostring(), that doesn't exist in a keeper since we didn't open libs -> "attempt to call a nil value" |
402 | // conclusion, don't use print() as a fake on_state_create() callback! | 456 | // conclusion, don't use print() as a fake on_state_create() callback! |
403 | // assert() should be fine since we pass a non-false argument to on_state_create | 457 | // assert() should be fine since we pass a non-false argument to on_state_create |
404 | L.requireSuccess("require 'lanes'.configure{on_state_create = assert}"); | 458 | L.requireSuccess("require 'lanes'.configure{on_state_create = assert}"); |
405 | } | ||
406 | } | 459 | } |
460 | } | ||
461 | |||
462 | // ################################################################################################# | ||
463 | |||
464 | TEST_CASE("lanes.configure.shutdown_timeout") | ||
465 | { | ||
466 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | ||
407 | 467 | ||
408 | // --------------------------------------------------------------------------------------------- | ||
409 | // shutdown_timeout should be a number in [0,3600] | 468 | // shutdown_timeout should be a number in [0,3600] |
410 | 469 | ||
411 | SECTION("shutdown_timeout") | 470 | SECTION("shutdown_timeout = <table>") |
412 | { | 471 | { |
413 | SECTION("shutdown_timeout = <table>") | 472 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = {}}"); |
414 | { | 473 | } |
415 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = {}}"); | ||
416 | } | ||
417 | 474 | ||
418 | // ----------------------------------------------------------------------------------------- | 475 | // --------------------------------------------------------------------------------------------- |
419 | 476 | ||
420 | SECTION("shutdown_timeout = <string>") | 477 | SECTION("shutdown_timeout = <string>") |
421 | { | 478 | { |
422 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = 'gluh'}"); | 479 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = 'gluh'}"); |
423 | } | 480 | } |
424 | 481 | ||
425 | // ----------------------------------------------------------------------------------------- | 482 | // --------------------------------------------------------------------------------------------- |
426 | 483 | ||
427 | SECTION("shutdown_timeout = <negative number>") | 484 | SECTION("shutdown_timeout = <negative number>") |
428 | { | 485 | { |
429 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = -0.001}"); | 486 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = -0.001}"); |
430 | } | 487 | } |
431 | 488 | ||
432 | // ----------------------------------------------------------------------------------------- | 489 | // --------------------------------------------------------------------------------------------- |
433 | 490 | ||
434 | SECTION("shutdown_timeout = 0") | 491 | SECTION("shutdown_timeout = 0") |
435 | { | 492 | { |
436 | L.requireSuccess("require 'lanes'.configure{shutdown_timeout = 0}"); | 493 | L.requireSuccess("require 'lanes'.configure{shutdown_timeout = 0}"); |
437 | } | 494 | } |
438 | 495 | ||
439 | // ----------------------------------------------------------------------------------------- | 496 | // --------------------------------------------------------------------------------------------- |
440 | 497 | ||
441 | SECTION("shutdown_timeout = 1s") | 498 | SECTION("shutdown_timeout = 1s") |
442 | { | 499 | { |
443 | L.requireSuccess("require 'lanes'.configure{shutdown_timeout = 1}"); | 500 | L.requireSuccess("require 'lanes'.configure{shutdown_timeout = 1}"); |
444 | } | 501 | } |
445 | 502 | ||
446 | // ----------------------------------------------------------------------------------------- | 503 | // --------------------------------------------------------------------------------------------- |
447 | 504 | ||
448 | SECTION("shutdown_timeout = 3600s") | 505 | SECTION("shutdown_timeout = 3600s") |
449 | { | 506 | { |
450 | L.requireSuccess("require 'lanes'.configure{shutdown_timeout = 3600}"); | 507 | L.requireSuccess("require 'lanes'.configure{shutdown_timeout = 3600}"); |
451 | } | 508 | } |
452 | 509 | ||
453 | // ----------------------------------------------------------------------------------------- | 510 | // --------------------------------------------------------------------------------------------- |
454 | 511 | ||
455 | SECTION("shutdown_timeout = <too long>") | 512 | SECTION("shutdown_timeout = <too long>") |
456 | { | 513 | { |
457 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = 3600.001}"); | 514 | L.requireFailure("require 'lanes'.configure{shutdown_timeout = 3600.001}"); |
458 | } | ||
459 | } | 515 | } |
516 | } | ||
517 | |||
518 | // ################################################################################################# | ||
519 | |||
520 | TEST_CASE("lanes.configure.strip_functions") | ||
521 | { | ||
522 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | ||
460 | 523 | ||
461 | // --------------------------------------------------------------------------------------------- | ||
462 | // strip_functions should be a boolean | 524 | // strip_functions should be a boolean |
463 | 525 | ||
464 | SECTION("strip_functions") | 526 | SECTION("strip_functions = <table>") |
465 | { | 527 | { |
466 | SECTION("strip_functions = <table>") | 528 | L.requireFailure("require 'lanes'.configure{strip_functions = {}}"); |
467 | { | 529 | } |
468 | L.requireFailure("require 'lanes'.configure{strip_functions = {}}"); | ||
469 | } | ||
470 | 530 | ||
471 | // ----------------------------------------------------------------------------------------- | 531 | // --------------------------------------------------------------------------------------------- |
472 | 532 | ||
473 | SECTION("strip_functions = <string>") | 533 | SECTION("strip_functions = <string>") |
474 | { | 534 | { |
475 | L.requireFailure("require 'lanes'.configure{strip_functions = 'gluh'}"); | 535 | L.requireFailure("require 'lanes'.configure{strip_functions = 'gluh'}"); |
476 | } | 536 | } |
477 | 537 | ||
478 | // ----------------------------------------------------------------------------------------- | 538 | // --------------------------------------------------------------------------------------------- |
479 | 539 | ||
480 | SECTION("strip_functions = <number>") | 540 | SECTION("strip_functions = <number>") |
481 | { | 541 | { |
482 | L.requireFailure("require 'lanes'.configure{strip_functions = 1}"); | 542 | L.requireFailure("require 'lanes'.configure{strip_functions = 1}"); |
483 | } | 543 | } |
484 | 544 | ||
485 | // ----------------------------------------------------------------------------------------- | 545 | // --------------------------------------------------------------------------------------------- |
486 | 546 | ||
487 | SECTION("strip_functions = <C function>") | 547 | SECTION("strip_functions = <C function>") |
488 | { | 548 | { |
489 | L.requireFailure("require 'lanes'.configure{strip_functions = print}"); | 549 | L.requireFailure("require 'lanes'.configure{strip_functions = print}"); |
490 | } | 550 | } |
491 | 551 | ||
492 | // ----------------------------------------------------------------------------------------- | 552 | // --------------------------------------------------------------------------------------------- |
493 | 553 | ||
494 | SECTION("strip_functions = false") | 554 | SECTION("strip_functions = false") |
495 | { | 555 | { |
496 | L.requireSuccess("require 'lanes'.configure{strip_functions = false}"); | 556 | L.requireSuccess("require 'lanes'.configure{strip_functions = false}"); |
497 | } | 557 | } |
498 | 558 | ||
499 | // ----------------------------------------------------------------------------------------- | 559 | // --------------------------------------------------------------------------------------------- |
500 | 560 | ||
501 | SECTION("strip_functions = true") | 561 | SECTION("strip_functions = true") |
502 | { | 562 | { |
503 | L.requireSuccess("require 'lanes'.configure{strip_functions = true}"); | 563 | L.requireSuccess("require 'lanes'.configure{strip_functions = true}"); |
504 | } | ||
505 | } | 564 | } |
565 | } | ||
566 | |||
567 | // ################################################################################################# | ||
568 | |||
569 | TEST_CASE("lanes.configure.track_lanes") | ||
570 | { | ||
571 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | ||
506 | 572 | ||
507 | // --------------------------------------------------------------------------------------------- | ||
508 | // track_lanes should be a boolean | 573 | // track_lanes should be a boolean |
509 | 574 | ||
510 | SECTION("track_lanes") | 575 | SECTION("track_lanes = <table>") |
511 | { | 576 | { |
512 | SECTION("track_lanes = <table>") | 577 | L.requireFailure("require 'lanes'.configure{track_lanes = {}}"); |
513 | { | 578 | } |
514 | L.requireFailure("require 'lanes'.configure{track_lanes = {}}"); | ||
515 | } | ||
516 | 579 | ||
517 | // ----------------------------------------------------------------------------------------- | 580 | // --------------------------------------------------------------------------------------------- |
518 | 581 | ||
519 | SECTION("track_lanes = <string>") | 582 | SECTION("track_lanes = <string>") |
520 | { | 583 | { |
521 | L.requireFailure("require 'lanes'.configure{track_lanes = 'gluh'}"); | 584 | L.requireFailure("require 'lanes'.configure{track_lanes = 'gluh'}"); |
522 | } | 585 | } |
523 | 586 | ||
524 | // ----------------------------------------------------------------------------------------- | 587 | // --------------------------------------------------------------------------------------------- |
525 | 588 | ||
526 | SECTION("track_lanes = <number>") | 589 | SECTION("track_lanes = <number>") |
527 | { | 590 | { |
528 | L.requireFailure("require 'lanes'.configure{track_lanes = 1}"); | 591 | L.requireFailure("require 'lanes'.configure{track_lanes = 1}"); |
529 | } | 592 | } |
530 | 593 | ||
531 | // ----------------------------------------------------------------------------------------- | 594 | // --------------------------------------------------------------------------------------------- |
532 | 595 | ||
533 | SECTION("track_lanes = <C function>") | 596 | SECTION("track_lanes = <C function>") |
534 | { | 597 | { |
535 | L.requireFailure("require 'lanes'.configure{track_lanes = print}"); | 598 | L.requireFailure("require 'lanes'.configure{track_lanes = print}"); |
536 | } | 599 | } |
537 | 600 | ||
538 | // ----------------------------------------------------------------------------------------- | 601 | // --------------------------------------------------------------------------------------------- |
539 | 602 | ||
540 | SECTION("track_lanes = false") | 603 | SECTION("track_lanes = false") |
541 | { | 604 | { |
542 | L.requireSuccess("require 'lanes'.configure{track_lanes = false}"); | 605 | L.requireSuccess("require 'lanes'.configure{track_lanes = false}"); |
543 | } | 606 | } |
544 | 607 | ||
545 | // ----------------------------------------------------------------------------------------- | 608 | // --------------------------------------------------------------------------------------------- |
546 | 609 | ||
547 | SECTION("track_lanes = true") | 610 | SECTION("track_lanes = true") |
548 | { | 611 | { |
549 | L.requireSuccess("require 'lanes'.configure{track_lanes = true}"); | 612 | L.requireSuccess("require 'lanes'.configure{track_lanes = true}"); |
550 | } | ||
551 | } | 613 | } |
614 | } | ||
615 | |||
616 | // ################################################################################################# | ||
617 | |||
618 | TEST_CASE("lanes.configure.verbose_errors") | ||
619 | { | ||
620 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | ||
552 | 621 | ||
553 | // --------------------------------------------------------------------------------------------- | ||
554 | // verbose_errors should be a boolean | 622 | // verbose_errors should be a boolean |
555 | 623 | ||
556 | SECTION("verbose_errors") | 624 | SECTION("verbose_errors = <table>") |
557 | { | 625 | { |
558 | SECTION("verbose_errors = <table>") | 626 | L.requireFailure("require 'lanes'.configure{verbose_errors = {}}"); |
559 | { | 627 | } |
560 | L.requireFailure("require 'lanes'.configure{verbose_errors = {}}"); | ||
561 | } | ||
562 | 628 | ||
563 | // ----------------------------------------------------------------------------------------- | 629 | // --------------------------------------------------------------------------------------------- |
564 | 630 | ||
565 | SECTION("verbose_errors = <string>") | 631 | SECTION("verbose_errors = <string>") |
566 | { | 632 | { |
567 | L.requireFailure("require 'lanes'.configure{verbose_errors = 'gluh'}"); | 633 | L.requireFailure("require 'lanes'.configure{verbose_errors = 'gluh'}"); |
568 | } | 634 | } |
569 | 635 | ||
570 | // ----------------------------------------------------------------------------------------- | 636 | // --------------------------------------------------------------------------------------------- |
571 | 637 | ||
572 | SECTION("verbose_errors = <number>") | 638 | SECTION("verbose_errors = <number>") |
573 | { | 639 | { |
574 | L.requireFailure("require 'lanes'.configure{verbose_errors = 1}"); | 640 | L.requireFailure("require 'lanes'.configure{verbose_errors = 1}"); |
575 | } | 641 | } |
576 | 642 | ||
577 | // ----------------------------------------------------------------------------------------- | 643 | // --------------------------------------------------------------------------------------------- |
578 | 644 | ||
579 | SECTION("verbose_errors = <C function>") | 645 | SECTION("verbose_errors = <C function>") |
580 | { | 646 | { |
581 | L.requireFailure("require 'lanes'.configure{verbose_errors = print}"); | 647 | L.requireFailure("require 'lanes'.configure{verbose_errors = print}"); |
582 | } | 648 | } |
583 | 649 | ||
584 | // ----------------------------------------------------------------------------------------- | 650 | // --------------------------------------------------------------------------------------------- |
585 | 651 | ||
586 | SECTION("verbose_errors = false") | 652 | SECTION("verbose_errors = false") |
587 | { | 653 | { |
588 | L.requireSuccess("require 'lanes'.configure{verbose_errors = false}"); | 654 | L.requireSuccess("require 'lanes'.configure{verbose_errors = false}"); |
589 | } | 655 | } |
590 | 656 | ||
591 | // ----------------------------------------------------------------------------------------- | 657 | // --------------------------------------------------------------------------------------------- |
592 | 658 | ||
593 | SECTION("verbose_errors = true") | 659 | SECTION("verbose_errors = true") |
594 | { | 660 | { |
595 | L.requireSuccess("require 'lanes'.configure{verbose_errors = true}"); | 661 | L.requireSuccess("require 'lanes'.configure{verbose_errors = true}"); |
596 | } | ||
597 | } | 662 | } |
663 | } | ||
664 | |||
665 | // ################################################################################################# | ||
666 | |||
667 | TEST_CASE("lanes.configure.with_timers") | ||
668 | { | ||
669 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | ||
598 | 670 | ||
599 | // --------------------------------------------------------------------------------------------- | ||
600 | // with_timers should be a boolean | 671 | // with_timers should be a boolean |
601 | 672 | ||
602 | SECTION("with_timers") | 673 | SECTION("with_timers = <table>") |
603 | { | 674 | { |
604 | SECTION("with_timers = <table>") | 675 | L.requireFailure("require 'lanes'.configure{with_timers = {}}"); |
605 | { | 676 | } |
606 | L.requireFailure("require 'lanes'.configure{with_timers = {}}"); | ||
607 | } | ||
608 | 677 | ||
609 | // ----------------------------------------------------------------------------------------- | 678 | // --------------------------------------------------------------------------------------------- |
610 | 679 | ||
611 | SECTION("with_timers = <string>") | 680 | SECTION("with_timers = <string>") |
612 | { | 681 | { |
613 | L.requireFailure("require 'lanes'.configure{with_timers = 'gluh'}"); | 682 | L.requireFailure("require 'lanes'.configure{with_timers = 'gluh'}"); |
614 | } | 683 | } |
615 | 684 | ||
616 | // ----------------------------------------------------------------------------------------- | 685 | // --------------------------------------------------------------------------------------------- |
617 | 686 | ||
618 | SECTION("with_timers = <number>") | 687 | SECTION("with_timers = <number>") |
619 | { | 688 | { |
620 | L.requireFailure("require 'lanes'.configure{with_timers = 1}"); | 689 | L.requireFailure("require 'lanes'.configure{with_timers = 1}"); |
621 | } | 690 | } |
622 | 691 | ||
623 | // ----------------------------------------------------------------------------------------- | 692 | // --------------------------------------------------------------------------------------------- |
624 | 693 | ||
625 | SECTION("with_timers = <C function>") | 694 | SECTION("with_timers = <C function>") |
626 | { | 695 | { |
627 | L.requireFailure("require 'lanes'.configure{with_timers = print}"); | 696 | L.requireFailure("require 'lanes'.configure{with_timers = print}"); |
628 | } | 697 | } |
629 | 698 | ||
630 | // ----------------------------------------------------------------------------------------- | 699 | // --------------------------------------------------------------------------------------------- |
631 | 700 | ||
632 | SECTION("with_timers = false") | 701 | SECTION("with_timers = false") |
633 | { | 702 | { |
634 | L.requireSuccess("require 'lanes'.configure{with_timers = false}"); | 703 | L.requireSuccess("require 'lanes'.configure{with_timers = false}"); |
635 | } | 704 | } |
636 | 705 | ||
637 | // ----------------------------------------------------------------------------------------- | 706 | // --------------------------------------------------------------------------------------------- |
638 | 707 | ||
639 | SECTION("with_timers = true") | 708 | SECTION("with_timers = true") |
640 | { | 709 | { |
641 | L.requireSuccess("require 'lanes'.configure{with_timers = true}"); | 710 | L.requireSuccess("require 'lanes'.configure{with_timers = true}"); |
642 | } | ||
643 | } | 711 | } |
712 | } | ||
713 | |||
714 | // ################################################################################################# | ||
715 | |||
716 | TEST_CASE("lanes.configure.unknown_setting") | ||
717 | { | ||
718 | LuaState L{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ false } }; | ||
644 | 719 | ||
645 | // --------------------------------------------------------------------------------------------- | ||
646 | // any unknown setting should be rejected | 720 | // any unknown setting should be rejected |
647 | 721 | ||
648 | SECTION("unknown_setting") | 722 | SECTION("table setting") |
649 | { | 723 | { |
650 | SECTION("table setting") | 724 | L.requireFailure("require 'lanes'.configure{[{}] = {}}"); |
651 | { | 725 | } |
652 | L.requireFailure("require 'lanes'.configure{[{}] = {}}"); | ||
653 | } | ||
654 | 726 | ||
655 | // ----------------------------------------------------------------------------------------- | 727 | // --------------------------------------------------------------------------------------------- |
656 | 728 | ||
657 | SECTION("boolean setting") | 729 | SECTION("boolean setting") |
658 | { | 730 | { |
659 | L.requireFailure("require 'lanes'.configure{[true] = 'gluh'}"); | 731 | L.requireFailure("require 'lanes'.configure{[true] = 'gluh'}"); |
660 | } | 732 | } |
661 | 733 | ||
662 | // ----------------------------------------------------------------------------------------- | 734 | // --------------------------------------------------------------------------------------------- |
663 | 735 | ||
664 | SECTION("function setting") | 736 | SECTION("function setting") |
665 | { | 737 | { |
666 | L.requireFailure("require 'lanes'.configure{[function() end] = 1}"); | 738 | L.requireFailure("require 'lanes'.configure{[function() end] = 1}"); |
667 | } | 739 | } |
668 | 740 | ||
669 | // ----------------------------------------------------------------------------------------- | 741 | // --------------------------------------------------------------------------------------------- |
670 | 742 | ||
671 | SECTION("number setting") | 743 | SECTION("number setting") |
672 | { | 744 | { |
673 | L.requireFailure("require 'lanes'.configure{[1] = function() end}"); | 745 | L.requireFailure("require 'lanes'.configure{[1] = function() end}"); |
674 | } | 746 | } |
675 | 747 | ||
676 | // ----------------------------------------------------------------------------------------- | 748 | // --------------------------------------------------------------------------------------------- |
677 | 749 | ||
678 | SECTION("unknown string setting") | 750 | SECTION("unknown string setting") |
679 | { | 751 | { |
680 | L.requireFailure("require 'lanes'.configure{['gluh'] = false}"); | 752 | L.requireFailure("require 'lanes'.configure{['gluh'] = false}"); |
681 | } | ||
682 | } | 753 | } |
683 | } | 754 | } |
684 | 755 | ||