mirror of
https://github.com/sot-tech/mochi.git
synced 2026-06-17 01:49:45 -07:00
(partially tested) fix pg tests, add postgres service in workflows
This commit is contained in:
@@ -26,6 +26,18 @@ jobs:
|
||||
redis:
|
||||
image: "eqalpha/keydb"
|
||||
ports: [ "6379:6379" ]
|
||||
postgres:
|
||||
image: "postgres:latest"
|
||||
env:
|
||||
POSTGRES_DB: test
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
ports: [ "5432:5432" ]
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
steps:
|
||||
- uses: "actions/checkout@v3"
|
||||
- uses: "actions/setup-go@v3"
|
||||
|
||||
@@ -16,7 +16,7 @@ CREATE TABLE mo_peers (
|
||||
info_hash bytea NOT NULL,
|
||||
peer_id bytea NOT NULL,
|
||||
address inet NOT NULL,
|
||||
port int2 NOT NULL,
|
||||
port int4 NOT NULL,
|
||||
is_seeder bool NOT NULL,
|
||||
is_v6 bool NOT NULL,
|
||||
created timestamp NOT NULL DEFAULT current_timestamp,
|
||||
@@ -38,7 +38,7 @@ CREATE TABLE mo_kv (
|
||||
)
|
||||
|
||||
var cfg = Config{
|
||||
ConnectionString: "host=127.0.0.1 database=test user=postgres",
|
||||
ConnectionString: "host=127.0.0.1 database=test user=postgres pool_max_conns=50",
|
||||
PingQuery: "SELECT 1",
|
||||
Peer: peerQueryConf{
|
||||
AddQuery: "INSERT INTO mo_peers VALUES($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (info_hash, peer_id, address, port) DO UPDATE SET created = EXCLUDED.created, is_seeder = EXCLUDED.is_seeder",
|
||||
|
||||
@@ -36,7 +36,7 @@ func generateInfoHashes() (a [ihCount]bittorrent.InfoHash) {
|
||||
func generatePeers() (a [peersCount]bittorrent.Peer) {
|
||||
for i := range a {
|
||||
var ip []byte
|
||||
if i < peersCount/2 {
|
||||
if i%2 == 0 {
|
||||
ip = make([]byte, net.IPv4len)
|
||||
} else {
|
||||
ip = make([]byte, net.IPv6len)
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/sot-tech/mochi/storage"
|
||||
)
|
||||
|
||||
const kv_store_ctx = "test"
|
||||
const kvStoreCtx = "test"
|
||||
|
||||
func init() {
|
||||
_ = log.ConfigureLogger("", "warn", false, false)
|
||||
@@ -200,11 +200,11 @@ func (th *testHolder) LeecherPutGraduateAnnounceDeleteAnnounce(t *testing.T) {
|
||||
|
||||
func (th *testHolder) CustomPutContainsLoadDelete(t *testing.T) {
|
||||
for _, c := range testData {
|
||||
err := th.st.Put(kv_store_ctx, storage.Entry{Key: c.peer.String(), Value: c.ih.RawString()})
|
||||
err := th.st.Put(kvStoreCtx, storage.Entry{Key: c.peer.String(), Value: c.ih.RawString()})
|
||||
require.Nil(t, err)
|
||||
|
||||
// check if exist in ctx we put
|
||||
contains, err := th.st.Contains(kv_store_ctx, c.peer.String())
|
||||
contains, err := th.st.Contains(kvStoreCtx, c.peer.String())
|
||||
require.Nil(t, err)
|
||||
require.True(t, contains)
|
||||
|
||||
@@ -214,7 +214,7 @@ func (th *testHolder) CustomPutContainsLoadDelete(t *testing.T) {
|
||||
require.False(t, contains)
|
||||
|
||||
// check value and type in ctx we put
|
||||
out, err := th.st.Load(kv_store_ctx, c.peer.String())
|
||||
out, err := th.st.Load(kvStoreCtx, c.peer.String())
|
||||
require.Nil(t, err)
|
||||
ih, err := bittorrent.NewInfoHash(out)
|
||||
require.Nil(t, err)
|
||||
@@ -225,7 +225,7 @@ func (th *testHolder) CustomPutContainsLoadDelete(t *testing.T) {
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, dummy)
|
||||
|
||||
err = th.st.Delete(kv_store_ctx, c.peer.String())
|
||||
err = th.st.Delete(kvStoreCtx, c.peer.String())
|
||||
require.Nil(t, err)
|
||||
|
||||
contains, err = th.st.Contains("", c.peer.String())
|
||||
@@ -245,29 +245,29 @@ func (th *testHolder) CustomBulkPutContainsLoadDelete(t *testing.T) {
|
||||
Value: c.ih.RawString(),
|
||||
})
|
||||
}
|
||||
err := th.st.Put(kv_store_ctx, pairs...)
|
||||
err := th.st.Put(kvStoreCtx, pairs...)
|
||||
require.Nil(t, err)
|
||||
|
||||
// check if exist in ctx we put
|
||||
for _, k := range keys {
|
||||
contains, err := th.st.Contains(kv_store_ctx, k)
|
||||
contains, err := th.st.Contains(kvStoreCtx, k)
|
||||
require.Nil(t, err)
|
||||
require.True(t, contains)
|
||||
}
|
||||
|
||||
// check value and type in ctx we put
|
||||
for _, p := range pairs {
|
||||
out, _ := th.st.Load(kv_store_ctx, p.Key)
|
||||
out, _ := th.st.Load(kvStoreCtx, p.Key)
|
||||
ih, err := bittorrent.NewInfoHash(out)
|
||||
require.Nil(t, err)
|
||||
require.Equal(t, p.Value, ih.RawString())
|
||||
}
|
||||
|
||||
err = th.st.Delete(kv_store_ctx, keys...)
|
||||
err = th.st.Delete(kvStoreCtx, keys...)
|
||||
require.Nil(t, err)
|
||||
|
||||
for _, k := range keys {
|
||||
contains, err := th.st.Contains(kv_store_ctx, k)
|
||||
contains, err := th.st.Contains(kvStoreCtx, k)
|
||||
require.Nil(t, err)
|
||||
require.False(t, contains)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user