Merge: * auto-update: use backup directory format without version: "agh-backup"

Close #801

* commit '885b660808a848277f080c78dc7e6107afdbabb7':
  * auto-update: refactor test;  test getUpdateInfo()
  * auto-update: use backup directory format without version: "agh-backup"
This commit is contained in:
Simon Zolin 2019-06-27 18:04:37 +03:00
commit b45e8e80fb
2 changed files with 50 additions and 13 deletions

View File

@ -164,7 +164,7 @@ func getUpdateInfo(jsonData []byte) (*updateInfo, error) {
} }
u.updateDir = filepath.Join(workDir, fmt.Sprintf("agh-update-%s", u.newVer)) u.updateDir = filepath.Join(workDir, fmt.Sprintf("agh-update-%s", u.newVer))
u.backupDir = filepath.Join(workDir, fmt.Sprintf("agh-backup-%s", versionString)) u.backupDir = filepath.Join(workDir, "agh-backup")
_, pkgFileName := filepath.Split(u.pkgURL) _, pkgFileName := filepath.Split(u.pkgURL)
if len(pkgFileName) == 0 { if len(pkgFileName) == 0 {

View File

@ -8,20 +8,57 @@ import (
) )
func TestDoUpdate(t *testing.T) { func TestDoUpdate(t *testing.T) {
config.DNS.Port = 0 config.DNS.Port = 0
config.ourWorkingDir = "." config.ourWorkingDir = "..." // set absolute path
u := updateInfo{ newver := "v0.96"
pkgURL: "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.95/AdGuardHome_v0.95_linux_amd64.tar.gz",
pkgName: "./AdGuardHome_v0.95_linux_amd64.tar.gz", data := `{
newVer: "v0.95", "version": "v0.96",
updateDir: "./agh-update-v0.95", "announcement": "AdGuard Home v0.96 is now available!",
backupDir: "./agh-backup-v0.94", "announcement_url": "",
configName: "./AdGuardHome.yaml", "download_windows_amd64": "",
updateConfigName: "./agh-update-v0.95/AdGuardHome/AdGuardHome.yaml", "download_windows_386": "",
curBinName: "./AdGuardHome", "download_darwin_amd64": "",
bkpBinName: "./agh-backup-v0.94/AdGuardHome", "download_linux_amd64": "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.96/AdGuardHome_linux_amd64.tar.gz",
newBinName: "./agh-update-v0.95/AdGuardHome/AdGuardHome", "download_linux_386": "",
"download_linux_arm": "",
"download_linux_arm64": "",
"download_linux_mips": "",
"download_linux_mipsle": "",
"selfupdate_min_version": "v0.0"
}`
uu, err := getUpdateInfo([]byte(data))
if err != nil {
t.Fatalf("getUpdateInfo: %s", err)
} }
u := updateInfo{
pkgURL: "https://github.com/AdguardTeam/AdGuardHome/releases/download/" + newver + "/AdGuardHome_linux_amd64.tar.gz",
pkgName: config.ourWorkingDir + "/agh-update-" + newver + "/AdGuardHome_linux_amd64.tar.gz",
newVer: newver,
updateDir: config.ourWorkingDir + "/agh-update-" + newver,
backupDir: config.ourWorkingDir + "/agh-backup",
configName: config.ourWorkingDir + "/AdGuardHome.yaml",
updateConfigName: config.ourWorkingDir + "/agh-update-" + newver + "/AdGuardHome/AdGuardHome.yaml",
curBinName: config.ourWorkingDir + "/AdGuardHome",
bkpBinName: config.ourWorkingDir + "/agh-backup/AdGuardHome",
newBinName: config.ourWorkingDir + "/agh-update-" + newver + "/AdGuardHome/AdGuardHome",
}
if uu.pkgURL != u.pkgURL ||
uu.pkgName != u.pkgName ||
uu.newVer != u.newVer ||
uu.updateDir != u.updateDir ||
uu.backupDir != u.backupDir ||
uu.configName != u.configName ||
uu.updateConfigName != u.updateConfigName ||
uu.curBinName != u.curBinName ||
uu.bkpBinName != u.bkpBinName ||
uu.newBinName != u.newBinName {
t.Fatalf("getUpdateInfo: %v != %v", uu, u)
}
e := doUpdate(&u) e := doUpdate(&u)
if e != nil { if e != nil {
t.Fatalf("FAILED: %s", e) t.Fatalf("FAILED: %s", e)