Files
2026-07-13 12:32:25 +08:00

50 lines
1.4 KiB
Ruby

#!/usr/bin/ruby
require 'pg'
require 'test/unit'
extend Test::Unit::Assertions
user = ARGV[0]
port = ARGV[1]
db = "postgres"
queries = [
"create table test (pk int, value int, d1 decimal(9, 3), f1 float, c1 char(10), t1 text, primary key(pk))",
"select * from test",
"insert into test (pk, value, d1, f1, c1, t1) values (0,0,0.0,0.0,'abc','a1')",
"select * from test",
"select dolt_add('-A');",
"select dolt_commit('-m', 'my commit')",
"select COUNT(*) FROM dolt.log",
"select dolt_checkout('-b', 'mybranch')",
"insert into test (pk, value, d1, f1, c1, t1) values (1,1, 123456.789, 420.42,'example','some text')",
"select dolt_commit('-a', '-m', 'my commit2')",
"select dolt_checkout('main')",
"select dolt_merge('mybranch')",
"select COUNT(*) FROM dolt.log",
]
# Smoke test the queries to make sure nothing blows up
conn = PG::Connection.new(:host => "localhost", :user => user, :dbname => db, :port => port, :password => "password")
queries.each do |query|
res = conn.query(query)
end
# Then make sure we can read some data back
res = conn.query("SELECT * from test where pk = 1;")
rowCount = 0
res.each do |row|
rowCount += 1
assert_equal 1, row["pk"].to_i
assert_equal 1, row["value"].to_i
assert_equal 123456.789, row["d1"].to_f
assert_equal 420.42, row["f1"].to_f
assert_equal "example ", row["c1"]
assert_equal "some text", row["t1"]
end
assert_equal 1, rowCount
conn.close()
exit(0)