Testing Performance

This commit is contained in:
Sarah Jamie Lewis 2021-05-07 14:21:18 -07:00
parent cc4d5ee428
commit dfbcd473b3
3 changed files with 24 additions and 21 deletions

View File

@ -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)
}

View File

@ -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

View File

@ -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))
}