Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: add function of create group and send messages #217

Merged
merged 88 commits into from
Aug 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
ba61c81
Merge branch 'v3'
wangchuxiao-dev Jul 12, 2023
bc2174e
Merge branch 'main' of github.com:OpenIMSDK/openim-sdk-core
wangchuxiao-dev Jul 12, 2023
0c7a00c
fix: message status change
FGadvancer Jul 13, 2023
e03b15d
fix: page pull change args
FGadvancer Jul 13, 2023
3fa955e
feat: add wasm multipart upload
FGadvancer Jul 13, 2023
9eaf88f
feat: add wasm multipart upload
FGadvancer Jul 13, 2023
e57c163
feat: add wasm multipart upload
FGadvancer Jul 13, 2023
2c02723
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 13, 2023
d99cccc
test: log add
FGadvancer Jul 13, 2023
e63b764
test: log add
FGadvancer Jul 13, 2023
e667eb5
refactor: remove session type
FGadvancer Jul 13, 2023
3f8b39a
refactor: remove session type
FGadvancer Jul 13, 2023
984cf6b
refactor: remove session type
FGadvancer Jul 13, 2023
9983259
refactor: remove session type
FGadvancer Jul 13, 2023
d013659
refactor: syncer update
FGadvancer Jul 14, 2023
be4c141
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 14, 2023
de709ac
refactor: syncer update
FGadvancer Jul 14, 2023
8287ba6
refactor: syncer update
FGadvancer Jul 14, 2023
b9f1d84
refactor: syncer update
FGadvancer Jul 14, 2023
8dd5d1a
refactor: syncer update
FGadvancer Jul 14, 2023
2634932
refactor: syncer update
FGadvancer Jul 14, 2023
88d9051
refactor: go-cmp change version
FGadvancer Jul 14, 2023
4174b33
feat: wasm add upload file
FGadvancer Jul 15, 2023
f6c9ab8
feat: wasm add upload file
FGadvancer Jul 15, 2023
79d3843
refactor: user update
FGadvancer Jul 17, 2023
5edcd9e
refactor: upload file add content type
FGadvancer Jul 17, 2023
746cb9e
refactor: conversation trigger
FGadvancer Jul 17, 2023
1b22fe7
refactor: conversation trigger
FGadvancer Jul 17, 2023
9cf90df
fix: msg file ContentType
withchao Jul 17, 2023
ff25932
Merge remote-tracking branch 'origin/main'
withchao Jul 17, 2023
54977ff
test: log add
FGadvancer Jul 17, 2023
d836b81
Merge remote-tracking branch 'origin/main'
FGadvancer Jul 17, 2023
985d370
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 17, 2023
826bb27
chore: makefile update
FGadvancer Jul 19, 2023
f52cd69
fix: sync user info error
FGadvancer Jul 19, 2023
6c17845
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 19, 2023
0e2d6d8
fix: send video message blocking
FGadvancer Jul 20, 2023
1badb6c
Merge branch 'main' of github.com:OpenIMSDK/openim-sdk-core
wangchuxiao-dev Jul 21, 2023
34f0c68
fix: logout don't callback when network can not establish
FGadvancer Jul 21, 2023
0678d05
fix: logout don't callback when network can not establish
FGadvancer Jul 21, 2023
1f4b474
new feat: sync less data
wangchuxiao-dev Jul 26, 2023
7acc584
new feat: sync less data
wangchuxiao-dev Jul 26, 2023
26cc0db
Merge remote-tracking branch 'upstream/main'
wangchuxiao-dev Jul 26, 2023
7e5c2dc
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 27, 2023
f4a4b86
fix: still reconn when token is invalid
FGadvancer Jul 27, 2023
01de88f
fix: sendMessage not oss add content
FGadvancer Jul 27, 2023
942e6bb
Merge branch 'main' of github.com:OpenIMSDK/openim-sdk-core
wangchuxiao-dev Jul 27, 2023
3dff70d
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 27, 2023
057a826
flag
hanzhixiao Jul 27, 2023
a3af895
Merge branch 'main' of github.com:hanzhixiao/openim-sdk-core into dev
hanzhixiao Jul 27, 2023
ef047a6
fix bug: friend wasm sql
wangchuxiao-dev Jul 27, 2023
8ad2367
Merge remote-tracking branch 'upstream/main'
wangchuxiao-dev Jul 27, 2023
0897512
Merge branch 'main' of github.com:OpenIMSDK/openim-sdk-core
wangchuxiao-dev Jul 27, 2023
34d6130
fix: kick logout
FGadvancer Jul 27, 2023
af84ef8
fix: kick logout
FGadvancer Jul 27, 2023
061115e
fix bug: friend msg syncer
wangchuxiao-dev Jul 27, 2023
eda96ef
Merge pull request #174 from wangchuxiao-dev/main
wangchuxiao-dev Jul 27, 2023
acf5d9c
fix: wasm db close
FGadvancer Jul 27, 2023
995d610
fix: wasm db close
FGadvancer Jul 27, 2023
de629ba
Fix: wasm close db (#176)
FGadvancer Jul 27, 2023
8012fd4
fix: search messages add localEx field
FGadvancer Jul 28, 2023
b9083b9
test
hanzhixiao Jul 28, 2023
97ade9a
Merge branch 'develop' of github.com:OpenIMSDK/openim-sdk-core into dev
hanzhixiao Jul 28, 2023
47fadb7
Merge pull request #178 from hanzhixiao/dev
withchao Jul 28, 2023
bd72711
fix bug: user update name and faceurl not sync
wangchuxiao-dev Jul 28, 2023
71b74d4
Merge remote-tracking branch 'upstream/develop'
wangchuxiao-dev Jul 28, 2023
d73a522
Merge pull request #180 from wangchuxiao-dev/main
wangchuxiao-dev Jul 28, 2023
15edff4
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 28, 2023
6e63a00
feat: conversation local ex
wangchuxiao-dev Jul 28, 2023
c00d831
feat: conversation local ex
wangchuxiao-dev Jul 28, 2023
dbfbc2c
Merge remote-tracking branch 'upstream/develop'
FGadvancer Jul 31, 2023
7aabb7d
Merge remote-tracking branch 'upstream/main'
FGadvancer Jul 31, 2023
a562dbb
fix bug: sync failed
wangchuxiao-dev Jul 31, 2023
b78f98d
Merge remote-tracking branch 'upstream/main'
wangchuxiao-dev Jul 31, 2023
c53b4a0
presuretest code
wangchuxiao-dev Aug 1, 2023
01e4fd4
test
wangchuxiao-dev Aug 1, 2023
09f8cc5
Merge pull request #190 from wangchuxiao-dev/main
wangchuxiao-dev Aug 1, 2023
5808590
test: pressure test code
wangchuxiao-dev Aug 2, 2023
4359adf
Merge pull request #197 from wangchuxiao-dev/main
wangchuxiao-dev Aug 2, 2023
3b0eda0
fix: program will crash when websocket just initialized and send message
FGadvancer Aug 4, 2023
155c050
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 4, 2023
d2900f0
Merge branch 'develop'
FGadvancer Aug 4, 2023
9757ed9
feature: add function of unInitSDK
FGadvancer Aug 4, 2023
f7d867f
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 7, 2023
a8e5671
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 9, 2023
bcc5c36
Merge remote-tracking branch 'upstream/main'
FGadvancer Aug 9, 2023
4c764c5
test: add function of create group and send messages
FGadvancer Aug 10, 2023
4861b63
test: add function of create group and send messages
FGadvancer Aug 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion internal/conversation_msg/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ func (c *Conversation) SyncConversationHashReadSeqs(ctx context.Context) error {
log.ZDebug(ctx, "update conversations", "conversations", conversations)
if len(conversationIDs) > 0 {
common.TriggerCmdUpdateConversation(ctx, common.UpdateConNode{Action: constant.ConChange, Args: conversationIDs}, c.GetCh())
common.TriggerCmdUpdateConversation(ctx, common.UpdateConNode{Action: constant.TotalUnreadMessageChanged, Args: conversationIDs}, c.GetCh())
common.TriggerCmdUpdateConversation(ctx, common.UpdateConNode{Action: constant.TotalUnreadMessageChanged}, c.GetCh())
}
return nil
}
6 changes: 4 additions & 2 deletions internal/interaction/long_conn_mgr.go
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,8 @@ func (c *LongConnMgr) writePump(ctx context.Context) {
c.closedErr = ErrChanClosed
return
}
log.ZDebug(c.ctx, "writePump recv message", "message", message.Message)
log.ZDebug(c.ctx, "writePump recv message", "reqIdentifier", message.Message.ReqIdentifier,
"operationID", message.Message.OperationID, "sendID", message.Message.SendID)
resp, err := c.sendAndWaitResp(&message.Message)
if err != nil {
resp = &GeneralWsResp{
Expand Down Expand Up @@ -452,7 +453,8 @@ func (c *LongConnMgr) handleMessage(message []byte) error {
fallthrough
case constant.SetBackgroundStatus:
if err := c.Syncer.NotifyResp(ctx, wsResp); err != nil {
log.ZError(ctx, "notifyResp failed", err, "wsResp", wsResp)
log.ZError(ctx, "notifyResp failed", err, "reqIdentifier", wsResp.ReqIdentifier, "errCode",
wsResp.ErrCode, "errMsg", wsResp.ErrMsg, "msgIncr", wsResp.MsgIncr, "operationID", wsResp.OperationID)
}
default:
// log.Error(wsResp.OperationID, "type failed, ", wsResp.ReqIdentifier)
Expand Down
5 changes: 2 additions & 3 deletions internal/util/post.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,10 @@ func ApiPost(ctx context.Context, api string, req, resp any) (err error) {
return err
}
defer func(start time.Time) {
end := time.Now()
if err == nil {
log.ZDebug(ctx, "CallApi", "api", api, "use", "state", "success", time.Duration(end.UnixNano()-start.UnixNano()))
log.ZDebug(ctx, "CallApi", "api", api, "state", "success", "cost time", time.Since(start).Milliseconds())
} else {
log.ZError(ctx, "CallApi", err, "api", api, "use", "state", "failed", time.Duration(end.UnixNano()-start.UnixNano()))
log.ZError(ctx, "CallApi", err, "api", api, "state", "failed", "cost time", time.Since(start).Milliseconds())
}
}(time.Now())
reqBody, err := json.Marshal(req)
Expand Down
7 changes: 4 additions & 3 deletions test/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"encoding/json"
"fmt"
"open_im_sdk/open_im_sdk"
"open_im_sdk/pkg/constant"
"open_im_sdk/pkg/log"
"open_im_sdk/pkg/utils"
"open_im_sdk/sdk_struct"
Expand Down Expand Up @@ -48,13 +49,13 @@ func (b *BaseSuccessFailed) OnSuccess(data string) {
func InOutDoTest(uid, tk, ws, api string) {
var cf sdk_struct.IMConfig
cf.ApiAddr = api
cf.PlatformID = 1
cf.PlatformID = constant.WindowsPlatformID
cf.WsAddr = ws
cf.DataDir = "./"
cf.LogLevel = LogLevel
cf.IsExternalExtensions = true
cf.IsLogStandardOutput = true
cf.LogFilePath = ""
cf.IsLogStandardOutput = false
cf.LogFilePath = "./"

b, _ := json.Marshal(cf)
s := string(b)
Expand Down
57 changes: 57 additions & 0 deletions testv3new/pressure_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package testv3new

import (
"fmt"
"github.com/OpenIMSDK/tools/mcontext"
"open_im_sdk/pkg/utils"
"testing"
"time"

Expand Down Expand Up @@ -79,3 +81,58 @@ func TestPressureTester_PressureSendMsgs2(t *testing.T) {
time.Sleep(time.Second)
}
}
func Test_CreateConversationsAndSendMessages(t *testing.T) {
if err := log.InitFromConfig("sdk.log", "sdk", 6, true, false, "", 2, 24); err != nil {
panic(err)
}
recvID := "6959062403"
conversationNum := 3
onePeopleMessageNum := 100
pressureTester := NewPressureTester(APIADDR, WSADDR, SECRET, Admin)
ctx := pressureTester.NewAdminCtx()
ctx = mcontext.SetOperationID(ctx, utils.OperationIDGenerator())
fixedUserIDs := []string{"register_test_1", "register_test_2", "register_test_3"}
pressureTester.CreateConversationsAndBatchSendMsg(ctx, conversationNum, onePeopleMessageNum, recvID, fixedUserIDs)
time.Sleep(time.Minute * 10)
}
func Test_CreateConversationsAndSendGroupMessages(t *testing.T) {
if err := log.InitFromConfig("sdk.log", "sdk", 6, true, false, "./", 2, 24); err != nil {
panic(err)
}
groupID := "227809258"
conversationNum := 3
onePeopleMessageNum := 1000
pressureTester := NewPressureTester(APIADDR, WSADDR, SECRET, Admin)
ctx := pressureTester.NewAdminCtx()
ctx = mcontext.SetOperationID(ctx, utils.OperationIDGenerator())
fixedUserIDs := []string{"register_test_1", "register_test_2", "register_test_3"}
pressureTester.CreateConversationsAndBatchSendGroupMsg(ctx, conversationNum, onePeopleMessageNum, groupID, fixedUserIDs)
time.Sleep(time.Minute * 10)
}
func Test_CreateGroup(t *testing.T) {
count := 9
ownerUserID := "6959062403"
p := NewPressureTester(APIADDR, WSADDR, SECRET, Admin)
ctx := p.NewAdminCtx()
ctx = mcontext.SetOperationID(ctx, utils.OperationIDGenerator())
token, err := p.testUserMananger.GetToken(ctx, ownerUserID, p.platformID)
if err != nil {
t.Fatal(err)
}
var userIDs []string

for i := 1; i <= count; i++ {
userIDs = append(userIDs, fmt.Sprintf("register_test_%v", i))
}
//if err := p.testUserMananger.RegisterUsers(ctx, userIDs...); err != nil {
// t.Fatal(err)
//}
ctx = p.NewCtx(ownerUserID, token)
ctx = mcontext.SetOperationID(ctx, utils.OperationIDGenerator())
err = p.testUserMananger.CreateGroup(ctx, "", ownerUserID, userIDs, fmt.Sprintf("group_test_%v", "Gordon"))
if err != nil {
t.Fatal(err)
} else {
t.Log("create group success")
}
}
67 changes: 67 additions & 0 deletions testv3new/pressure_tester.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,73 @@ func (p *PressureTester) CreateConversations(ctx context.Context, conversationNu
wg.Wait()
return nil
}
func (p *PressureTester) CreateConversationsAndBatchSendMsg(ctx context.Context, conversationNum int, onePeopleMessageNum int,
recvUserID string, fixedUserIDs []string) error {
var userIDs []string
if len(fixedUserIDs) <= 0 {
userIDs = p.testUserMananger.GenUserIDs(conversationNum)
if err := p.testUserMananger.RegisterUsers(ctx, userIDs...); err != nil {
return err
}
} else {
userIDs = fixedUserIDs
}

var wg sync.WaitGroup
for _, userID := range userIDs {
go func() {
time.Sleep(time.Millisecond * 100)
token, _ := p.testUserMananger.GetToken(ctx, userID, p.platformID)
ctx2 := NewUserCtx(userID, token)
baseCore := testcore.NewBaseCore(ctx2, userID, p.platformID)
ctx2 = mcontext.SetOperationID(ctx2, utils.OperationIDGenerator())
for i := 0; i < onePeopleMessageNum; i++ {
if err := baseCore.BatchSendSingleMsg(ctx2, recvUserID, i); err != nil {
log.ZError(ctx2, "send msg error", err, "sendUserID", userID)
}
time.Sleep(time.Millisecond * 5000)
}
}()

}
wg.Add(1)
wg.Wait()
return nil
}
func (p *PressureTester) CreateConversationsAndBatchSendGroupMsg(ctx context.Context, conversationNum int, onePeopleMessageNum int,
groupID string, fixedUserIDs []string) error {
var userIDs []string
if len(fixedUserIDs) <= 0 {
userIDs = p.testUserMananger.GenUserIDs(conversationNum)
if err := p.testUserMananger.RegisterUsers(ctx, userIDs...); err != nil {
return err
}
} else {
userIDs = fixedUserIDs
}

var wg sync.WaitGroup
for _, userID := range userIDs {
go func(u string) {
log.ZDebug(ctx, "start send msg", "userID", u)
time.Sleep(time.Millisecond * 100)
token, _ := p.testUserMananger.GetToken(ctx, u, p.platformID)
ctx2 := NewUserCtx(u, token)
baseCore := testcore.NewBaseCore(ctx2, u, p.platformID)
ctx2 = mcontext.SetOperationID(ctx2, utils.OperationIDGenerator())
for i := 0; i < onePeopleMessageNum; i++ {
if err := baseCore.BatchSendGroupMsg(ctx2, groupID, i); err != nil {
log.ZError(ctx2, "send msg error", err, "sendUserID", u)
}
time.Sleep(time.Millisecond * 500)
}
}(userID)

}
wg.Add(1)
wg.Wait()
return nil
}

// PressureSendMsgs2 user single chat send msg pressure test
func (p *PressureTester) PressureSendMsgs2(ctx context.Context, sendUserIDs []string, recvUserIDs []string, msgNum int, duration time.Duration) {
Expand Down
1 change: 1 addition & 0 deletions testv3new/test_user_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ func (p *TestUserManager) CreateGroup(ctx context.Context, groupID string, owner
GroupInfo: &sdkws.GroupInfo{
GroupID: groupID,
GroupName: groupName,
GroupType: constant.WorkingGroup,
},
}
resp := &group.CreateGroupResp{}
Expand Down
20 changes: 20 additions & 0 deletions testv3new/testcore/lightweight.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ type BaseCore struct {
platformID int32
pushMsgAndMaxSeqCh chan common.Cmd2Value
recvPushMsgCallback func(msg *sdkws.MsgData)
failedMessageMap map[string]error
}

func (b BaseCore) GetUserID() string {
Expand All @@ -41,6 +42,7 @@ func NewBaseCore(ctx context.Context, userID string, platformID int32, opts ...f
longConnMgr: longConnMgr,
userID: userID,
platformID: platformID,
failedMessageMap: make(map[string]error),
}
for _, opt := range opts {
opt(core)
Expand All @@ -57,10 +59,28 @@ func (b *BaseCore) Close(ctx context.Context) {
func (b *BaseCore) SendSingleMsg(ctx context.Context, userID string, index int) error {
return b.sendMsg(ctx, userID, "", index, constant.SingleChatType, fmt.Sprintf("this is test msg user %s to user %s, index: %d", b.userID, userID, index))
}
func (b *BaseCore) BatchSendSingleMsg(ctx context.Context, userID string, index int) error {
content := fmt.Sprintf("this is test msg user %s to user %s, index: %d", b.userID, userID, index)
err := b.sendMsg(ctx, userID, "", index, constant.SingleChatType, content)
if err != nil {
log.ZError(ctx, "send msg failed", err, "userID", userID, "index", index, "content", content)
b.failedMessageMap[content] = err
}
return nil
}

func (b *BaseCore) SendGroupMsg(ctx context.Context, groupID string, index int) error {
return b.sendMsg(ctx, "", groupID, index, constant.SuperGroupChatType, fmt.Sprintf("this is test msg user %s to group %s, index: %d", b.userID, groupID, index))
}
func (b *BaseCore) BatchSendGroupMsg(ctx context.Context, groupID string, index int) error {
content := fmt.Sprintf("this is test msg user %s to group %s, index: %d", b.userID, groupID, index)
err := b.sendMsg(ctx, "", groupID, index, constant.SuperGroupChatType, content)
if err != nil {
log.ZError(ctx, "send msg failed", err, "groupID", groupID, "index", index, "content", content)
b.failedMessageMap[content] = err
}
return nil
}

func (b *BaseCore) sendMsg(ctx context.Context, userID, groupID string, index int, sesstionType int32, content string) error {
var resp sdkws.UserSendMsgResp
Expand Down