client rebuilding in progress

This commit is contained in:
2026-03-04 12:27:52 +02:00
parent 2d34ec5634
commit ae9c29de1e
31 changed files with 908 additions and 467 deletions
+97 -68
View File
@@ -12,16 +12,17 @@ package test
import (
"context"
"fmt"
"math/rand"
"os"
"path/filepath"
//"math/rand"
//"os"
//"path/filepath"
"sync"
"testing"
"time"
"bytes"
"mstore/app/server"
"mstore/pkg/client"
"mstore/pkg/terms"
"mstore/pkg/filecli"
"github.com/stretchr/testify/require"
)
@@ -29,7 +30,7 @@ import (
func TestFileLife(t *testing.T) {
var srvport int64 = 10250
srvdir := t.TempDir()
srvaddr := fmt.Sprintf("mstore:mstore@127.0.0.1:%d", srvport)
srvaddr := fmt.Sprintf("127.0.0.1:%d", srvport)
srv, err := server.NewServer()
require.NoError(t, err)
@@ -78,86 +79,114 @@ func TestFileLife(t *testing.T) {
require.NoError(t, err)
require.True(t, helloRes)
}
filesize := 32
fileaddr := srvaddr+"/foo2/bare.bin"
filedata := []byte("Hello, World")
filesize := int64(len(filedata))
user, pass := "mstore", "mstore"
diraddr := srvaddr+"/foo"
{
// PutFile
tmpdir := t.TempDir()
tmpfile := filepath.Join(tmpdir, "foo.bin")
filedata := make([]byte, filesize)
_, err = rand.Read(filedata)
require.NoError(t, err)
err := os.WriteFile(tmpfile, filedata, 0666)
require.NoError(t, err)
file := bytes.NewReader(filedata)
size := int64(len(filedata))
fmt.Printf("=== PutFile ===\n")
cli := client.NewClient(true)
ctx := context.Background()
ctx, _ = context.WithTimeout(ctx, 1*time.Second)
timeout := 10 * time.Second
ctx, _ := context.WithTimeout(context.Background(), timeout)
ref, err := filecli.ParsePath(fileaddr)
require.NoError(t, err)
fmt.Printf("Raw: %s\n", ref.Raw())
ref.SetUserinfo(user, pass)
err = cli.PutFile(ctx, tmpfile, srvaddr+"/foo.bin")
require.NoError(t, err)
mw := filecli.NewBasicAuthMiddleware(ref.Userinfo())
cli := filecli.NewClient(nil, mw)
err = cli.PutFile(ctx, ref.Raw(), file, size)
require.NoError(t, err)
}
{
// GetFile
file := bytes.NewBuffer(nil)
fmt.Printf("=== GetFile ===\n")
timeout := 10 * time.Second
ctx, _ := context.WithTimeout(context.Background(), timeout)
ref, err := filecli.ParsePath(fileaddr)
require.NoError(t, err)
fmt.Printf("Raw: %s\n", ref.Raw())
ref.SetUserinfo(user, pass)
mw := filecli.NewBasicAuthMiddleware(ref.Userinfo())
cli := filecli.NewClient(nil, mw)
exist, err := cli.GetFile(ctx, ref.Raw(), file)
require.NoError(t, err)
require.True(t, exist)
}
{
// FileInfo
fmt.Printf("=== FileInfo ===\n")
cli := client.NewClient(true)
ctx := context.Background()
ctx, _ = context.WithTimeout(ctx, 1*time.Second)
timeout := 10 * time.Second
ctx, _ := context.WithTimeout(context.Background(), timeout)
ref, err := filecli.ParsePath(fileaddr)
require.NoError(t, err)
fmt.Printf("Raw: %s\n", ref.Raw())
ref.SetUserinfo(user, pass)
exists, file, err := cli.FileInfo(ctx, srvaddr+"/foo.bin")
require.NoError(t, err)
require.True(t, exists)
require.NotNil(t, file)
mw := filecli.NewBasicAuthMiddleware(ref.Userinfo())
cli := filecli.NewClient(nil, mw)
exist, size, digest, err := cli.FileInfo(ctx, ref.Raw())
require.NoError(t, err)
require.True(t, exist)
require.Equal(t, size, filesize)
fmt.Printf("Digest: %s\n", digest)
}
{
// GetFile
fmt.Printf("=== GetFile ===\n")
cli := client.NewClient(true)
ctx := context.Background()
ctx, _ = context.WithTimeout(ctx, 1*time.Second)
// FileList
fmt.Printf("=== FileList ===\n")
timeout := 10 * time.Second
ctx, _ := context.WithTimeout(context.Background(), timeout)
ref, err := filecli.ParsePath(diraddr)
require.NoError(t, err)
ref.SetUserinfo(user, pass)
ref.PathType(filecli.PathTypePrefix)
fmt.Printf("Raw: %s\n", ref.Raw())
tmpdir := t.TempDir()
tmpfile := filepath.Join(tmpdir, "foo.bin")
recsize, err := cli.GetFile(ctx, srvaddr+"/foo.bin", tmpfile)
require.NoError(t, err)
require.Equal(t, int64(filesize), recsize)
}
{
// ListFiles
fmt.Printf("=== ListFiles ===\n")
cli := client.NewClient(true)
ctx := context.Background()
ctx, _ = context.WithTimeout(ctx, 1*time.Second)
files, err := cli.ListFiles(ctx, srvaddr+"/", terms.AsFinePath)
require.NoError(t, err)
require.NotZero(t, len(files))
mw := filecli.NewBasicAuthMiddleware(ref.Userinfo())
cli := filecli.NewClient(nil, mw)
list, err := cli.ListFiles(ctx, ref.Raw())
require.NoError(t, err)
fmt.Printf("List: %s\n", list)
}
{
// DeleteFile
fmt.Printf("=== DeleteFile ===\n")
cli := client.NewClient(true)
ctx := context.Background()
ctx, _ = context.WithTimeout(ctx, 1*time.Second)
fmt.Printf("=== FileList ===\n")
timeout := 10 * time.Second
ctx, _ := context.WithTimeout(context.Background(), timeout)
ref, err := filecli.ParsePath(fileaddr)
require.NoError(t, err)
ref.SetUserinfo(user, pass)
//ref.PathType(filecli.PathTypePrefix)
fmt.Printf("Raw: %s\n", ref.Raw())
err = cli.DeleteFile(ctx, srvaddr+"/foo.bin")
require.NoError(t, err)
mw := filecli.NewBasicAuthMiddleware(ref.Userinfo())
cli := filecli.NewClient(nil, mw)
exist, err := cli.DeleteFile(ctx, ref.Raw())
require.NoError(t, err)
fmt.Printf("Exist: %v\n", exist)
require.True(t, exist)
}
{
// !FileInfo
fmt.Printf("=== FileInfo ===\n")
cli := client.NewClient(true)
ctx := context.Background()
ctx, _ = context.WithTimeout(ctx, 1*time.Second)
exists, _, err := cli.FileInfo(ctx, srvaddr+"/foo.bin")
require.NoError(t, err)
require.False(t, exists)
{
// DeleteFile
fmt.Printf("=== FileList ===\n")
timeout := 10 * time.Second
ctx, _ := context.WithTimeout(context.Background(), timeout)
ref, err := filecli.ParsePath(fileaddr)
require.NoError(t, err)
ref.SetUserinfo(user, pass)
//ref.PathType(filecli.PathTypePrefix)
fmt.Printf("Raw: %s\n", ref.Raw())
mw := filecli.NewBasicAuthMiddleware(ref.Userinfo())
cli := filecli.NewClient(nil, mw)
exist, err := cli.DeleteFile(ctx, ref.Raw())
require.NoError(t, err)
fmt.Printf("Exist: %v\n", exist)
require.False(t, exist)
}
}