| 19 | include Helper::Omittable |
| 20 | |
| 21 | def setup |
| 22 | @server = nil |
| 23 | omit("Arrow Flight is required") unless defined?(ArrowFlight) |
| 24 | omit("Unstable on Windows") if Gem.win_platform? |
| 25 | omit("Unstable on x86_64 macOS") if /x86_64-darwin/.match?(RUBY_PLATFORM) |
| 26 | require_gi_bindings(3, 4, 7) |
| 27 | @server = Helper::FlightServer.new |
| 28 | host = "127.0.0.1" |
| 29 | location = ArrowFlight::Location.new("grpc://#{host}:0") |
| 30 | options = ArrowFlight::ServerOptions.new(location) |
| 31 | options.auth_handler = Helper::FlightAuthHandler.new |
| 32 | @server.listen(options) |
| 33 | @location = ArrowFlight::Location.new("grpc://#{host}:#{@server.port}") |
| 34 | end |
| 35 | |
| 36 | def teardown |
| 37 | return if @server.nil? |