You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.2 KiB
63 lines
1.2 KiB
package binarydist
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"os/exec"
|
|
"testing"
|
|
)
|
|
|
|
func TestPatch(t *testing.T) {
|
|
mustWriteRandFile("test.old", 1e3)
|
|
mustWriteRandFile("test.new", 1e3)
|
|
|
|
got, err := ioutil.TempFile("/tmp", "bspatch.")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
os.Remove(got.Name())
|
|
|
|
err = exec.Command("bsdiff", "test.old", "test.new", "test.patch").Run()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
err = Patch(mustOpen("test.old"), got, mustOpen("test.patch"))
|
|
if err != nil {
|
|
t.Fatal("err", err)
|
|
}
|
|
|
|
ref, err := got.Seek(0, 2)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
t.Logf("got %d bytes", ref)
|
|
if n := fileCmp(got, mustOpen("test.new")); n > -1 {
|
|
t.Fatalf("produced different output at pos %d", n)
|
|
}
|
|
}
|
|
|
|
func TestPatchHk(t *testing.T) {
|
|
got, err := ioutil.TempFile("/tmp", "bspatch.")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
os.Remove(got.Name())
|
|
|
|
err = Patch(mustOpen("testdata/sample.old"), got, mustOpen("testdata/sample.patch"))
|
|
if err != nil {
|
|
t.Fatal("err", err)
|
|
}
|
|
|
|
ref, err := got.Seek(0, 2)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
t.Logf("got %d bytes", ref)
|
|
if n := fileCmp(got, mustOpen("testdata/sample.new")); n > -1 {
|
|
t.Fatalf("produced different output at pos %d", n)
|
|
}
|
|
}
|