Replace Python launcher with native Go UI
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"archive/tar"
|
||||
"compress/gzip"
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestLoggingPreferenceRoundTrip(t *testing.T) {
|
||||
path := filepath.Join(t.TempDir(), "config", "logging.conf")
|
||||
if load_logging_pref(path) {
|
||||
t.Fatal("missing logging preference must default to disabled")
|
||||
}
|
||||
if err := save_logging_pref(path, true); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !load_logging_pref(path) {
|
||||
t.Fatal("saved logging preference was not loaded")
|
||||
}
|
||||
info, err := os.Stat(path)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if info.Mode().Perm() != 0600 {
|
||||
t.Fatalf("logging preference mode = %o; want 600", info.Mode().Perm())
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateLogArchiveIncludesOnlyRegularLogFiles(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
logDir := filepath.Join(root, "logs")
|
||||
cacheDir := filepath.Join(root, "cache")
|
||||
if err := os.MkdirAll(logDir, 0700); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(filepath.Join(logDir, "first.log"), []byte("first\n"), 0600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.WriteFile(filepath.Join(logDir, "ignore.txt"), []byte("ignore\n"), 0600); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
archivePath, err := create_log_archive(logDir, cacheDir)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer os.Remove(archivePath)
|
||||
file, err := os.Open(archivePath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
gzipReader, err := gzip.NewReader(file)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer gzipReader.Close()
|
||||
tarReader := tar.NewReader(gzipReader)
|
||||
names := []string{}
|
||||
contents := ""
|
||||
for {
|
||||
header, err := tarReader.Next()
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
names = append(names, header.Name)
|
||||
data, err := io.ReadAll(tarReader)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
contents += string(data)
|
||||
}
|
||||
if !reflect.DeepEqual(names, []string{"first.log"}) || contents != "first\n" {
|
||||
t.Fatalf("archive contains names %v and data %q", names, contents)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user