forked from cwtch.im/server
Testing Performance
This commit is contained in:
parent
cc4d5ee428
commit
dfbcd473b3
|
@ -92,7 +92,7 @@ func (ta *TokenboardServer) Listen() {
|
|||
// Because we have set the sync capability any new messages that arrive after this point will just
|
||||
// need to do a basic lookup from the last seen message
|
||||
newMessages := ta.LegacyMessageStore.FetchMessagesFrom(lastSignature)
|
||||
for _, message := range newMessages[len(messages):] {
|
||||
for _, message := range newMessages {
|
||||
data, _ = json.Marshal(groups.Message{MessageType: groups.NewMessageMessage, NewMessage: &groups.NewMessage{EGM: *message}})
|
||||
ta.connection.Send(data)
|
||||
}
|
||||
|
|
|
@ -34,17 +34,11 @@ func (s *SqliteMessageStore) Close() {
|
|||
|
||||
// AddMessage implements the MessageStoreInterface AddMessage for sqlite message store
|
||||
func (s *SqliteMessageStore) AddMessage(message groups.EncryptedGroupMessage) {
|
||||
tx, err := s.database.Begin()
|
||||
if err != nil {
|
||||
log.Errorf("%q", err)
|
||||
return
|
||||
}
|
||||
stmt, err := s.preparedInsertStatement.Exec(base64.StdEncoding.EncodeToString(message.Signature), base64.StdEncoding.EncodeToString(message.Ciphertext))
|
||||
if err != nil {
|
||||
log.Errorf("%v %q", stmt, err)
|
||||
return
|
||||
}
|
||||
tx.Commit()
|
||||
}
|
||||
|
||||
// FetchMessages implements the MessageStoreInterface FetchMessages for sqlite message store
|
||||
|
|
|
@ -6,35 +6,44 @@ import (
|
|||
"git.openprivacy.ca/openprivacy/log"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestMessageStore(t *testing.T) {
|
||||
os.Remove("../testcwtchmessages.db")
|
||||
filename := "/home/sarah/testcwtchmessages.db"
|
||||
os.Remove(filename)
|
||||
log.SetLevel(log.LevelDebug)
|
||||
db, err := InitializeSqliteMessageStore("../testcwtchmessages.db")
|
||||
db, err := InitializeSqliteMessageStore(filename)
|
||||
if err != nil {
|
||||
t.Fatalf("Error: %v", err)
|
||||
}
|
||||
|
||||
numMessages := 100
|
||||
|
||||
t.Logf("Populating Database")
|
||||
t.Logf("Generating Data...")
|
||||
var messages []groups.EncryptedGroupMessage
|
||||
for i := 0; i < numMessages; i++ {
|
||||
buf := make([]byte, 4)
|
||||
binary.PutUvarint(buf, uint64(i))
|
||||
db.AddMessage(groups.EncryptedGroupMessage{
|
||||
messages = append(messages, groups.EncryptedGroupMessage{
|
||||
Signature: append([]byte("Hello world"), buf...),
|
||||
Ciphertext: []byte("Hello world"),
|
||||
})
|
||||
t.Logf("Inserted %v", i)
|
||||
}
|
||||
// Wait for inserts to complete..
|
||||
|
||||
messages := db.FetchMessages()
|
||||
t.Logf("Populating Database")
|
||||
start := time.Now()
|
||||
for _, message := range messages {
|
||||
t.Logf("Message: %v", message)
|
||||
db.AddMessage(message)
|
||||
}
|
||||
if len(messages) != numMessages {
|
||||
t.Logf("Time to Insert: %v", time.Since(start))
|
||||
|
||||
// Wait for inserts to complete..
|
||||
fetchedMessages := db.FetchMessages()
|
||||
//for _, message := range fetchedMessages {
|
||||
//t.Logf("Message: %v", message)
|
||||
//}
|
||||
if len(fetchedMessages) != numMessages {
|
||||
t.Fatalf("Incorrect number of messages returned")
|
||||
}
|
||||
|
||||
|
@ -45,11 +54,11 @@ func TestMessageStore(t *testing.T) {
|
|||
buf := make([]byte, 4)
|
||||
binary.PutUvarint(buf, uint64(numToFetch))
|
||||
sig := append([]byte("Hello world"), buf...)
|
||||
messages = db.FetchMessagesFrom(sig)
|
||||
for _, message := range messages {
|
||||
t.Logf("Message: %v", message)
|
||||
}
|
||||
if len(messages) != numToFetch {
|
||||
fetchedMessages = db.FetchMessagesFrom(sig)
|
||||
//for _, message := range fetchedMessages {
|
||||
// t.Logf("Message: %v", message)
|
||||
//}
|
||||
if len(fetchedMessages) != numToFetch {
|
||||
t.Fatalf("Incorrect number of messages returned : %v", len(messages))
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue