diff options
Diffstat (limited to 'paludis')
-rw-r--r-- | paludis/repositories/e/e_repository_TEST_exheres_0.cc | 32 | ||||
-rwxr-xr-x | paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh | 74 |
2 files changed, 106 insertions, 0 deletions
diff --git a/paludis/repositories/e/e_repository_TEST_exheres_0.cc b/paludis/repositories/e/e_repository_TEST_exheres_0.cc index 0ccc21e5a..4116784d8 100644 --- a/paludis/repositories/e/e_repository_TEST_exheres_0.cc +++ b/paludis/repositories/e/e_repository_TEST_exheres_0.cc @@ -669,6 +669,38 @@ TEST(ERepository, ReallyInstallExheres0) { const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches( + PackageDepSpec(parse_user_package_dep_spec("=cat/permitted-directories-1", + &env, { })), nullptr, { }))]->last()); + ASSERT_TRUE(bool(id)); + EXPECT_THROW(id->perform_action(action), ActionFailedError); + } + + { + const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches( + PackageDepSpec(parse_user_package_dep_spec("=cat/permitted-directories-2", + &env, { })), nullptr, { }))]->last()); + ASSERT_TRUE(bool(id)); + id->perform_action(action); + } + + { + const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches( + PackageDepSpec(parse_user_package_dep_spec("=cat/permitted-directories-3", + &env, { })), nullptr, { }))]->last()); + ASSERT_TRUE(bool(id)); + EXPECT_THROW(id->perform_action(action), ActionFailedError); + } + + { + const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches( + PackageDepSpec(parse_user_package_dep_spec("=cat/permitted-directories-4", + &env, { })), nullptr, { }))]->last()); + ASSERT_TRUE(bool(id)); + id->perform_action(action); + } + + { + const std::shared_ptr<const PackageID> id(*env[selection::RequireExactlyOne(generator::Matches( PackageDepSpec(parse_user_package_dep_spec("=cat/exvolatile-1", &env, { })), nullptr, { }))]->last()); ASSERT_TRUE(bool(id)); diff --git a/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh b/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh index b61892cc2..69215f609 100755 --- a/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh +++ b/paludis/repositories/e/e_repository_TEST_exheres_0_setup.sh @@ -1205,6 +1205,80 @@ src_install() { EOT } END +mkdir -p "packages/cat/permitted-directories" +cat <<'END' > packages/cat/permitted-directories/permitted-directories-1.ebuild || exit 1 +DESCRIPTION="The Long Description" +SUMMARY="The Short Description" +HOMEPAGE="http://example.com/" +DOWNLOADS="" +SLOT="0" +MYOPTIONS="spork" +LICENCES="GPL-2" +PLATFORMS="test" +WORK="${WORKBASE}" + +src_install() { + insinto / + hereins it <<EOT +EOT +} +END +cat <<'END' > packages/cat/permitted-directories/permitted-directories-2.ebuild || exit 1 +DESCRIPTION="The Long Description" +SUMMARY="The Short Description" +HOMEPAGE="http://example.com/" +DOWNLOADS="" +SLOT="0" +MYOPTIONS="spork" +LICENCES="GPL-2" +PLATFORMS="test" +WORK="${WORKBASE}" + +src_install() { + insinto /var + hereins it <<EOT +EOT +} +END +cat <<'END' > packages/cat/permitted-directories/permitted-directories-3.ebuild || exit 1 +DESCRIPTION="The Long Description" +SUMMARY="The Short Description" +HOMEPAGE="http://example.com/" +DOWNLOADS="" +SLOT="0" +MYOPTIONS="spork" +LICENCES="GPL-2" +PLATFORMS="test" +WORK="${WORKBASE}" + +src_install() { + insinto /var/run + hereins it <<EOT +EOT +} +END +cat <<'END' > packages/cat/permitted-directories/permitted-directories-4.ebuild || exit 1 +DESCRIPTION="The Long Description" +SUMMARY="The Short Description" +HOMEPAGE="http://example.com/" +DOWNLOADS="" +SLOT="0" +MYOPTIONS="spork" +LICENCES="GPL-2" +PLATFORMS="test" +WORK="${WORKBASE}" + +pkg_setup() { + exdirectory --forbid /foo + exdirectory --allow /foo/bar/baz +} + +src_install() { + insinto /foo/bar/baz + hereins it <<EOT +EOT +} +END mkdir -p "packages/cat/exvolatile" cat <<'END' > packages/cat/exvolatile/exvolatile-1.ebuild || exit 1 DESCRIPTION="The Long Description" |