| @@ -373,26 +373,80 @@ override__unknown_variable_body() { | | | @@ -373,26 +373,80 @@ override__unknown_variable_body() { |
373 | shtk_config_init Z VAR1 | | 373 | shtk_config_init Z VAR1 |
374 | for arg in A=b VAR2=d; do | | 374 | for arg in A=b VAR2=d; do |
375 | if ( shtk_config_override "${arg}" ) >out 2>err; then | | 375 | if ( shtk_config_override "${arg}" ) >out 2>err; then |
376 | atf_fail "Invalid configuration override ${arg} succeeded" | | 376 | atf_fail "Invalid configuration override ${arg} succeeded" |
377 | else | | 377 | else |
378 | cat err | | 378 | cat err |
379 | grep "Unknown configuration variable ${var}" err >/dev/null \ | | 379 | grep "Unknown configuration variable ${var}" err >/dev/null \ |
380 | || atf_fail "Expected error message not found" | | 380 | || atf_fail "Expected error message not found" |
381 | fi | | 381 | fi |
382 | done | | 382 | done |
383 | } | | 383 | } |
384 | | | 384 | |
385 | | | 385 | |
| | | 386 | atf_test_case run_hook__ok |
| | | 387 | run_hook__ok_body() { |
| | | 388 | shtk_config_init VAR1 VAR2 VAR3 |
| | | 389 | shtk_config_set VAR1 "first" |
| | | 390 | shtk_config_set VAR3 "third" |
| | | 391 | |
| | | 392 | test_hook() { |
| | | 393 | echo "ARGS=${*}" |
| | | 394 | echo "VAR1=${VAR1:-unset}" |
| | | 395 | echo "VAR2=${VAR2:-unset}" |
| | | 396 | echo "VAR3=${VAR3:-unset}" |
| | | 397 | } |
| | | 398 | |
| | | 399 | VAR1=ignore-this; VAR2=ignore-this; VAR3=ignore-this |
| | | 400 | shtk_config_run_hook test_hook arg1 arg2 >out 2>err |
| | | 401 | |
| | | 402 | cat >expout <<EOF |
| | | 403 | ARGS=arg1 arg2 |
| | | 404 | VAR1=first |
| | | 405 | VAR2=unset |
| | | 406 | VAR3=third |
| | | 407 | EOF |
| | | 408 | atf_check -o file:expout cat out |
| | | 409 | atf_check -o empty cat err |
| | | 410 | } |
| | | 411 | |
| | | 412 | |
| | | 413 | atf_test_case run_hook__fail |
| | | 414 | run_hook__fail_body() { |
| | | 415 | shtk_config_init VAR1 |
| | | 416 | shtk_config_set VAR1 "first" |
| | | 417 | |
| | | 418 | test_hook() { |
| | | 419 | echo "VAR1=${VAR1:-unset}" |
| | | 420 | false |
| | | 421 | } |
| | | 422 | |
| | | 423 | ( |
| | | 424 | if shtk_config_run_hook test_hook >out 2>err; then |
| | | 425 | atf_fail "Hook failure did not report an error" |
| | | 426 | fi |
| | | 427 | ) |
| | | 428 | |
| | | 429 | cat >expout <<EOF |
| | | 430 | VAR1=first |
| | | 431 | EOF |
| | | 432 | cat >experr <<EOF |
| | | 433 | EOF |
| | | 434 | atf_check -o file:expout cat out |
| | | 435 | grep "The hook test_hook returned an error" err >/dev/null \ |
| | | 436 | || atf_fail "Expected error message not found" |
| | | 437 | } |
| | | 438 | |
| | | 439 | |
386 | atf_init_test_cases() { | | 440 | atf_init_test_cases() { |
387 | atf_add_test_case is_valid__true | | 441 | atf_add_test_case is_valid__true |
388 | atf_add_test_case is_valid__false | | 442 | atf_add_test_case is_valid__false |
389 | | | 443 | |
390 | atf_add_test_case has__true__empty | | 444 | atf_add_test_case has__true__empty |
391 | atf_add_test_case has__true__not_empty | | 445 | atf_add_test_case has__true__not_empty |
392 | atf_add_test_case has__false | | 446 | atf_add_test_case has__false |
393 | | | 447 | |
394 | atf_add_test_case get__ok__empty | | 448 | atf_add_test_case get__ok__empty |
395 | atf_add_test_case get__ok__not_empty | | 449 | atf_add_test_case get__ok__not_empty |
396 | atf_add_test_case get__undefined_variable | | 450 | atf_add_test_case get__undefined_variable |
397 | | | 451 | |
398 | atf_add_test_case get_bool__true | | 452 | atf_add_test_case get_bool__true |
| @@ -411,14 +465,17 @@ atf_init_test_cases() { | | | @@ -411,14 +465,17 @@ atf_init_test_cases() { |
411 | atf_add_test_case unset__ok | | 465 | atf_add_test_case unset__ok |
412 | atf_add_test_case unset__unknown_variable | | 466 | atf_add_test_case unset__unknown_variable |
413 | | | 467 | |
414 | atf_add_test_case load__filter_variables | | 468 | atf_add_test_case load__filter_variables |
415 | atf_add_test_case load__allow_undefine | | 469 | atf_add_test_case load__allow_undefine |
416 | atf_add_test_case load__current_directory | | 470 | atf_add_test_case load__current_directory |
417 | atf_add_test_case load__missing_file | | 471 | atf_add_test_case load__missing_file |
418 | atf_add_test_case load__invalid_file | | 472 | atf_add_test_case load__invalid_file |
419 | | | 473 | |
420 | atf_add_test_case override__ok_before_load | | 474 | atf_add_test_case override__ok_before_load |
421 | atf_add_test_case override__not_ok_after_load | | 475 | atf_add_test_case override__not_ok_after_load |
422 | atf_add_test_case override__invalid_format | | 476 | atf_add_test_case override__invalid_format |
423 | atf_add_test_case override__unknown_variable | | 477 | atf_add_test_case override__unknown_variable |
| | | 478 | |
| | | 479 | atf_add_test_case run_hook__ok |
| | | 480 | atf_add_test_case run_hook__fail |
424 | } | | 481 | } |