Skip to content

Instantly share code, notes, and snippets.

@richardlehane
Created November 16, 2014 10:59
Show Gist options
  • Select an option

  • Save richardlehane/b24cc3526104107adce1 to your computer and use it in GitHub Desktop.

Select an option

Save richardlehane/b24cc3526104107adce1 to your computer and use it in GitHub Desktop.
Differences between pronom and droid
This shows the fails when I compare signatures from PRONOM report files with DROID signature file v79.
A little background:
In siegfried, signatures are lists of frames. Frames enclose patterns. Frames tell you where to test, patterns perform the test.
The test output below shows the text printout of failing signatures. Within the parentheses, pipes separate each frame.
In the first example, the "F" means it is a fixed frame. This implies a fixed offset from either the BOF (B) or EOF (E). The first example is therefore at a fixed offset of 0 bytes from the BOF. The enclosed pattern is a sequence (seq) of 4 bytes. The frame that follows is also a fixed frame (F) but it is anchored to the previous frame (P), not to the BOF. In EOF segments you will see frames to the left of the EOF frame are anchored to their succeeding (S) frames.
The last frame in the test output below is a WW which stands for window. In the example below, it should be a window of between 0 and 16000 bytes from the EOF. The DROID signature differs in that it is just showing a fixed frame (i.e. a fixed offset of 0 from the EOF). The other frame type is the wild frame (WL). This can appear at any offset from its anchor (either B, E, P or S).
Sequences (seq) aren't the only patterns. In the test output below, r1 appears: this is a range (r) of 1 bytes length. Choices, Lists, Not-Sequences, and Non-ranges are the other possible patterns (but none in the test output below).
--- FAIL: TestParseDroid (0.57 seconds)
Parse Droid: signatures for fmt/41 are not equal:
Reports: (F B:0 seq4 | F P:2 seq18 | WW E:0-16000 seq2)
Droid: (F B:0 seq4 | F P:2 seq18 | F E:0 seq2)
Parse Droid: signatures for x-fmt/387 are not equal:
Reports: (F B:0 seq4 | WW B:10-65535 seq12)
Droid: (F B:0 seq4 | WW B:10-65545 seq12)
Parse Droid: signatures for x-fmt/387 are not equal:
Reports: (F B:0 seq4 | WW B:10-65535 seq12)
Droid: (F B:0 seq4 | WW B:10-65545 seq12)
Parse Droid: signatures for x-fmt/388 are not equal:
Reports: (F B:0 seq4 | WW B:10-65535 seq12)
Droid: (F B:0 seq4 | WW B:10-65545 seq12)
Parse Droid: signatures for fmt/59 are not equal:
Reports: (WW B:512-8192 seq2 | F P:2 seq4)
Droid: (WW B:512-8704 seq2 | F P:2 seq4)
Parse Droid: signatures for x-fmt/399 are not equal:
Reports: (F B:0 seq4 | WW B:10-65535 seq12)
Droid: (F B:0 seq4 | WW B:10-65545 seq12)
Parse Droid: signatures for x-fmt/399 are not equal:
Reports: (F B:0 seq4 | WW B:10-65535 seq12)
Droid: (F B:0 seq4 | WW B:10-65545 seq12)
Parse Droid: signatures for x-fmt/412 are not equal:
Reports: (F B:0 seq4 | WL P seq20 | WW E:18-65531 seq4)
Droid: (F B:0 seq4 | WL P seq20 | WW E:18-65549 seq4)
Parse Droid: signatures for fmt/154 are not equal:
Reports: (F B:0 seq4 | WW E:4-4084 seq12)
Droid: (F B:0 seq4 | WW E:4-4088 seq12)
Parse Droid: signatures for fmt/154 are not equal:
Reports: (F B:0 seq4 | WW E:4-4084 seq12)
Droid: (F B:0 seq4 | WW E:4-4088 seq12)
Parse Droid: signatures for fmt/155 are not equal:
Reports: (F B:0 seq4 | F S:1 seq4 | WW E:4-4088 seq3)
Droid: (F B:0 seq4 | F S:1 seq4 | WW E:4-4092 seq3)
Parse Droid: signatures for fmt/155 are not equal:
Reports: (F B:0 seq4 | WW E:5-4089 seq7)
Droid: (F B:0 seq4 | WW E:5-4094 seq7)
Parse Droid: signatures for x-fmt/453 are not equal:
Reports: (WW B:12-128 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4)
Droid: (WW B:12-140 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4 | WW P:0-256 seq4)
Parse Droid: signatures for fmt/279 are not equal:
Reports: (WW B:0-4 seq8)
Droid: (F B:0 seq8)
Parse Droid: signatures for fmt/385 are not equal:
Reports: (F B:0 seq4 | F P:0 r1 | F P:0 seq1 | F P:3 seq1 | F P:1 seq1 | F P:1 seq1 | F P:3 seq1 | WL P seq6 | F P:2 seq2 | F P:2 seq4 | F P:0 r1 | F P:0 seq5 | WW B:18-1024 seq6 | F P:2 seq2 | F P:2 seq4 | F P:0 r1 | F P:0 seq5)
Droid: (F B:0 seq4 | F P:0 r1 | F P:0 seq1 | F P:3 seq1 | F P:1 seq1 | F P:1 seq1 | F P:3 seq1 | WL P seq6 | F P:2 seq2 | F P:2 seq4 | F P:0 r1 | F P:0 seq5 | WL B seq6 | F P:2 seq2 | F P:2 seq4 | F P:0 r1 | F P:0 seq5)
Parse Droid: signatures for fmt/435 are not equal:
Reports: (WL B seq1 | WW P:1-2 seq7 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq8 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq6 | WW S:1-2 seq1 | WW E:1-2 seq3)
Droid: (WL B seq1 | WW P:1-2 seq7 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq8 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq6 | WW S:1-2 seq1 | WW E:1-3 seq3)
Parse Droid: signatures for fmt/532 are not equal:
Reports: (WW B:1-2 seq1 | WW P:1-2 seq7 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq8 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq6 | WW S:1-2 seq1 | WW E:1-2 seq3)
Droid: (WW B:1-3 seq1 | WW P:1-2 seq7 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq8 | WW P:1-2 seq3 | WW P:1-2 seq6 | WM P:1 seq1 | WW P:1-2 seq6 | WW S:1-2 seq1 | WW E:1-3 seq3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment