Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 106 lines (89 sloc) 2.577 kb
#!/usr/bin/env ruby
#
@tests = 0
def each_type
yield :full, 20
yield :live, 0
end
def ask_server query
`curl -S 'localhost:8080/books?query=#{query}&ids=20'`
end
def server query, match
@tests += 1
if ask_server(query).chomp.include?(match)
puts "Yay, server returned #{match} for #{query}!"
else
fail "#{query} result does not include #{match}"
end
end
def client query, match
@tests += 1
if `curl -S 'localhost:3210/search/full?query=#{query}&ids=20'`.chomp.include?(match)
puts "Yay, client returned #{match} for #{query}!"
else
fail "#{query} result does not include #{match}"
end
end
# Runs a whole integration.
#
begin
puts "Please run using Ruby 1.9" if RUBY_VERSION < '1.9.0'
system "./install"
puts "Installing the server."
system "picky generate unicorn_server sandbox/server"
system "cd sandbox/server; bundle install --local"
system "cd sandbox/server; bundle exec rake index"
system "cd sandbox/server; bundle exec rake start &"
sleep 5 # loading
puts
puts "Running search requests on the server"
server "alan", "author"
server "ALAN", "title"
server "pinchn~", "pynchon"
server "sp", "title"
server "sp", "author"
server "title:lyterature~+2002", "literature"
puts
puts
puts "Installing the client."
system "picky generate sinatra_client sandbox/client"
system "cd sandbox/client; bundle install --local"
system "cd sandbox/client; unicorn -p 3210 &"
sleep 5 # loading
puts
puts "Running search requests on the client directly"
client "alan", "author"
client "ALAN", "title"
client "pinchn~", "pynchon"
client "sp", "title"
client "sp", "author"
client "title:lyterature~+2002", "literature"
client "alan", "Alan Turing"
puts
puts
system "open -a 'Google Chrome' http://localhost:3210/?q=alan"
sleep 1
system "open -a 'Google Chrome' http://localhost:3210/?q=a%2A%20b"
sleep 5
puts "Now the server integration specs"
if system('cd sandbox/server; bundle exec rake spec')
puts "Yay! Integration specs ran through!"
else
raise "Integration specs failed!"
end
puts "Now for a speed test"
queries = ['alan', 'pinchn~', 'sp', 'title:lyterature~+2002'].cycle
100.times do
ask_server queries.next
end
puts
puts "SUCCESS! #{@tests} tests run without a hitch :)"
puts
ensure
puts "Press enter to kill (Break and have mercy with Ctrl-C)"
gets
system "killall 'unicorn master -c unicorn.ru'"
system "killall 'unicorn master -p 3210'"
system "rm -r sandbox/client"
system "rm -r sandbox/server"
end
Jump to Line
Something went wrong with that request. Please try again.