Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: v2.2.0
Fetching contributors…

Cannot retrieve contributors at this time

executable file 99 lines (83 sloc) 2.356 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; rake index"
system "cd sandbox/server; 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 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.