lua.sh
1 #! /usr/bin/env atf-sh 2 3 . $(atf_get_srcdir)/test_environment.sh 4 5 tests_init \ 6 script_basic \ 7 script_message \ 8 script_rooteddir \ 9 script_remove \ 10 script_execute \ 11 script_rename \ 12 script_upgrade \ 13 script_filecmp \ 14 script_filecmp_symlink \ 15 script_copy \ 16 script_copy_symlink \ 17 script_sample_not_exists \ 18 script_sample_not_exists_symlink \ 19 script_sample_not_exists_two_files \ 20 script_sample_exists \ 21 script_stat \ 22 script_arguments \ 23 script_metalog_add 24 25 script_arguments_body() { 26 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 27 cat << EOF >> test.ucl 28 lua_scripts: { 29 post-install: [ 30 "-- args: plop\nprint(arg[1])" 31 ] 32 } 33 EOF 34 atf_check \ 35 -o empty \ 36 -e empty \ 37 -s exit:0 \ 38 pkg create -M test.ucl 39 40 mkdir ${TMPDIR}/target 41 atf_check \ 42 -o inline:"plop\n" \ 43 -e empty \ 44 -s exit:0 \ 45 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 46 47 } 48 49 script_basic_body() { 50 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 51 cat << EOF >> test.ucl 52 lua_scripts: { 53 post-install: [ 54 'print("this is post install1")', 55 'print("this is post install2")', 56 ] 57 } 58 EOF 59 60 atf_check \ 61 -o empty \ 62 -e empty \ 63 -s exit:0 \ 64 pkg create -M test.ucl 65 66 mkdir ${TMPDIR}/target 67 atf_check \ 68 -o inline:"this is post install1\nthis is post install2\n" \ 69 -e empty \ 70 -s exit:0 \ 71 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 72 73 } 74 75 script_message_body() { 76 # The message should be the last thing planned 77 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 78 cat << EOF >> test.ucl 79 lua_scripts: { 80 post-install: [ 81 "print(\"this is post install1\")\npkg.print_msg(\"this is a message\")", 82 'print("this is post install2")', 83 ] 84 } 85 EOF 86 87 atf_check \ 88 -o empty \ 89 -e empty \ 90 -s exit:0 \ 91 pkg create -M test.ucl 92 93 mkdir ${TMPDIR}/target 94 atf_check \ 95 -o inline:"this is post install1\nthis is post install2\nthis is a message\n" \ 96 -e empty \ 97 -s exit:0 \ 98 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 99 100 } 101 102 script_rooteddir_body() { 103 # The message should be the last thing planned 104 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 105 cat << EOF >> test.ucl 106 lua_scripts: { 107 post-install: [ <<EOS 108 test = io.open("/file.txt", "w+") 109 test:write("test\n") 110 io.close(test) 111 EOS 112 , 113 ] 114 } 115 EOF 116 117 atf_check \ 118 -o empty \ 119 -e empty \ 120 -s exit:0 \ 121 pkg create -M test.ucl 122 123 mkdir ${TMPDIR}/target 124 atf_check \ 125 -e empty \ 126 -s exit:0 \ 127 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 128 [ -f ${TMPDIR}/target/file.txt ] || atf_fail "File not created in the rootdir" 129 # test the mode 130 atf_check -o match:"^-rw-r--r--" ls -l ${TMPDIR}/target/file.txt 131 atf_check \ 132 -e empty \ 133 -o inline:"test\n" \ 134 -s exit:0 \ 135 cat ${TMPDIR}/target/file.txt 136 137 } 138 139 script_remove_body() { 140 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 141 cat << EOF >> test.ucl 142 lua_scripts: { 143 post-install: [ <<EOS 144 os.remove("/file") 145 EOS 146 , 147 ] 148 } 149 EOF 150 151 atf_check \ 152 -o empty \ 153 -e empty \ 154 -s exit:0 \ 155 pkg create -M test.ucl 156 157 mkdir -p ${TMPDIR}/target/file 158 atf_check \ 159 -e empty \ 160 -s exit:0 \ 161 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 162 test -d ${TMPDIR}/target/file && atf_fail "directory not removed" 163 164 touch ${TMPDIR}/target/file 165 atf_check \ 166 -e empty \ 167 -s exit:0 \ 168 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 169 test -f ${TMPDIR}/target/file && atf_fail "file not removed" 170 return 0 171 } 172 173 script_rename_body() { 174 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 175 cat << EOF >> test.ucl 176 lua_scripts: { 177 post-install: [ <<EOS 178 os.rename("/file","/plop") 179 EOS 180 , 181 ] 182 } 183 EOF 184 185 atf_check \ 186 -o empty \ 187 -e empty \ 188 -s exit:0 \ 189 pkg create -M test.ucl 190 mkdir -p ${TMPDIR}/target 191 touch ${TMPDIR}/target/file 192 atf_check \ 193 -e inline:"${ERR}" \ 194 -s exit:0 \ 195 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 196 test -f ${TMPDIR}/target/file && atf_fail "File not renamed" 197 test -f ${TMPDIR}/target/plop || atf_fail "File not renamed" 198 return 0 199 } 200 201 script_execute_body() { 202 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 203 cat << EOF >> test.ucl 204 lua_scripts: { 205 post-install: [ <<EOS 206 os.execute("echo yeah") 207 EOS 208 , 209 ] 210 } 211 EOF 212 213 ERR="pkg: Failed to execute lua script: [string \"os.execute(\"echo yeah\")\"]:1: os.execute not available 214 pkg: lua script failed\n" 215 216 217 atf_check \ 218 -o empty \ 219 -e empty \ 220 -s exit:0 \ 221 pkg create -M test.ucl 222 mkdir -p ${TMPDIR}/target 223 atf_check \ 224 -e inline:"${ERR}" \ 225 -s exit:0 \ 226 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 227 } 228 229 script_upgrade_body() { 230 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 231 cat << EOF >> test.ucl 232 lua_scripts: { 233 post-install: [ <<EOS 234 if pkg_upgrade then 235 pkg.print_msg("upgrade : ".. tostring(pkg_upgrade)) 236 end 237 EOS 238 , 239 ] 240 } 241 EOF 242 243 244 atf_check \ 245 -o empty \ 246 -e empty \ 247 -s exit:0 \ 248 pkg create -M test.ucl 249 mkdir -p ${TMPDIR}/target 250 atf_check \ 251 -e empty \ 252 -o empty \ 253 -s exit:0 \ 254 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 255 256 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "2" "/" 257 cat << EOF >> test.ucl 258 lua_scripts: { 259 post-install: [ <<EOS 260 if pkg_upgrade then 261 pkg.print_msg("upgrade:".. tostring(pkg_upgrade)) 262 end 263 EOS 264 , 265 ] 266 } 267 EOF 268 269 rm ${TMPDIR}/test-1.pkg 270 atf_check \ 271 -o empty \ 272 -e empty \ 273 -s exit:0 \ 274 pkg create -M test.ucl 275 mkdir -p ${TMPDIR}/target 276 atf_check \ 277 -o ignore \ 278 -e empty \ 279 -s exit:0 \ 280 pkg repo . 281 mkdir reposconf 282 cat <<EOF >> reposconf/repo.conf 283 local: { 284 url: file:///${TMPDIR}, 285 enabled: true 286 } 287 EOF 288 atf_check \ 289 -e empty \ 290 -o match:"upgrade:true" \ 291 -s exit:0 \ 292 pkg -o REPOS_DIR="${TMPDIR}/reposconf" -r ${TMPDIR}/target upgrade -y 293 } 294 295 script_filecmp_body() { 296 echo "sametext" > a 297 echo "sametext" > b 298 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 299 cat << EOF >> test.ucl 300 files: { 301 ${TMPDIR}/a: "" 302 ${TMPDIR}/b: "" 303 } 304 lua_scripts: { 305 post-install: [ <<EOS 306 if pkg.filecmp("${TMPDIR}/a", "${TMPDIR}/b") == 0 then 307 pkg.print_msg("same") 308 else 309 pkg.print_msg("different") 310 end 311 EOS 312 , ] 313 } 314 EOF 315 316 atf_check \ 317 -o empty \ 318 -e empty \ 319 -s exit:0 \ 320 pkg create -M test.ucl 321 322 mkdir ${TMPDIR}/target 323 atf_check \ 324 -o inline:"same\n" \ 325 -e empty \ 326 -s exit:0 \ 327 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 328 329 # Cleanup 330 atf_check \ 331 -o empty \ 332 -e empty \ 333 -s exit:0 \ 334 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target delete -qfy test-1 335 rm -rf ${TMPDIR}/target 336 337 echo "sametext" > a 338 echo "differenttext" > b 339 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 340 cat << EOF >> test.ucl 341 files: { 342 ${TMPDIR}/a: "" 343 ${TMPDIR}/b: "" 344 } 345 lua_scripts: { 346 post-install: [ <<EOS 347 if pkg.filecmp("${TMPDIR}/a", "${TMPDIR}/b") == 0 then 348 pkg.print_msg("same") 349 else 350 pkg.print_msg("different") 351 end 352 EOS 353 , ] 354 } 355 EOF 356 357 atf_check \ 358 -o empty \ 359 -e empty \ 360 -s exit:0 \ 361 pkg create -M test.ucl 362 363 mkdir ${TMPDIR}/target 364 atf_check \ 365 -o inline:"different\n" \ 366 -e empty \ 367 -s exit:0 \ 368 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 369 } 370 371 script_filecmp_symlink_body() { 372 echo "sametext" > a 373 echo "sametext" > b 374 ln -s a c 375 ln -s b d 376 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 377 cat << EOF >> test.ucl 378 files: { 379 ${TMPDIR}/a: "" 380 ${TMPDIR}/b: "" 381 ${TMPDIR}/c: "" 382 ${TMPDIR}/d: "" 383 } 384 lua_scripts: { 385 post-install: [ <<EOS 386 if pkg.filecmp("${TMPDIR}/c", "${TMPDIR}/d") == 0 then 387 pkg.print_msg("same") 388 else 389 pkg.print_msg("different") 390 end 391 EOS 392 , ] 393 } 394 EOF 395 396 atf_check \ 397 -o empty \ 398 -e empty \ 399 -s exit:0 \ 400 pkg create -M test.ucl 401 402 mkdir ${TMPDIR}/target 403 atf_check \ 404 -o inline:"same\n" \ 405 -e empty \ 406 -s exit:0 \ 407 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 408 409 # Cleanup 410 atf_check \ 411 -o empty \ 412 -e empty \ 413 -s exit:0 \ 414 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target delete -qfy test-1 415 rm -rf ${TMPDIR}/target 416 rm a b c d 417 418 echo "sametext" > a 419 echo "differenttext" > b 420 ln -s a c 421 ln -s b d 422 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 423 cat << EOF >> test.ucl 424 files: { 425 ${TMPDIR}/a: "" 426 ${TMPDIR}/b: "" 427 ${TMPDIR}/c: "" 428 ${TMPDIR}/d: "" 429 } 430 lua_scripts: { 431 post-install: [ <<EOS 432 if pkg.filecmp("${TMPDIR}/c", "${TMPDIR}/d") == 0 then 433 pkg.print_msg("same") 434 else 435 pkg.print_msg("different") 436 end 437 EOS 438 , ] 439 } 440 EOF 441 442 atf_check \ 443 -o empty \ 444 -e empty \ 445 -s exit:0 \ 446 pkg create -M test.ucl 447 448 mkdir ${TMPDIR}/target 449 atf_check \ 450 -o inline:"different\n" \ 451 -e empty \ 452 -s exit:0 \ 453 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 454 } 455 456 script_copy_body() { 457 echo "sample text" > a.sample 458 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 459 cat << EOF >> test.ucl 460 files: { 461 ${TMPDIR}/a.sample: "" 462 } 463 lua_scripts: { 464 post-install: [ <<EOS 465 pkg.copy("${TMPDIR}/a.sample", "${TMPDIR}/a") 466 EOS 467 , ] 468 } 469 EOF 470 471 atf_check \ 472 -o empty \ 473 -e empty \ 474 -s exit:0 \ 475 pkg create -M test.ucl 476 477 mkdir ${TMPDIR}/target 478 atf_check \ 479 -o empty \ 480 -e empty \ 481 -s exit:0 \ 482 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 483 484 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a.sample 485 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a 486 atf_check \ 487 -o empty \ 488 -e empty \ 489 -s exit:0 \ 490 cmp -s ${TMPDIR}/target${TMPDIR}/a.sample ${TMPDIR}/target${TMPDIR}/a 491 } 492 493 script_copy_symlink_body() { 494 echo "sample text" > a.sample 495 ln -s a.sample b 496 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 497 cat << EOF >> test.ucl 498 files: { 499 ${TMPDIR}/a.sample: "" 500 ${TMPDIR}/b: "" 501 } 502 lua_scripts: { 503 post-install: [ <<EOS 504 pkg.copy("${TMPDIR}/b", "${TMPDIR}/a") 505 EOS 506 , ] 507 } 508 EOF 509 510 atf_check \ 511 -o empty \ 512 -e empty \ 513 -s exit:0 \ 514 pkg create -M test.ucl 515 516 mkdir ${TMPDIR}/target 517 atf_check \ 518 -o empty \ 519 -e empty \ 520 -s exit:0 \ 521 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 522 523 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a.sample 524 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/b 525 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a 526 atf_check \ 527 -o empty \ 528 -e empty \ 529 -s exit:0 \ 530 cmp -s ${TMPDIR}/target${TMPDIR}/a.sample ${TMPDIR}/target${TMPDIR}/a 531 atf_check \ 532 -o empty \ 533 -e empty \ 534 -s exit:0 \ 535 cmp -s ${TMPDIR}/target${TMPDIR}/b ${TMPDIR}/target${TMPDIR}/a 536 } 537 538 script_sample_not_exists_body() { 539 echo "sample text" > a.sample 540 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "${TMPDIR}" 541 cat << EOF >> test.ucl 542 files: { 543 ${TMPDIR}/a.sample: "" 544 } 545 lua_scripts: { 546 post-install: [ <<EOS 547 -- args: a.sample 548 sample_file = pkg.prefixed_path(arg[1]) 549 if arg[2] == nil then 550 target_file = string.gsub(sample_file,'%.sample$', "") 551 else 552 target_file = pkg.prefixed_path(arg[2]) 553 end 554 if not pkg.stat(target_file) then 555 pkg.copy(sample_file, target_file) 556 end 557 EOS 558 , ] 559 } 560 EOF 561 562 atf_check \ 563 -o empty \ 564 -e empty \ 565 -s exit:0 \ 566 pkg create -M test.ucl 567 568 mkdir ${TMPDIR}/target 569 atf_check \ 570 -o empty \ 571 -e empty \ 572 -s exit:0 \ 573 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 574 575 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a.sample 576 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a 577 atf_check \ 578 -o empty \ 579 -e empty \ 580 -s exit:0 \ 581 cmp -s ${TMPDIR}/target${TMPDIR}/a.sample ${TMPDIR}/target${TMPDIR}/a 582 } 583 584 script_sample_not_exists_symlink_body() { 585 echo "sample text" > a 586 ln -s a b.sample 587 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "${TMPDIR}" 588 cat << EOF >> test.ucl 589 files: { 590 ${TMPDIR}/a: "" 591 ${TMPDIR}/b.sample: "" 592 } 593 lua_scripts: { 594 post-install: [ <<EOS 595 -- args: b.sample 596 sample_file = pkg.prefixed_path(arg[1]) 597 if arg[2] == nil then 598 target_file = string.gsub(sample_file,'%.sample$', "") 599 else 600 target_file = pkg.prefixed_path(arg[2]) 601 end 602 if not pkg.stat(target_file) then 603 pkg.copy(sample_file, target_file) 604 end 605 EOS 606 , ] 607 } 608 EOF 609 610 atf_check \ 611 -o empty \ 612 -e empty \ 613 -s exit:0 \ 614 pkg create -M test.ucl 615 616 mkdir ${TMPDIR}/target 617 atf_check \ 618 -o empty \ 619 -e empty \ 620 -s exit:0 \ 621 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 622 623 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a 624 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/b.sample 625 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/b 626 atf_check \ 627 -o empty \ 628 -e empty \ 629 -s exit:0 \ 630 cmp -s ${TMPDIR}/target${TMPDIR}/b.sample ${TMPDIR}/target${TMPDIR}/b 631 } 632 633 script_sample_not_exists_two_files_body() { 634 echo "sample text" > a 635 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "${TMPDIR}" 636 cat << EOF >> test.ucl 637 files: { 638 ${TMPDIR}/a: "" 639 } 640 lua_scripts: { 641 post-install: [ <<EOS 642 -- args: a b 643 sample_file = pkg.prefixed_path(arg[1]) 644 if arg[2] == nil then 645 target_file = string.gsub(sample_file,'%.sample$', "") 646 else 647 target_file = pkg.prefixed_path(arg[2]) 648 end 649 if not pkg.stat(target_file) then 650 pkg.copy(sample_file, target_file) 651 end 652 EOS 653 , ] 654 } 655 EOF 656 657 atf_check \ 658 -o empty \ 659 -e empty \ 660 -s exit:0 \ 661 pkg create -M test.ucl 662 663 mkdir ${TMPDIR}/target 664 atf_check \ 665 -o empty \ 666 -e empty \ 667 -s exit:0 \ 668 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 669 670 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/a 671 atf_check -o inline:"sample text\n" cat ${TMPDIR}/target${TMPDIR}/b 672 atf_check \ 673 -o empty \ 674 -e empty \ 675 -s exit:0 \ 676 cmp -s ${TMPDIR}/target${TMPDIR}/a ${TMPDIR}/target${TMPDIR}/b 677 } 678 679 script_sample_exists_body() { 680 echo "sample text" > a.sample 681 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 682 cat << EOF >> test.ucl 683 files: { 684 ${TMPDIR}/a.sample: "" 685 } 686 lua_scripts: { 687 post-install: [ <<EOS 688 -- args: a.sample 689 sample_file = pkg.prefixed_path(arg[1]) 690 if arg[2] == nil then 691 target_file = string.gsub(sample_file,'%.sample$', "") 692 else 693 target_file = pkg.prefixed_path(arg[2]) 694 end 695 if not pkg.stat(target_file) then 696 pkg.copy(sample_file, target_file) 697 end 698 EOS 699 , ] 700 } 701 EOF 702 703 mkdir -p ${TMPDIR}/target${TMPDIR} 704 echo "text modified" > ${TMPDIR}/target${TMPDIR}/a 705 atf_check \ 706 -o empty \ 707 -e empty \ 708 -s exit:0 \ 709 pkg create -M test.ucl 710 711 atf_check \ 712 -o empty \ 713 -e empty \ 714 -s exit:0 \ 715 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 716 717 atf_check \ 718 -o empty \ 719 -e empty \ 720 -s exit:1 \ 721 cmp -s ${TMPDIR}/target${TMPDIR}/a.sample ${TMPDIR}/target${TMPDIR}/a 722 } 723 724 script_stat_body() { 725 touch plop 726 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 727 cat << EOF >> test.ucl 728 files: { 729 ${TMPDIR}/plop: "" 730 } 731 lua_scripts: { 732 post-install: [ <<EOS 733 local st = pkg.stat("${TMPDIR}/plop") 734 if st.size == 0 then 735 pkg.print_msg("zero") 736 end 737 pkg.print_msg(st.type) 738 EOS 739 , ] 740 } 741 EOF 742 atf_check \ 743 -o empty \ 744 -e empty \ 745 -s exit:0 \ 746 pkg create -M test.ucl 747 mkdir ${TMPDIR}/target 748 atf_check \ 749 -o inline:"zero\nreg\n" \ 750 -e empty \ 751 -s exit:0 \ 752 pkg -o REPOS_DIR=/dev/null -r ${TMPDIR}/target install -qfy ${TMPDIR}/test-1.pkg 753 } 754 755 script_metalog_add_body() 756 { 757 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg "test" "test" "1" "/" 758 touch plop 759 echo "@(root,wheel,440) /plop" > test.plist 760 cat << EOF >> test.ucl 761 lua_scripts: { 762 post-install: [ <<EOS 763 assert(pkg.metalog_copy("/plop", "/meh")) 764 EOS 765 , ] 766 } 767 EOF 768 769 OUTPUT="./plop type=file uname=root gname=wheel mode=440 770 ./meh type=file uname=root gname=wheel mode=440 771 " 772 atf_check -o ignore pkg create -M test.ucl -p test.plist -r . 773 mkdir ${TMPDIR}/target 774 atf_check -s exit:0 \ 775 pkg \ 776 -o REPOS_DIR=/dev/null \ 777 -o METALOG=${TMPDIR}/METALOG \ 778 -r ${TMPDIR}/target \ 779 install \ 780 -qfy ${TMPDIR}/test-1.pkg 781 atf_check -o inline:"${OUTPUT}" cat METALOG 782 }