postgres_test_utils.rb 827 B

1234567891011121314151617181920212223242526272829
  1. module PostgresTestUtils
  2. def sudo_and_log(vm, cmd)
  3. @logger.debug("Running command: '#{cmd}'")
  4. result = ""
  5. @env.vms[vm].channel.sudo("cd /tmp && #{cmd}") do |ch, data|
  6. result << data
  7. @logger.debug(data)
  8. end
  9. result
  10. end
  11. def sudo_psql_and_log(vm, psql_cmd, user = 'postgres', extras = '')
  12. sudo_and_log(vm, "su #{user} -c 'psql #{psql_cmd}' #{extras}")
  13. end
  14. def sudo_psql_and_expect_result(vm, psql_cmd, expected, user = 'postgres')
  15. result = sudo_and_log(vm, "su #{user} -c 'psql -t #{psql_cmd}'")
  16. result.sub!(/stdin: is not a tty/, '')
  17. result.strip!
  18. ok = result == expected
  19. @logger.debug("Expected: #{expected} => #{ok ? 'OK' : 'BAD'}")
  20. if !ok
  21. raise "An unexpected result returned - result: '#{result}' / expected: '#{expected}'"
  22. end
  23. end
  24. end