Files
portmaster/spn/access/module_test.go
Alexandr Stelnykovych 58f4058633 v2 tests fix (#1956)
* v2 tests fix
* test: added tests for sqlite
2025-08-07 02:04:38 +03:00

91 lines
2.3 KiB
Go

package access
import (
"fmt"
"os"
"testing"
"github.com/safing/portmaster/base/config"
"github.com/safing/portmaster/base/database"
_ "github.com/safing/portmaster/base/database/storage/hashmap"
"github.com/safing/portmaster/service/mgr"
"github.com/safing/portmaster/spn/conf"
)
type testInstance struct {
config *config.Config
}
func (stub *testInstance) Config() *config.Config { return stub.config }
func (stub *testInstance) SPNGroup() *mgr.ExtendedGroup { return nil }
func (stub *testInstance) Stopping() bool { return false }
func (stub *testInstance) IsShuttingDown() bool { return false }
func (stub *testInstance) SetCmdLineOperation(f func() error) {}
func (stub *testInstance) DataDir() string { return _dataDir }
var _dataDir string
func TestMain(m *testing.M) {
exitCode := 1
defer func() {
if exitCode != 0 {
os.Exit(exitCode)
}
}()
var err error
// Create a temporary directory for the data
_dataDir, err = os.MkdirTemp("", "")
if err != nil {
fmt.Printf("failed to create temporary data directory: %s", err)
return // Exit with error
}
defer func() { _ = os.RemoveAll(_dataDir) }()
// Initialize the database module
err = database.Initialize(_dataDir)
if err != nil {
fmt.Printf("failed to initialize database module: %s", err)
return // Exit with error
}
_, err = database.Register(&database.Database{
Name: "core",
Description: "Holds core data, such as settings and profiles",
StorageType: "hashmap",
})
if err != nil {
fmt.Printf("failed to register core database: %s", err)
return // Exit with error
}
// Initialize the instance
instance := &testInstance{}
instance.config, err = config.New(instance)
if err != nil {
fmt.Printf("failed to create config module: %s", err)
return // Exit with error
}
module, err = New(instance)
if err != nil {
fmt.Printf("failed to create access module: %s", err)
return // Exit with error
}
err = instance.config.Start()
if err != nil {
fmt.Printf("failed to start config module: %s", err)
return // Exit with error
}
err = module.Start()
if err != nil {
fmt.Printf("failed to start access module: %s", err)
return // Exit with error
}
conf.EnableClient(true)
m.Run()
exitCode = 0 // success
}