@@ -24,6 +24,14 @@ TEST(RuntimeSearch, PayloadOutranksFarm) {
2424 EXPECT_LT (search::rank (Origin::Payload), search::rank (Origin::SubosFarm));
2525 EXPECT_LT (search::rank (Origin::Package), search::rank (Origin::SubosFarm));
2626 EXPECT_LT (search::rank (Origin::SubosFarm), search::rank (Origin::HostDefault));
27+
28+ // #415 — the artifact's own directory (`$ORIGIN`) sits between the packages
29+ // and the farm. This is the ordering #414 was about: with the farm ahead of
30+ // `$ORIGIN` an artifact linked one libX11 and loaded another. A pinned
31+ // payload still wins, because that is the one thing nothing re-points.
32+ EXPECT_LT (search::rank (Origin::Package), search::rank (Origin::Artifact));
33+ EXPECT_LT (search::rank (Origin::Artifact), search::rank (Origin::SubosFarm));
34+ EXPECT_LT (search::rank (Origin::Payload), search::rank (Origin::Artifact));
2735}
2836
2937// `mcpp pack` asks this to decide what may not be baked into a distributable.
@@ -35,6 +43,13 @@ TEST(RuntimeSearch, MachineLocalIsEverythingButTheHostDefaults) {
3543 EXPECT_TRUE (search::is_machine_local (Origin::Package));
3644 EXPECT_TRUE (search::is_machine_local (Origin::SubosFarm));
3745 EXPECT_FALSE (search::is_machine_local (Origin::HostDefault));
46+
47+ // ⚠️ `$ORIGIN` is NOT machine-local, and getting this backwards would be
48+ // worse than the gap it closes: it is resolved by the loader relative to
49+ // the artifact, so it means the same thing wherever that artifact is
50+ // copied — `pack` REWRITES everything else into this form. Marking it
51+ // local would make pack reject the one entry it is trying to produce.
52+ EXPECT_FALSE (search::is_machine_local (Origin::Artifact));
3853}
3954
4055// These strings are PUBLISHED — they are the `origin` field of every entry in
@@ -44,6 +59,7 @@ TEST(RuntimeSearch, MachineLocalIsEverythingButTheHostDefaults) {
4459TEST (RuntimeSearch, OriginNamesArePublishedAndStable) {
4560 EXPECT_EQ (search::to_string (Origin::Payload), " payload" );
4661 EXPECT_EQ (search::to_string (Origin::Package), " package" );
62+ EXPECT_EQ (search::to_string (Origin::Artifact), " artifact" );
4763 EXPECT_EQ (search::to_string (Origin::SubosFarm), " subos_farm" );
4864 EXPECT_EQ (search::to_string (Origin::HostDefault), " host_default" );
4965}
0 commit comments