menu-traversals #108
0
testdata/main.vis
vendored
0
testdata/main.vis
vendored
118
testdata/testdata.go
vendored
118
testdata/testdata.go
vendored
@ -1,118 +0,0 @@
|
|||||||
package testdata
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"path"
|
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/db"
|
|
||||||
fsdb "git.defalsify.org/vise.git/db/fs"
|
|
||||||
"git.defalsify.org/vise.git/logging"
|
|
||||||
"git.defalsify.org/vise.git/vm"
|
|
||||||
testdataloader "github.com/peteole/testdata-loader"
|
|
||||||
)
|
|
||||||
|
|
||||||
func outNew(sym string, b []byte, tpl string, data map[string]string) error {
|
|
||||||
logg.Debugf("testdata out", "sym", sym)
|
|
||||||
store.SetPrefix(db.DATATYPE_TEMPLATE)
|
|
||||||
err := store.Put(ctx, []byte(sym), []byte(tpl))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
store.SetPrefix(db.DATATYPE_BIN)
|
|
||||||
err = store.Put(ctx, []byte(sym), b)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
store.SetPrefix(db.DATATYPE_STATICLOAD)
|
|
||||||
for k, v := range data {
|
|
||||||
logg.Debugf("testdata out staticload", "sym", sym, "k", k, "v", v)
|
|
||||||
err = store.Put(ctx, []byte(k), []byte(v))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
ctx = context.Background()
|
|
||||||
store = fsdb.NewFsDb()
|
|
||||||
out = outNew
|
|
||||||
logg = logging.NewVanilla().WithDomain("testdata")
|
|
||||||
BaseDir = testdataloader.GetBasePath()
|
|
||||||
DataDir = ""
|
|
||||||
dirLock = false
|
|
||||||
)
|
|
||||||
|
|
||||||
type genFunc func() error
|
|
||||||
|
|
||||||
func terms() error {
|
|
||||||
b := []byte{}
|
|
||||||
b = vm.NewLine(b, vm.MOUT, []string{"yes", "1"}, nil, nil)
|
|
||||||
b = vm.NewLine(b, vm.MOUT, []string{"no", "2"}, nil, nil)
|
|
||||||
b = vm.NewLine(b, vm.HALT, nil, nil, nil)
|
|
||||||
b = vm.NewLine(b, vm.INCMP, []string{"create_pin", "1"}, nil, nil)
|
|
||||||
b = vm.NewLine(b, vm.INCMP, []string{"quit", "2"}, nil, nil)
|
|
||||||
tpl := "Do you agree to terms and conditions?"
|
|
||||||
return out("terms", b, tpl, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
func createPin() error {
|
|
||||||
b := []byte{}
|
|
||||||
b = vm.NewLine(b, vm.MOUT, []string{"exit", "0"}, nil, nil)
|
|
||||||
b = vm.NewLine(b, vm.HALT, nil, nil, nil)
|
|
||||||
b = vm.NewLine(b, vm.INCMP, []string{"0", "1"}, nil, nil)
|
|
||||||
tpl := "create pin"
|
|
||||||
return out("create_pin", b, tpl, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
func quit() error {
|
|
||||||
// b := []byte{}
|
|
||||||
// b = vm.NewLine(b, vm.LOAD, []string{"quit"}, []byte{0x00}, nil)
|
|
||||||
// //b = vm.NewLine(b, vm.RELOAD, []string{"quit"}, []byte{0x00}, nil)
|
|
||||||
// b = vm.NewLine(b, vm.HALT, nil, nil, nil)
|
|
||||||
|
|
||||||
// return out("quit", b, "quit", nil)
|
|
||||||
b := vm.NewLine(nil, vm.LOAD, []string{"quit"}, []byte{0x00}, nil)
|
|
||||||
b = vm.NewLine(b, vm.RELOAD, []string{"quit"}, nil, nil)
|
|
||||||
b = vm.NewLine(b, vm.HALT, nil, nil, nil)
|
|
||||||
|
|
||||||
fp := path.Join(DataDir, "nothing.bin")
|
|
||||||
err := os.WriteFile(fp, b, 0600)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func generate() error {
|
|
||||||
err := os.MkdirAll(DataDir, 0755)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
store = fsdb.NewFsDb()
|
|
||||||
store.Connect(ctx, DataDir)
|
|
||||||
store.SetLock(db.DATATYPE_TEMPLATE, false)
|
|
||||||
store.SetLock(db.DATATYPE_BIN, false)
|
|
||||||
store.SetLock(db.DATATYPE_MENU, false)
|
|
||||||
store.SetLock(db.DATATYPE_STATICLOAD, false)
|
|
||||||
|
|
||||||
fns := []genFunc{terms, createPin, quit}
|
|
||||||
for _, fn := range fns {
|
|
||||||
err = fn()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func Generate() (string, error) {
|
|
||||||
dir, err := ioutil.TempDir("", "vise_testdata_")
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
DataDir = dir
|
|
||||||
dirLock = true
|
|
||||||
err = generate()
|
|
||||||
return dir, err
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user