Add another test case

andybalholm
Mar 30, 2023, 6:22 PM
2Z24Q3STRCDUQENT2FDULF4BLVWNYITEIPNFUIWCEAD6QEU33BJAC

Dependencies

  • [2] TLR47XSA Parse AddRoot hunk
  • [3] EVHNGDT7 parse FileAdd hunk
  • [4] WQWRJHHF Handle Option<Hash> better
  • [*] 7VEHGTEY Switch from reading text format to reading binary format.
  • [*] PHRWK7NK Parse change headers

Change contents

  • file addition: MRE2H23UNRCHMZIKISVB4T7DTDDVVK7DCCSLFEMXOXLLQNQVELGAC.change (----------)
    [6.1]
  • file addition: DSPWN6DOSXQ3IIPW2JNOLFP32C7SQTSQZ7BBSEGA4UWNXQXNMS6AC.change (----------)
    [6.1]
  • replacement in hunk.go at line 180
    [3.3257][3.3257:3267]()
    isHunk()
    [3.3257]
    [3.3267]
    atoms() []Atom
  • replacement in hunk.go at line 206
    [3.3625][3.3625:3652]()
    func (FileAdd) isHunk() {}
    [3.3625]
    [3.3652]
    func (f FileAdd) atoms() []Atom {
    if f.Contents == nil {
    return []Atom{f.AddName, f.AddInode}
    }
    return []Atom{f.AddName, f.AddInode, f.Contents}
    }
  • replacement in hunk.go at line 240
    [2.86][2.86:113]()
    func (AddRoot) isHunk() {}
    [2.86]
    [2.113]
    func (a AddRoot) atoms() []Atom {
    return []Atom{a.Name, a.Inode}
    }
  • edit in change_test.go at line 170
    [2.2016]
    [7.1094]
    {
    hash: "MRE2H23UNRCHMZIKISVB4T7DTDDVVK7DCCSLFEMXOXLLQNQVELGAC",
    data: MRE2H2,
    parsed: Change{
    Version: 6,
    Message: "original",
    Description: "example from https://jneem.github.io/merging/",
    Timestamp: time.Date(2023, 3, 29, 23, 34, 47, 120245376, time.UTC),
    Authors: []map[string]string{
    {"key": "BCEXYuKWaQ96btsk8UyBZWHLjn1Brhykv8tuZGPRjzFn"},
    },
    Dependencies: []Hash{mustHashFromBase32("DSPWN6DOSXQ3IIPW2JNOLFP32C7SQTSQZ7BBSEGA4UWNXQXNMS6AC")},
    ExtraKnown: []Hash{},
    Metadata: []byte{},
    Changes: []Hunk{
    FileAdd{
    AddName: NewVertex{
    UpContext: []Position{
    {
    Change: OptionalHash{true, mustHashFromBase32("DSPWN6DOSXQ3IIPW2JNOLFP32C7SQTSQZ7BBSEGA4UWNXQXNMS6AC")},
    Pos: 1,
    },
    },
    DownContext: []Position{},
    Flag: 17,
    Start: 0,
    End: 32,
    Inode: Position{
    Change: OptionalHash{true, Hash{}},
    Pos: 0,
    },
    },
    AddInode: NewVertex{
    UpContext: []Position{
    {
    Change: OptionalHash{},
    Pos: 32,
    },
    },
    DownContext: []Position{},
    Flag: 17,
    Start: 33,
    End: 33,
    Inode: Position{
    Change: OptionalHash{true, Hash{}},
    Pos: 0,
    },
    },
    Contents: NewVertex{
    UpContext: []Position{
    {
    Change: OptionalHash{},
    Pos: 33,
    },
    },
    DownContext: []Position{},
    Flag: 1,
    Start: 34,
    End: 47,
    Inode: Position{
    Change: OptionalHash{},
    Pos: 33,
    },
    },
    Path: "todo.txt",
    Encoding: "UTF-8",
    },
    },
    ContentsHash: mustHashFromBase32("JQF7WZBVPIA2Z4VKCKGLBQFNX77WJUKI7Z6CFFD4A56URAKVFYPAC"),
    Unhashed: map[string]any{
    "signature": "3MQQMzBdjRGQCZ7RcvMoAFA3BQsU4EFEU15R34oNKsYmsmqcrBt6qfMesq5B5akKBoQtm5yhpjCpcnMxbTWHgUxJ",
    },
    Contents: []byte{
    0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x6f, 0x64, 0x6f, 0x2e, 0x74,
    0x78, 0x74, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x54, 0x46, 0x2d, 0x38,
    0x00, 0x00, 0x74, 0x6f, 0x2d, 0x64, 0x6f, 0x0a, 0x2a, 0x20, 0x77, 0x6f, 0x72, 0x6b, 0x0a, 0x00,
    },
    },
    text: `message = 'original'
    description = 'example from https://jneem.github.io/merging/'
    timestamp = '2023-03-29T23:34:47.120245376Z'
    [[authors]]
    key = 'BCEXYuKWaQ96btsk8UyBZWHLjn1Brhykv8tuZGPRjzFn'
    # Dependencies
    [2] DSPWN6DOSXQ3IIPW2JNOLFP32C7SQTSQZ7BBSEGA4UWNXQXNMS6AC #
    # Hunks
    1. File addition: "todo.txt" in "" "UTF-8"
    up 2.1, new 0:32
    + to-do
    + * work`,
    },