[Groonga-commit] groonga/grnci at aa68b3c [master] Add tests for DB.Dump.

Back to archive index

Susumu Yata null+****@clear*****
Tue Sep 12 12:27:10 JST 2017


Susumu Yata	2017-09-12 12:27:10 +0900 (Tue, 12 Sep 2017)

  New Revision: aa68b3cd4116c579aa04e1018247dd6900fcae6c
  https://github.com/groonga/grnci/commit/aa68b3cd4116c579aa04e1018247dd6900fcae6c

  Message:
    Add tests for DB.Dump.

  Modified files:
    v2/libgrn/db_test.go

  Modified: v2/libgrn/db_test.go (+314 -22)
===================================================================
--- v2/libgrn/db_test.go    2017-09-12 11:20:40 +0900 (72402a2)
+++ v2/libgrn/db_test.go    2017-09-12 12:27:10 +0900 (8cd15fa)
@@ -220,29 +220,321 @@ func TestDBConfigSetOverwrite(t *testing.T) {
 	}
 }
 
-// func TestDBDump(t *testing.T) {
-// 	client, err := NewHTTPClient("", nil)
-// 	if err != nil {
-// 		t.Skipf("NewHTTPClient failed: %v", err)
-// 	}
-// 	db := NewDB(client)
-// 	defer db.Close()
+func TestDBDump(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
 
-// 	result, resp, err := db.Dump(nil)
-// 	if err != nil {
-// 		t.Fatalf("db.Dump failed: %v", err)
-// 	}
-// 	body, err := ioutil.ReadAll(result)
-// 	if err != nil {
-// 		t.Fatalf("ioutil.ReadAll failed: %v", err)
-// 	}
-// 	result.Close()
-// 	log.Printf("body = %s", body)
-// 	log.Printf("resp = %#v", resp)
-// 	if err := resp.Err(); err != nil {
-// 		log.Printf("error = %#v", err)
-// 	}
-// }
+	result, err := db.Dump(nil)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := ""; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpPlugins(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `plugin_register functions/math`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	result, err := db.Dump(nil)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := dump; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpPluginsNo(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `plugin_register functions/math`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	options := grnci.NewDBDumpOptions()
+	options.DumpPlugins = false
+	result, err := db.Dump(options)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := ""; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpSchema(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `table_create Tbl TABLE_NO_KEY`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	result, err := db.Dump(nil)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := dump; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpSchemaNo(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `table_create Tbl TABLE_NO_KEY`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	options := grnci.NewDBDumpOptions()
+	options.DumpSchema = false
+	result, err := db.Dump(options)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := ""; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpRecords(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `table_create Tbl TABLE_PAT_KEY ShortText
+
+load --table Tbl
+[
+["_key"],
+["Hello"]
+]`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	result, err := db.Dump(nil)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := dump; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpRecordsNo(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `table_create Tbl TABLE_PAT_KEY ShortText
+
+load --table Tbl
+[
+["_key"],
+["Hello"]
+]`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	options := grnci.NewDBDumpOptions()
+	options.DumpRecords = false
+	result, err := db.Dump(options)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	want := "table_create Tbl TABLE_PAT_KEY ShortText"
+	if string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpIndexes(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `table_create Idx TABLE_PAT_KEY ShortText
+
+table_create Tbl TABLE_NO_KEY
+column_create Tbl col COLUMN_SCALAR ShortText
+
+column_create Idx col COLUMN_INDEX Tbl col`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	result, err := db.Dump(nil)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := dump; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpIndexesNo(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `table_create Idx TABLE_PAT_KEY ShortText
+
+table_create Tbl TABLE_NO_KEY
+column_create Tbl col COLUMN_SCALAR ShortText
+
+column_create Idx col COLUMN_INDEX Tbl col`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	options := grnci.NewDBDumpOptions()
+	options.DumpIndexes = false
+	result, err := db.Dump(options)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	want := `table_create Idx TABLE_PAT_KEY ShortText
+
+table_create Tbl TABLE_NO_KEY
+column_create Tbl col COLUMN_SCALAR ShortText`
+	if string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpConfigs(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `config_set config_key config_value`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	result, err := db.Dump(nil)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := dump; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpConfigsNo(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `config_set config_key config_value`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	options := grnci.NewDBDumpOptions()
+	options.DumpConfigs = false
+	result, err := db.Dump(options)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	if want := ""; string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
+
+func TestDBDumpSortHashTable(t *testing.T) {
+	db, dir := makeDB(t)
+	defer removeDB(db, dir)
+
+	dump := `table_create Tbl TABLE_HASH_KEY ShortText
+
+load --table Tbl
+[
+["_key"],
+["Orange"],
+["Banana"],
+["Apple"]
+]`
+	if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil {
+		t.Fatalf("db.Restore failed: %v", err)
+	}
+	options := grnci.NewDBDumpOptions()
+	options.SortHashTable = true
+	result, err := db.Dump(options)
+	if err != nil {
+		t.Fatalf("db.Dump failed: %v", err)
+	}
+	body, err := ioutil.ReadAll(result)
+	if err != nil {
+		t.Fatalf("ioutil.ReadAll failed: %v", err)
+	}
+	result.Close()
+	want := `table_create Tbl TABLE_HASH_KEY ShortText
+
+load --table Tbl
+[
+["_key"],
+["Apple"],
+["Banana"],
+["Orange"]
+]`
+	if string(body) != want {
+		t.Fatalf("db.Dump failed: actual = %s, want = %s", body, want)
+	}
+}
 
 // func TestDBLoad(t *testing.T) {
 // 	client, err := NewHTTPClient("", nil)
-------------- next part --------------
HTML����������������������������...
URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20170912/53712d6b/attachment-0001.htm 



More information about the Groonga-commit mailing list
Back to archive index