Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
radicle/identity: Stabilize tests
Archived lorenz opened 6 months ago

The following tests generated an unstable object ID, thus linearizing history in a different order, causing failures. Fix this by using the stable-commits feature of radicle-cob.

thread 'cob::identity::test::test_identity_redact_revision'
panicked at crates\radicle\src\cob\identity.rs:1338:9:
assertion `left == right` failed
  left: [Oid(b4307ded046befba374bf8cd9fd787592ceb615c),
         Oid(a04165e3d3717c5a1413ec78e852bd8e1bb049d4),
         Oid(820d3faf5b507888173b26ccd1a2a81666bd2573),
         Oid(30ca6f078a401bf542049594fbb1c8d2371c9819),
         Oid(9e9c46971014b123a31cd1195078f95c2e319419)]
 right: [Oid(b4307ded046befba374bf8cd9fd787592ceb615c),
         Oid(a04165e3d3717c5a1413ec78e852bd8e1bb049d4),
         Oid(820d3faf5b507888173b26ccd1a2a81666bd2573),
         Oid(9e9c46971014b123a31cd1195078f95c2e319419),
         Oid(30ca6f078a401bf542049594fbb1c8d2371c9819)]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'cob::identity::test::test_identity_reject_concurrent'
panicked at crates\radicle\src\cob\identity.rs:1494:9:
assertion `left == right` failed
  left: [Oid(b4307ded046befba374bf8cd9fd787592ceb615c),
         Oid(bce4233f6a09d6e9c021ba436e3c6923a1a78f31),
         Oid(7cacb23be7079c16c8ad1b2458ae5bac95a1295b),
         Oid(12b00e2e871b699c84c20427a64e029934c15ec4),
         Oid(07431c8d80c11492ef248e07126370e874de3435),
         Oid(98b42450159a359c2f482652c66d79b05d0af624)]
 right: [Oid(b4307ded046befba374bf8cd9fd787592ceb615c),
         Oid(bce4233f6a09d6e9c021ba436e3c6923a1a78f31),
         Oid(7cacb23be7079c16c8ad1b2458ae5bac95a1295b),
         Oid(98b42450159a359c2f482652c66d79b05d0af624),
         Oid(12b00e2e871b699c84c20427a64e029934c15ec4),
         Oid(07431c8d80c11492ef248e07126370e874de3435)]
1 file changed +12 -4 10e7b94c ad50cf3b
modified crates/radicle/src/cob/identity.rs
@@ -1323,12 +1323,16 @@ mod test {
            .unwrap();

        bob.repo.fetch(alice);
-
        let a3 = alice_identity.redact(a2, &alice.signer).unwrap();
+
        let a3 = cob::git::stable::with_advanced_timestamp(|| {
+
            alice_identity.redact(a2, &alice.signer).unwrap()
+
        });
        assert!(alice_identity.revision(&a1).is_some());
        assert_eq!(alice_identity.timeline, vec![a0, a1, a2, a3]);

        let mut bob_identity = Identity::load_mut(&*bob.repo).unwrap();
-
        let b1 = bob_identity.accept(&a2, &bob.signer).unwrap();
+
        let b1 = cob::git::stable::with_advanced_timestamp(|| {
+
            bob_identity.accept(&a2, &bob.signer).unwrap()
+
        });

        assert_eq!(bob_identity.timeline, vec![a0, a1, a2, b1]);
        assert_eq!(bob_identity.revision(&a2).unwrap().state, State::Accepted);
@@ -1454,11 +1458,15 @@ mod test {

        // Bob accepts alice's revision.
        let mut bob_identity = Identity::load_mut(&*bob.repo).unwrap();
-
        let b1 = bob_identity.accept(&a2, &bob.signer).unwrap();
+
        let b1 = cob::git::stable::with_advanced_timestamp(|| {
+
            bob_identity.accept(&a2, &bob.signer).unwrap()
+
        });

        // Eve rejects the revision, not knowing.
        let mut eve_identity = Identity::load_mut(&*eve.repo).unwrap();
-
        let e1 = eve_identity.reject(a2, &eve.signer).unwrap();
+
        let e1 = cob::git::stable::with_advanced_timestamp(|| {
+
            eve_identity.reject(a2, &eve.signer).unwrap()
+
        });
        assert!(eve_identity.revision(&a2).unwrap().is_active());

        // Then she submits a new revision.