mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-12-25 04:49:05 +01:00
Fix bug in fsBackend and add tests for file utils
This commit is contained in:
parent
ab1a9fa781
commit
6d8a3aa256
1
.gitignore
vendored
1
.gitignore
vendored
@ -16,3 +16,4 @@ var/job.db-shm
|
||||
var/job.db-wal
|
||||
|
||||
dist/
|
||||
*.db
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 NHR@FAU, University Erlangen-Nuremberg.
|
||||
// Copyright (C) 2023 NHR@FAU, University Erlangen-Nuremberg.
|
||||
// All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
@ -20,6 +20,7 @@ func GetFilesize(filePath string) int64 {
|
||||
fileInfo, err := os.Stat(filePath)
|
||||
if err != nil {
|
||||
log.Errorf("Error on Stat %s: %v", filePath, err)
|
||||
return 0
|
||||
}
|
||||
return fileInfo.Size()
|
||||
}
|
||||
@ -28,6 +29,7 @@ func GetFilecount(path string) int {
|
||||
files, err := os.ReadDir(path)
|
||||
if err != nil {
|
||||
log.Errorf("Error on ReadDir %s: %v", path, err)
|
||||
return 0
|
||||
}
|
||||
|
||||
return len(files)
|
||||
|
71
internal/util/util_test.go
Normal file
71
internal/util/util_test.go
Normal file
@ -0,0 +1,71 @@
|
||||
// Copyright (C) 2023 NHR@FAU, University Erlangen-Nuremberg.
|
||||
// All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
package util_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/ClusterCockpit/cc-backend/internal/util"
|
||||
)
|
||||
|
||||
func TestCheckFileExists(t *testing.T) {
|
||||
tmpdir := t.TempDir()
|
||||
filePath := filepath.Join(tmpdir, "version.txt")
|
||||
|
||||
if err := os.WriteFile(filePath, []byte(fmt.Sprintf("%d", 1)), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !util.CheckFileExists(filePath) {
|
||||
t.Fatal("expected true, got false")
|
||||
}
|
||||
|
||||
filePath = filepath.Join(tmpdir, "version-test.txt")
|
||||
if util.CheckFileExists(filePath) {
|
||||
t.Fatal("expected false, got true")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetFileSize(t *testing.T) {
|
||||
tmpdir := t.TempDir()
|
||||
filePath := filepath.Join(tmpdir, "data.json")
|
||||
|
||||
if s := util.GetFilesize(filePath); s > 0 {
|
||||
t.Fatalf("expected 0, got %d", s)
|
||||
}
|
||||
|
||||
if err := os.WriteFile(filePath, []byte(fmt.Sprintf("%d", 1)), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if s := util.GetFilesize(filePath); s == 0 {
|
||||
t.Fatal("expected not 0, got 0")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetFileCount(t *testing.T) {
|
||||
tmpdir := t.TempDir()
|
||||
|
||||
if c := util.GetFilecount(tmpdir); c != 0 {
|
||||
t.Fatalf("expected 0, got %d", c)
|
||||
}
|
||||
|
||||
filePath := filepath.Join(tmpdir, "data-1.json")
|
||||
if err := os.WriteFile(filePath, []byte(fmt.Sprintf("%d", 1)), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
filePath = filepath.Join(tmpdir, "data-2.json")
|
||||
if err := os.WriteFile(filePath, []byte(fmt.Sprintf("%d", 1)), 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if c := util.GetFilecount(tmpdir); c != 2 {
|
||||
t.Fatalf("expected 2, got %d", c)
|
||||
}
|
||||
|
||||
if c := util.GetFilecount(filePath); c != 0 {
|
||||
t.Fatalf("expected 0, got %d", c)
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 NHR@FAU, University Erlangen-Nuremberg.
|
||||
// Copyright (C) 2023 NHR@FAU, University Erlangen-Nuremberg.
|
||||
// All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
@ -348,7 +348,7 @@ func (fsa *FsArchive) Compress(jobs []*schema.Job) {
|
||||
|
||||
for _, job := range jobs {
|
||||
fileIn := getPath(job, fsa.path, "data.json")
|
||||
if !util.CheckFileExists(fileIn) && util.GetFilesize(fileIn) > 2000 {
|
||||
if util.CheckFileExists(fileIn) && util.GetFilesize(fileIn) > 2000 {
|
||||
util.CompressFile(fileIn, getPath(job, fsa.path, "data.json.gz"))
|
||||
cnt++
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user