Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Candiff to compare logs #8

Merged
merged 14 commits into from
Aug 26, 2020
28 changes: 8 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,7 @@ jobs:
tests:
runs-on: ubuntu-18.04
steps:
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Checkout candid repo
uses: actions/checkout@v2
with:
repository: dfinity/candid
- name: Install candid tools
run: |
cd tools/didc
cargo install --root /home/runner --path .
cd ..
cd candiff
cargo install --root /home/runner --path .
cd ../..
echo "::add-path::/home/runner/bin"
- uses: actions/checkout@v2
- name: "didc help (sanity check)"
run: didc --help
- name: "candiff help (sanity check)"
run: candiff --help
- name: "install dfx"
run: |
wget https://sdk.dfinity.org/install.sh
Expand All @@ -39,5 +19,13 @@ jobs:
run: dfx cache install
- name: "install vessel"
run: wget --output-document /home/runner/bin/vessel https://github.com/kritzcreek/vessel/releases/download/v0.4.1/vessel-linux64 && chmod +x /home/runner/bin/vessel
- name: "install candid tool"
run: wget --output-document /home/runner/bin/candiff https://github.com/dfinity/candid/releases/download/2020-08-18/candiff-linux64 && chmod +x /home/runner/bin/candiff
- name: "candiff help (sanity check)"
run: candiff --help
- name: "install didc tool"
run: wget --output-document /home/runner/bin/didc https://github.com/dfinity/candid/releases/download/2020-08-18/didc-linux64 && chmod +x /home/runner/bin/didc
- name: "didc help (sanity check)"
run: didc --help
- name: "test"
run: ./test.sh
15 changes: 15 additions & 0 deletions test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,22 @@ echo == Test BigMap service.
echo

dfx canister install BigMapPutGet

LOOP="(true)";
while [ "$LOOP" == "(true)" ]; do
LOOP=$(dfx canister call BigMapPutGet doNextCall)
done

dfx canister call BigMapPutGet getFullLog --output raw > BigMapPutGet.raw

echo BEGIN BigMapPutGet.raw
cat BigMapPutGet.raw
echo END BigMapPutGet.raw

echo BEGIN 'didc decode `cat BigMapPutGet.raw` > BigMapPutGet.log'
didc decode `cat BigMapPutGet.raw` > BigMapPutGet.log
matthewhammer marked this conversation as resolved.
Show resolved Hide resolved
echo END 'didc decode `cat BigMapPutGet.raw`'

echo BEGIN "candiff compares a known log (left) and latest log (right):"
candiff diff "`cat test/BigMapPutGet.log`" "`cat BigMapPutGet.log`"
echo END candiff comparison.
1 change: 1 addition & 0 deletions test/BigMapPutGet.log
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(vec { record { 0 = variant { 5595855 = record { 0 = vec { 0; }; 1 = vec { 0; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5144726 = vec { 0; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 0 } } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 0; }; 1 = vec { 0; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 1; }; 1 = vec { 1; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5144726 = vec { 0; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 0 } } }; }; record { 0 = variant { 5144726 = vec { 1; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 1 } } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 0; }; 1 = vec { 0; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 1; }; 1 = vec { 1; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 2; }; 1 = vec { 2; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5144726 = vec { 0; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 0 } } }; }; record { 0 = variant { 5144726 = vec { 1; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 1 } } }; }; record { 0 = variant { 5144726 = vec { 2; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 2 } } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 0; }; 1 = vec { 0; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 1; }; 1 = vec { 1; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 2; }; 1 = vec { 2; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 3; }; 1 = vec { 3; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 4; }; 1 = vec { 4; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5144726 = vec { 0; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 0 } } }; }; record { 0 = variant { 5144726 = vec { 1; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 1 } } }; }; record { 0 = variant { 5144726 = vec { 2; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 2 } } }; }; record { 0 = variant { 5144726 = vec { 3; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 3 } } }; }; record { 0 = variant { 5144726 = vec { 4; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 4 } } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 0; }; 1 = vec { 0; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 1; }; 1 = vec { 1; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 2; }; 1 = vec { 2; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 3; }; 1 = vec { 3; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 4; }; 1 = vec { 4; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 5; }; 1 = vec { 5; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 6; }; 1 = vec { 6; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 7; }; 1 = vec { 7; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5595855 = record { 0 = vec { 8; }; 1 = vec { 8; }; } }; 1 = variant { 24860 = variant { 1302973060 = null } }; }; record { 0 = variant { 5144726 = vec { 0; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 0 } } }; }; record { 0 = variant { 5144726 = vec { 1; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 1 } } }; }; record { 0 = variant { 5144726 = vec { 2; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 2 } } }; }; record { 0 = variant { 5144726 = vec { 3; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 3 } } }; }; record { 0 = variant { 5144726 = vec { 4; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 4 } } }; }; record { 0 = variant { 5144726 = vec { 5; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 5 } } }; }; record { 0 = variant { 5144726 = vec { 6; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 6 } } }; }; record { 0 = variant { 5144726 = vec { 7; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 7 } } }; }; record { 0 = variant { 5144726 = vec { 8; } }; 1 = variant { 24860 = variant { 5545011 = variant { 5491937 = 8 } } }; }; })
15 changes: 14 additions & 1 deletion test/BigMapPutGet.mo
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import Prim "mo:prim";
import BigMap "canister:BigMap";
import Iter "mo:base/Iter";
import Debug "mo:base/Debug";
import Buffer "mo:base/Buffer";

import TestBatch "../src/Batch";
import TestTypes "../src/Types";
Expand Down Expand Up @@ -43,7 +44,8 @@ actor {
};

// some defaults
var batch : TestBatch.Batch = newBatches([0, 1, 2, 4, 8
var batch : TestBatch.Batch = newBatches([0, 1
//,2, 4, 8 -- TEMP -- make this faster for CI iteration...
//,128 -- takes an hour or so
]);

Expand Down Expand Up @@ -73,12 +75,23 @@ actor {
Debug.print ("doNextCall - result = " # (debug_show r));
Debug.print "doNextCall - saving result...";
batch.saveResult(r);
callLog.add((c, r));
Debug.print "doNextCall end";
true
}
}
};

public type CallReq = TestTypes.CallReq;
public type CallRes = TestTypes.Res;
public type CallLog = [(CallReq, CallRes)];

var callLog : Buffer.Buffer<(CallReq, CallRes)> = Buffer.Buffer(0);

public func getFullLog () : async CallLog {
callLog.toArray()
};

// Bonus:
// For testing in an open, interactive world:
// Use this to add other tests not-yet expressed above!
Expand Down