Changeset: 65c0d5c4a523 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=65c0d5c4a523
Modified Files:
clients/ruby/Tests/rubytest.rb
clients/ruby/Tests/rubytest.stable.err
clients/ruby/Tests/rubytest.stable.out
testing/Mfilter.py
Branch: default
Log Message:
Removed minitest dependency for Ruby tests
diffs (truncated from 335 to 300 lines):
diff --git a/clients/ruby/Tests/rubytest.rb b/clients/ruby/Tests/rubytest.rb
--- a/clients/ruby/Tests/rubytest.rb
+++ b/clients/ruby/Tests/rubytest.rb
@@ -1,91 +1,142 @@
-gem "minitest"
-require 'minitest/autorun'
require_relative '../lib/MonetDB'
-describe MonetDB do
- before do
- portnumber = ARGV[0] || 50000
- dbname = ARGV[1] || "mTests_."
+class MapiRubyInterfaceTestCase
+ def test1(query_results)
+ result = query_results.fetch_all_as_column_hash == {"id"=>[1,
2], "stringtest"=>["foo", "bar baz"], "integertest"=>[42, 43]}
+ return result, "fetch all result items in a hash"
+ end
+
+ def test2(query_results)
+ result = query_results.fetch_hash == {"id"=>1,
"stringtest"=>"foo", "integertest"=>42}
+ return result, "fetch a result record in a hash"
+ end
+
+ def test3(query_results)
+ result_collection = []
+ query_results.each_record_as_hash { |record|
result_collection.push(record) }
+ result = result_collection == [{ "id" => 1, "stringtest" =>
"foo", "integertest" => 42 }, { "id" => 2, "stringtest" => "bar baz",
"integertest" => 43 }]
+
+ return result, "iterate through all records in hash"
+ end
+
+ def test4(query_results)
+ result = query_results.fetch == [1, 42, "foo"]
+ return result, "fetch a result record"
+ end
+
+ def test5(query_results)
+ result = query_results.fetch_all == [[1, 42, "foo"], [2, 43,
"bar baz"]]
+ return result, "fetch all records"
+ end
+
+ def test6(query_results)
+ result = query_results.fetch_all == [[1, 42, "foo"], [2, 43,
"bar baz"]]
+ return result, "count the number of resulting rows from a query"
+ end
+
+ def test7(query_results)
+ result = query_results.num_fields == 3
+ return result, "count the number of resulting fields from a
query"
+ end
+
+ def test8(query_results)
+ result = query_results.name_fields == ["id", "integertest",
"stringtest"]
+ return result, "get the name of fields from a query"
+ end
+
+ def test9(query_results)
+ result = query_results.type_fields == {"id"=>"int",
"stringtest"=>"clob", "integertest"=>"int"}
+ return result, "can get the type of fields from a query"
+ end
+
+ def test10(query_results)
+ result = query_results.type_fields == {"id"=>"int",
"stringtest"=>"clob", "integertest"=>"int"}
+ return result, "get the type of fields from a query"
+ end
+
+ def test11(query_results)
+ result = query_results.fetch_by_column_name("id") == [1, 2]
+ return result, "get all values by column name"
+ end
+
+ def test12(query_results)
+ result_collection = []
+ query_results.each_record { |record|
result_collection.push(record) }
+ result = result_collection == [[1, 42, "foo"], [2, 43, "bar
baz"]]
+
+ return result, "iterate through all records"
+ end
+end
+
+class Tester
+
+ def initialize(portnumber, dbname, testcase)
+ @testcase = testcase
+ @error_messages = []
@database_connection = MonetDB.new
@database_connection.connect(user = "monetdb", passwd =
"monetdb", lang = "sql", host="127.0.0.1", port = portnumber,
database_connection_name = dbname, auth_type = "SHA1")
+ end
+ def start
+ print_initialize
+ run_tests
+ print_results
+ end
+
+ # ====================
+ private
+ # ====================
+
+ def run_tests
+ @testcase.public_methods(false).each { |test| run_test(test) }
+ end
+
+ def run_test(test)
+ create_database
+ query_results = run_query
+ result, message = @testcase.send(test, query_results)
+ add_error(result, message)
+ remove_database
+ end
+
+ def run_query
+ return @database_connection.query("SELECT * FROM testtable t");
+ end
+
+ def create_database
@database_connection.query("CREATE TABLE testtable (id INTEGER,
integertest INTEGER, stringtest CHARACTER LARGE OBJECT)")
@database_connection.query("INSERT INTO testtable (id,
integertest, stringtest) VALUES (1, 42, 'foo')");
@database_connection.query("INSERT INTO testtable (id,
integertest, stringtest) VALUES (2, 43, 'bar baz')");
-
- @query_result = @database_connection.query("SELECT * FROM
testtable t");
end
- after do
+ def remove_database
@database_connection.query("DROP TABLE testtable");
end
- describe "Monet DB interface" do
- it " can fetch all result items from a query in a hash" do
-
@query_result.fetch_all_as_column_hash.must_equal({"id"=>[1, 2],
"stringtest"=>["foo", "bar baz"], "integertest"=>[42, 43]})
- end
+ def add_error(result, message="")
+ @error_messages.push(message) unless result
+ end
- it " can fetch a record from a query in a hash" do
- @query_result.fetch_hash.must_equal({"id"=>1,
"stringtest"=>"foo", "integertest"=>42})
- end
+ def print_initialize
+ puts ""
+ puts "# Running tests"
+ puts ""
+ end
- it " can iterate through all records in hash" do
- result_collection = []
- @query_result.each_record_as_hash { |record|
result_collection.push(record) }
- result_collection.must_equal([{ "id" => 1, "stringtest"
=> "foo", "integertest" => 42 }, { "id" => 2, "stringtest" => "bar baz",
"integertest" => 43 }])
- end
+ def print_results
+ puts "Tests Failed: #{@error_messages.size}"
+ puts ""
- it " can fetch a result record" do
- @query_result.fetch.must_equal([1, 42, "foo"])
- end
-
- it " can fetch all records" do
- @query_result.fetch_all.must_equal([[1, 42, "foo"], [2,
43, "bar baz"]])
- end
-
- it " can count the number of resulting rows from a query" do
- @query_result.num_rows.must_equal(2)
- end
-
- it " can count the number of resulting fields from a query" do
- @query_result.num_fields.must_equal(3)
- end
-
- it " can get the name of fields from a query" do
- @query_result.name_fields.must_equal(["id",
"integertest", "stringtest"])
- end
-
- it " can get the type of fields from a query" do
- @query_result.type_fields.must_equal({"id"=>"int",
"stringtest"=>"clob", "integertest"=>"int"})
- end
-
- it " can get all values by column name" do
- @query_result.fetch_by_column_name("id").must_equal([1,
2])
- end
-
- it " can iterate through all records" do
- result_collection = []
- @query_result.each_record { |record|
result_collection.push(record) }
- result_collection.must_equal([[1, 42, "foo"], [2, 43,
"bar baz"]])
+ if( @error_messages.any? )
+ puts "Errors:"
+ @error_messages.each_with_index { |error_message,
index| puts "#{index + 1}: #{error_message}" }
end
end
end
-# Overwrite some methods in minitest to prevent tests from failing over
difference in time and seed reports
-module Minitest
- class SummaryReporter
- def start
- super
+portnumber = ARGV[0] || 50000
+dbname = ARGV[1] || "mTests_."
- io.puts "# Running:"
-
- self.sync = io.respond_to? :"sync=" # stupid emacs
- self.old_sync, io.sync = io.sync, true if self.sync
- end
-
- def statistics
- # do nothing to prevent tests from failing over
difference in time reports
- end
- end
-end
+tester = Tester.new(portnumber, dbname, MapiRubyInterfaceTestCase.new)
+tester.start
diff --git a/clients/ruby/Tests/rubytest.stable.err
b/clients/ruby/Tests/rubytest.stable.err
--- a/clients/ruby/Tests/rubytest.stable.err
+++ b/clients/ruby/Tests/rubytest.stable.err
@@ -1,9 +1,9 @@
stderr of test 'rubytest` in directory 'clients/ruby` itself:
-# 11:46:08 >
-# 11:46:08 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=33382" "--set"
"mapi_usock=/var/tmp/mtest-44013/.s.monetdb.33382" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_clients_ruby"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
-# 11:46:08 >
+# 11:01:32 >
+# 11:01:32 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=31445" "--set"
"mapi_usock=/var/tmp/mtest-29264/.s.monetdb.31445" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_."
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 11:01:32 >
# builtin opt gdk_dbpath =
/Users/rkoopmanschap/projects/MonetDB-installation/var/monetdb5/dbfarm/demo
# builtin opt gdk_debug = 0
@@ -17,21 +17,21 @@ stderr of test 'rubytest` in directory '
# builtin opt sql_debug = 0
# cmdline opt gdk_nr_threads = 0
# cmdline opt mapi_open = true
-# cmdline opt mapi_port = 33382
-# cmdline opt mapi_usock = /var/tmp/mtest-44013/.s.monetdb.33382
+# cmdline opt mapi_port = 31445
+# cmdline opt mapi_usock = /var/tmp/mtest-29264/.s.monetdb.31445
# cmdline opt monet_prompt =
# cmdline opt mal_listing = 2
-# cmdline opt gdk_dbpath =
/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_clients_ruby
+# cmdline opt gdk_dbpath =
/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_.
# cmdline opt mal_listing = 0
# cmdline opt embedded_r = yes
# cmdline opt gdk_debug = 536870922
-# 11:46:09 >
-# 11:46:09 > "ruby" "rubytest.rb" "33382" "mTests_clients_ruby"
-# 11:46:09 >
+# 11:01:32 >
+# 11:01:32 > "ruby" "rubytest.rb" "31445" "mTests_."
+# 11:01:32 >
-# 11:46:09 >
-# 11:46:09 > "Done."
-# 11:46:09 >
+# 11:01:33 >
+# 11:01:33 > "Done."
+# 11:01:33 >
diff --git a/clients/ruby/Tests/rubytest.stable.out
b/clients/ruby/Tests/rubytest.stable.out
--- a/clients/ruby/Tests/rubytest.stable.out
+++ b/clients/ruby/Tests/rubytest.stable.out
@@ -1,20 +1,20 @@
stdout of test 'rubytest` in directory 'clients/ruby` itself:
-# 11:46:08 >
-# 11:46:08 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=33382" "--set"
"mapi_usock=/var/tmp/mtest-44013/.s.monetdb.33382" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_clients_ruby"
"--set" "mal_listing=0" "--set" "embedded_r=yes"
-# 11:46:08 >
+# 11:01:32 >
+# 11:01:32 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set"
"mapi_open=true" "--set" "mapi_port=31445" "--set"
"mapi_usock=/var/tmp/mtest-29264/.s.monetdb.31445" "--set" "monet_prompt="
"--forcemito" "--set" "mal_listing=2"
"--dbpath=/Users/rkoopmanschap/projects/MonetDB-installation/var/MonetDB/mTests_."
"--set" "mal_listing=0" "--set" "embedded_r=yes"
+# 11:01:32 >
# MonetDB 5 server v11.22.0
# This is an unreleased version
-# Serving database 'mTests_clients_ruby', using 4 threads
+# Serving database 'mTests_.', using 4 threads
# Compiled for x86_64-apple-darwin14.5.0/64bit with 64bit OIDs and 128bit
integers dynamically linked
# Found 16.000 GiB available main-memory.
# Copyright (c) 1993-July 2008 CWI.
# Copyright (c) August 2008-2015 MonetDB B.V., all rights reserved
# Visit http://www.monetdb.org/ for further information
-# Listening for connection requests on mapi:monetdb://gup-129-196.cwi.nl:33382/
-# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-44013/.s.monetdb.33382
+# Listening for connection requests on mapi:monetdb://gup-129-196.cwi.nl:31445/
+# Listening for UNIX domain connection requests on
mapi:monetdb:///var/tmp/mtest-29264/.s.monetdb.31445
# MonetDB/GIS module loaded
# Start processing logs sql/sql_logs version 52200
# Finished processing logs sql/sql_logs
@@ -58,21 +58,17 @@ Ready.
# loading sql script: 90_generator_hge.sql
# loading sql script: 99_system.sql
-# 11:46:09 >
-# 11:46:09 > "ruby" "rubytest.rb" "33382" "mTests_clients_ruby"
-# 11:46:09 >
+# 11:01:32 >
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list