Beispiel #1
0
func TestKSCountConcurrent(t *testing.T) {
	t.Log("TestPutAndGet started")
	ks := NewInMemoryStorage()
	max := 10000
	for i := 0; i < max; i++ {
		go func(j int) {
			var d = []byte(` data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							 data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							 data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							 data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							 data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							 data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							 data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							 data data data ..... data asdfghjklòzxcvbnm,wertyuiop
							fghjklòdsfasdgfdasgsfadjgklfdagjkldfajglfdjdsgdfgfdgfdg
							qwertyuiopdfghjklzxcvbnm,12345678901234567890qwertyuiobn
			`)
			data := storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(j), d, "default", 60, 0)
			ks.Put(&data)
			//fmt.Println("Put data "+data.Key)
		}(i)
	}
	time.Sleep(11 * 1e8)
	var count = ks.Count()
	if count != max {
		t.Fatal("Incorrect count " + strconv.Itoa(count))
	} else {
		t.Log("Correct count " + strconv.Itoa(count))
	}
}
Beispiel #2
0
func TestKSPutAndGet(t *testing.T) {
	t.Log("TestPutAndGet started")
	ks := NewInMemoryStorage()
	var data = storage.NewMetaDataObj("test", []byte("test string"), "default", 60, 0)
	ks.Put(&data)
	res, ok := ks.Get("test")
	if ok != nil {
		t.Fail()
	} else {
		t.Log(res.Key)
	}
}
Beispiel #3
0
func TestPutAndGet(t *testing.T) {
	t.Log("TestPutAndGet started")
	coll := NewCollection()
	var d = []byte("test string")
	var data = storage.NewMetaDataObj("test", d, "default", 60, 1)
	coll.Put(&data)
	res, ok := coll.Get("test")
	if !ok {
		t.Fail()
	} else {
		t.Log(res.Key)
	}
}
Beispiel #4
0
func TestKSCount(t *testing.T) {
	t.Log("TestPutAndGet started")
	ks := NewInMemoryStorage()
	max := 1000
	for i := 0; i < max; i++ {
		var data = storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(i), []byte("test string"), "default", 60, 0)
		ks.Put(&data)
	}
	var count = ks.Count()
	if count != max {
		t.Fatal("Incorrect count " + strconv.Itoa(count))
	} else {
		t.Log("Correct count " + strconv.Itoa(count))
	}
}
Beispiel #5
0
func TestKSPutAndGetLoop(t *testing.T) {
	t.Log("TestPutAndGet started")
	ks := NewInMemoryStorage()
	for i := 0; i < 1000; i++ {
		var data = storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(i), []byte("test string"), "default", 60, 0)
		ks.Put(&data)
	}
	for i := 0; i < 1000; i++ {
		_, ok := ks.Get("testloopkey_" + strconv.Itoa(i))
		if ok != nil {
			t.Fatal("key " + "testloopkey_" + strconv.Itoa(i) + " not found")
		} else {
			//fmt.Println(res.Key)
		}
	}
}
Beispiel #6
0
func _TestCount(t *testing.T) {
	t.Log("TestPutAndGet started")
	coll := NewCollection()
	max := 1000
	for i := 0; i < max; i++ {
		var d = []byte("test string")
		var data = storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(i), d, "default", 60, 1)
		coll.Put(&data)
	}
	var count = coll.Count()
	if count != max {
		t.Fatal("Incorrect count " + strconv.Itoa(count))
	} else {
		t.Log("Correct count " + strconv.Itoa(count))
	}
}
Beispiel #7
0
func TestPutAndGetLoopMutex(t *testing.T) {
	t.Log("TestPutAndGet started")
	coll := NewMutexCollection()
	for i := 0; i < 1000; i++ {
		var d = []byte("test string")
		var data = storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(i), d, "default", 60, 1)
		coll.Put(&data)
	}
	for i := 0; i < 1000; i++ {
		_, ok := coll.Get("testloopkey_" + strconv.Itoa(i))
		if !ok {
			t.Fatal("key " + "testloopkey_" + strconv.Itoa(i) + " not found")
		} else {
			//fmt.Println(res.Key)
		}
	}
}
Beispiel #8
0
func TestPutLoop(t *testing.T) {
	t.Log("TestPutLoop started")
	coll := NewCollection()
	operationNumber := 100000
	resultChan := make(chan (bool), operationNumber)
	startTime := time.Now()
	for i := 0; i < operationNumber; i++ {
		go func(j int) {
			var d = []byte("test string")
			data := storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(j), d, "default", 60, 1)
			coll.Put(&data)
			resultChan <- true
		}(i)
	}
	for i := 0; i < operationNumber; i++ {
		<-resultChan
	}
	t.Logf("All done: %d - elapsed time = %s", len(resultChan), time.Since(startTime))
}
Beispiel #9
0
func _TestCountConcurrent(t *testing.T) {
	t.Log("TestPutAndGet started")
	coll := NewCollection()
	max := 100000
	for i := 0; i < max; i++ {
		go func(j int) {
			var d = []byte("test string")
			data := storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(j), d, "default", 60, 1)
			coll.Put(&data)
			//fmt.Println("Put data "+data.Key)
		}(i)
	}
	time.Sleep(20 * 1e9)
	var count = coll.Count()
	if count != max {
		t.Fatal("Incorrect count " + strconv.Itoa(count))
	} else {
		t.Log("Correct count " + strconv.Itoa(count))
	}
}
Beispiel #10
0
func TestGetLoopMutex(t *testing.T) {
	t.Log("TestGetLoopMutex started")
	coll := NewMutexCollection()
	operationNumber := 100000
	for i := 0; i < operationNumber; i++ {
		var d = []byte("test string")
		data := storage.NewMetaDataObj("testloopkey_"+strconv.Itoa(i), d, "default", 60, 1)
		coll.Put(&data)
	}
	t.Logf("Number of object: %d", coll.Count())
	startTime := time.Now()
	resultChan := make(chan (bool), operationNumber)
	for i := 0; i < operationNumber; i++ {
		go func(j int) {
			_, _ = coll.Get("testloopkey_" + strconv.Itoa(i))
			resultChan <- true
		}(i)
	}
	for i := 0; i < operationNumber; i++ {
		<-resultChan
	}
	t.Logf("All done: %d - elapsed time = %s", len(resultChan), time.Since(startTime))
}