149 lines
3.1 KiB
Go
149 lines
3.1 KiB
Go
package test
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
"runtime"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/tecamino/tecamino-dbm/args"
|
|
"github.com/tecamino/tecamino-dbm/cert"
|
|
"github.com/tecamino/tecamino-dbm/dbm"
|
|
"github.com/tecamino/tecamino-dbm/models"
|
|
"github.com/tecamino/tecamino-dbm/server"
|
|
"github.com/tecamino/tecamino-dbm/utils"
|
|
)
|
|
|
|
func TestCreateDps(t *testing.T) {
|
|
dmaHandler, err := dbm.NewDbmHandler(&args.Args{
|
|
Port: models.Port{
|
|
Http: 8100,
|
|
Https: 8101,
|
|
},
|
|
Cert: cert.Cert{
|
|
Organization: "tecamino",
|
|
CertFile: "./cert/cert.pem",
|
|
KeyFile: "./cert/key.pem",
|
|
},
|
|
RootDir: ".",
|
|
DBMFile: "Test",
|
|
Debug: false,
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
rand.NewSource(time.Now().UnixNano())
|
|
|
|
ndps := utils.ListofA2ZZ()
|
|
l := len(ndps)
|
|
s := time.Now()
|
|
// for _, dp := range ndps {
|
|
// for i := 0; i < 100; i++ {
|
|
// err = dmaHandler.ImportDatapoints(&models.Datapoint{
|
|
// Path: fmt.Sprintf("Test:%s:%03d", dp, i),
|
|
// Type: models.RandomType(),
|
|
// Value: rand.Int31(),
|
|
// })
|
|
// if err != nil {
|
|
// t.Fatal(err)
|
|
// }
|
|
// }
|
|
// }
|
|
fmt.Printf("time used to create %d datapoints: %v\n", l*100, time.Since(s))
|
|
|
|
var m runtime.MemStats
|
|
runtime.ReadMemStats(&m)
|
|
|
|
fmt.Printf("Allocated: %.2f MB\n", float64(m.Alloc)/1024/1024)
|
|
fmt.Printf("Total Allocated (ever): %.2f MB\n", float64(m.TotalAlloc)/1024/1024)
|
|
fmt.Printf("System Memory Obtained: %.2f MB\n", float64(m.Sys)/1024/1024)
|
|
fmt.Printf("Heap In Use: %.2f MB\n", float64(m.HeapInuse)/1024/1024)
|
|
fmt.Printf("GC Runs: %d\n", m.NumGC)
|
|
|
|
err = dmaHandler.SaveDb()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestQuery(t *testing.T) {
|
|
dmaHandler, err := dbm.NewDbmHandler(&args.Args{
|
|
Port: models.Port{
|
|
Http: 8100,
|
|
Https: 8101,
|
|
},
|
|
Cert: cert.Cert{
|
|
Organization: "tecamino",
|
|
CertFile: "./cert/cert.pem",
|
|
KeyFile: "./cert/key.pem",
|
|
},
|
|
RootDir: ".",
|
|
DBMFile: "Test",
|
|
Debug: false,
|
|
})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
for i, o := range dmaHandler.DBM.QueryDatapoints(1, uuid.Nil, "Test:A:000") {
|
|
fmt.Println(600, i, o)
|
|
}
|
|
|
|
}
|
|
|
|
func TestUpdateDps(t *testing.T) {
|
|
dmaHandler, err := dbm.NewDbmHandler(&args.Args{
|
|
Port: models.Port{
|
|
Http: 8100,
|
|
Https: 8101,
|
|
},
|
|
Cert: cert.Cert{
|
|
Organization: "tecamino",
|
|
CertFile: "./cert/cert.pem",
|
|
KeyFile: "./cert/key.pem",
|
|
},
|
|
RootDir: ".",
|
|
DBMFile: "Test",
|
|
Debug: false,
|
|
})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
rand.NewSource(time.Now().UnixNano())
|
|
|
|
ndps := utils.ListofA2ZZ()
|
|
l := len(ndps)
|
|
s := time.Now()
|
|
// for j, dp := range ndps {
|
|
// if j > 2 {
|
|
// break
|
|
// }
|
|
// for i := 0; i < 100; i++ {
|
|
// err = dmaHandler.UpdateDatapointValue(fmt.Sprintf("Test:%s:%03d", dp, i), rand.Int31())
|
|
// if err != nil {
|
|
// t.Fatal(err)
|
|
// }
|
|
// }
|
|
// }
|
|
fmt.Printf("time used to update %d datapoints: %v\n", l*100, time.Since(s))
|
|
|
|
time.Sleep(5 * time.Second)
|
|
|
|
fmt.Println("save data")
|
|
err = dmaHandler.SaveDb()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestServer(t *testing.T) {
|
|
fmt.Println("start")
|
|
server := server.NewServer()
|
|
|
|
t.Fatal(server.ServeHttp(8100))
|
|
}
|