mirror of
https://github.com/number571/go-peer.git
synced 2026-09-14 11:05:42 +05:00
update
This commit is contained in:
parent
3aea334d44
commit
3ecf90aad2
@ -17,6 +17,12 @@ func testRunService(addr string) *http.Server {
|
||||
FMessagesCapacity: testutils.TCCapacity,
|
||||
FWorkSizeBits: testutils.TCWorkSize,
|
||||
},
|
||||
FProducers: []string{
|
||||
testutils.TgAddrs[42],
|
||||
},
|
||||
FConsumers: []string{
|
||||
testutils.TgAddrs[43],
|
||||
},
|
||||
}
|
||||
|
||||
logger := logger.NewLogger(
|
||||
|
||||
37
cmd/hidden_lake/loader/internal/handler/index_test.go
Normal file
37
cmd/hidden_lake/loader/internal/handler/index_test.go
Normal file
@ -0,0 +1,37 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
hll_client "github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/client"
|
||||
"github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/settings"
|
||||
testutils "github.com/number571/go-peer/test/_data"
|
||||
)
|
||||
|
||||
func TestHandleIndexAPI(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
service := testRunService(testutils.TgAddrs[45])
|
||||
defer service.Close()
|
||||
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
hllClient := hll_client.NewClient(
|
||||
hll_client.NewRequester(
|
||||
"http://"+testutils.TgAddrs[45],
|
||||
&http.Client{Timeout: time.Second / 2},
|
||||
),
|
||||
)
|
||||
|
||||
title, err := hllClient.GetIndex()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
if title != settings.CTitlePattern {
|
||||
t.Error("incorrect title pattern")
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -1,140 +1,199 @@
|
||||
package handler
|
||||
|
||||
// import (
|
||||
// "fmt"
|
||||
// "net/http"
|
||||
// "os"
|
||||
// "testing"
|
||||
// "time"
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
// hll_client "github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/client"
|
||||
// hls_settings "github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings"
|
||||
// hls_app "github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app"
|
||||
// hlt_client "github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client"
|
||||
// "github.com/number571/go-peer/pkg/client"
|
||||
// "github.com/number571/go-peer/pkg/client/message"
|
||||
// "github.com/number571/go-peer/pkg/crypto/asymmetric"
|
||||
// net_message "github.com/number571/go-peer/pkg/network/message"
|
||||
// "github.com/number571/go-peer/pkg/payload"
|
||||
// testutils "github.com/number571/go-peer/test/_data"
|
||||
// )
|
||||
hll_client "github.com/number571/go-peer/cmd/hidden_lake/loader/pkg/client"
|
||||
hls_settings "github.com/number571/go-peer/cmd/hidden_lake/service/pkg/settings"
|
||||
hls_app "github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/app"
|
||||
hlt_client "github.com/number571/go-peer/cmd/hidden_lake/traffic/pkg/client"
|
||||
"github.com/number571/go-peer/pkg/client"
|
||||
"github.com/number571/go-peer/pkg/client/message"
|
||||
"github.com/number571/go-peer/pkg/crypto/asymmetric"
|
||||
net_message "github.com/number571/go-peer/pkg/network/message"
|
||||
"github.com/number571/go-peer/pkg/payload"
|
||||
"github.com/number571/go-peer/pkg/types"
|
||||
testutils "github.com/number571/go-peer/test/_data"
|
||||
)
|
||||
|
||||
// const (
|
||||
// tcTestData = "./test_data"
|
||||
// tcNameHLT1 = tcTestData + "/hlt_1"
|
||||
// tcNameHLT2 = tcTestData + "/hlt_2"
|
||||
// )
|
||||
const (
|
||||
tcMessageSize = (8 << 10)
|
||||
)
|
||||
|
||||
// func TestTransferAPI(t *testing.T) {
|
||||
// t.Parallel()
|
||||
const (
|
||||
tcTestData = "./test_data"
|
||||
tcNameHLT1 = tcTestData + "/hlt_1"
|
||||
tcNameHLT2 = tcTestData + "/hlt_2"
|
||||
)
|
||||
|
||||
// netMsgSettings := net_message.NewSettings(&net_message.SSettings{
|
||||
// FWorkSizeBits: testutils.TCWorkSize,
|
||||
// })
|
||||
func testCreateHLS(netMsgSettings net_message.ISettings, path, addr string) (types.IApp, hlt_client.IClient, error) {
|
||||
if err := copyWithPaste(path, addr); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
// if err := copyWithPaste(tcNameHLT1, testutils.TgAddrs[42]); err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
// defer os.Remove(tcNameHLT1 + "/hlt.cfg")
|
||||
app1, err := hls_app.InitApp(path)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
// app1, err := hls_app.InitApp(tcNameHLT1)
|
||||
// if err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
// if err := app1.Run(); err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
if err := app1.Run(); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
// hltClient1 := hlt_client.NewClient(
|
||||
// hlt_client.NewBuilder(),
|
||||
// hlt_client.NewRequester(
|
||||
// testutils.TgAddrs[42],
|
||||
// &http.Client{Timeout: time.Minute / 2},
|
||||
// netMsgSettings,
|
||||
// ),
|
||||
// )
|
||||
hltClient1 := hlt_client.NewClient(
|
||||
hlt_client.NewBuilder(),
|
||||
hlt_client.NewRequester(
|
||||
"http://"+addr,
|
||||
&http.Client{Timeout: time.Minute / 2},
|
||||
netMsgSettings,
|
||||
),
|
||||
)
|
||||
|
||||
// msgSettings := message.NewSettings(
|
||||
// &message.SSettings{
|
||||
// FMessageSizeBytes: testutils.TCMessageSize,
|
||||
// },
|
||||
// )
|
||||
// privKey := asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024)
|
||||
// client := client.NewClient(msgSettings, privKey)
|
||||
return app1, hltClient1, nil
|
||||
}
|
||||
|
||||
// for i := 0; i < 5; i++ {
|
||||
// encMsg, err := client.EncryptPayload(
|
||||
// privKey.GetPubKey(),
|
||||
// payload.NewPayload(
|
||||
// uint64(i),
|
||||
// []byte("hello, world!"),
|
||||
// ),
|
||||
// )
|
||||
// if err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
// err = hltClient1.PutMessage(
|
||||
// net_message.NewMessage(
|
||||
// netMsgSettings,
|
||||
// payload.NewPayload(
|
||||
// hls_settings.CNetworkMask,
|
||||
// encMsg.ToBytes(),
|
||||
// ),
|
||||
// ),
|
||||
// )
|
||||
// if err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
func testInitTransfer() {
|
||||
os.RemoveAll(tcNameHLT1)
|
||||
os.RemoveAll(tcNameHLT2)
|
||||
|
||||
// if err := copyWithPaste(tcNameHLT2, testutils.TgAddrs[43]); err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
// defer os.Remove(tcNameHLT2 + "/hlt.cfg")
|
||||
os.Mkdir(tcNameHLT1, 0o777)
|
||||
os.Mkdir(tcNameHLT2, 0o777)
|
||||
}
|
||||
|
||||
// app2, err := hls_app.InitApp(tcNameHLT2)
|
||||
// if err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
// if err := app2.Run(); err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
func TestHandleTransferAPI(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
// service := testRunService(testutils.TgAddrs[44])
|
||||
// defer service.Close()
|
||||
testInitTransfer()
|
||||
defer func() {
|
||||
os.RemoveAll(tcNameHLT1)
|
||||
os.RemoveAll(tcNameHLT2)
|
||||
}()
|
||||
|
||||
// time.Sleep(100 * time.Millisecond)
|
||||
// hllClient := hll_client.NewClient(
|
||||
// hll_client.NewRequester(
|
||||
// testutils.TgAddrs[44],
|
||||
// &http.Client{Timeout: time.Second / 2},
|
||||
// ),
|
||||
// )
|
||||
// INIT SERVICES
|
||||
|
||||
// if err := hllClient.RunTransfer(); err != nil {
|
||||
// t.Error(err)
|
||||
// return
|
||||
// }
|
||||
netMsgSettings := net_message.NewSettings(&net_message.SSettings{
|
||||
FWorkSizeBits: testutils.TCWorkSize,
|
||||
})
|
||||
|
||||
// time.Sleep(5 * time.Second) // TODO
|
||||
// }
|
||||
hltApp1, hltClient1, err := testCreateHLS(netMsgSettings, tcNameHLT1, testutils.TgAddrs[42])
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
defer hltApp1.Stop()
|
||||
|
||||
// func copyWithPaste(pathTo, addr string) error {
|
||||
// cfgDataFmt, err := os.ReadFile(tcTestData + "/hlt_copy.cfg")
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// return os.WriteFile(
|
||||
// pathTo+"/hlt.cfg",
|
||||
// []byte(fmt.Sprintf(string(cfgDataFmt), testutils.TCWorkSize, addr)),
|
||||
// 0o644,
|
||||
// )
|
||||
// }
|
||||
hltApp2, hltClient2, err := testCreateHLS(netMsgSettings, tcNameHLT2, testutils.TgAddrs[43])
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
defer hltApp2.Stop()
|
||||
|
||||
service := testRunService(testutils.TgAddrs[44])
|
||||
defer service.Close()
|
||||
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
hllClient := hll_client.NewClient(
|
||||
hll_client.NewRequester(
|
||||
"http://"+testutils.TgAddrs[44],
|
||||
&http.Client{Timeout: time.Second / 2},
|
||||
),
|
||||
)
|
||||
|
||||
// PUSH MESSAGES
|
||||
|
||||
msgSettings := message.NewSettings(
|
||||
&message.SSettings{
|
||||
FMessageSizeBytes: tcMessageSize,
|
||||
},
|
||||
)
|
||||
privKey := asymmetric.LoadRSAPrivKey(testutils.Tc1PrivKey1024)
|
||||
client := client.NewClient(msgSettings, privKey)
|
||||
|
||||
for i := 0; i < 5; i++ {
|
||||
encMsg, err := client.EncryptPayload(
|
||||
privKey.GetPubKey(),
|
||||
payload.NewPayload(
|
||||
uint64(i),
|
||||
[]byte("hello, world!"),
|
||||
),
|
||||
)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
err = hltClient1.PutMessage(
|
||||
net_message.NewMessage(
|
||||
netMsgSettings,
|
||||
payload.NewPayload(
|
||||
hls_settings.CNetworkMask,
|
||||
encMsg.ToBytes(),
|
||||
),
|
||||
),
|
||||
)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// TRANSFER MESSAGES
|
||||
|
||||
if err := hllClient.RunTransfer(); err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
// LOAD MESSAGES
|
||||
|
||||
hashes, err := hltClient2.GetHashes()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
for i, h := range hashes {
|
||||
netMsg, err := hltClient2.GetMessage(h)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
msg, err := message.LoadMessage(msgSettings, netMsg.GetPayload().ToBytes())
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
pubKey, pld, err := client.DecryptMessage(msg)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
if pld.GetHead() != uint64(i) {
|
||||
t.Error("got bad index")
|
||||
return
|
||||
}
|
||||
|
||||
if pubKey.GetAddress().ToString() != client.GetPubKey().GetAddress().ToString() {
|
||||
t.Error("got bad public key")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func copyWithPaste(pathTo, addr string) error {
|
||||
cfgDataFmt, err := os.ReadFile(tcTestData + "/hlt_copy.cfg")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return os.WriteFile(
|
||||
pathTo+"/hlt.cfg",
|
||||
[]byte(fmt.Sprintf(string(cfgDataFmt), testutils.TCWorkSize, addr)),
|
||||
0o644,
|
||||
)
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ func HandleMessageAPI(pCfg config.IConfig, pWrapperDB database.IWrapperDB, pHTTP
|
||||
|
||||
if netMsg.GetPayload().GetHead() != hls_settings.CNetworkMask {
|
||||
pHTTPLogger.PushWarn(logBuilder.WithMessage("network_mask"))
|
||||
api.Response(pW, http.StatusTeapot, "failed: network mask")
|
||||
api.Response(pW, http.StatusLocked, "failed: network mask")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="96" height="20" role="img" aria-label="coverage: 46%"><title>coverage: 46%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="96" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="35" height="20" fill="#e05d44"/><rect width="96" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="775" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="250">46%</text><text x="775" y="140" transform="scale(.1)" fill="#fff" textLength="250">46%</text></g></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="96" height="20" role="img" aria-label="coverage: 47%"><title>coverage: 47%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="96" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="35" height="20" fill="#e05d44"/><rect width="96" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="775" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="250">47%</text><text x="775" y="140" transform="scale(.1)" fill="#fff" textLength="250">47%</text></g></svg>
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user