Class: Grntest::Tester

Inherits:
Object
  • Object
show all
Defined in:
lib/grntest/tester.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeTester

Returns a new instance of Tester.



298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# File 'lib/grntest/tester.rb', line 298

def initialize
  @groonga = "groonga"
  @groonga_httpd = "groonga-httpd"
  @groonga_suggest_create_dataset = "groonga-suggest-create-dataset"
  unless command_exist?(@groonga_suggest_create_dataset)
    @groonga_suggest_create_dataset = nil
  end
  @interface = :stdio
  @output_type = "json"
  @testee = "groonga"
  @base_directory = Pathname(".")
  @database_path = nil
  @reporter = nil
  @n_workers = 1
  @output = $stdout
  @keep_database = false
  @use_color = nil
  @stop_on_failure = false
  @suppress_omit_log = true
  @suppress_backtrace = true
  @debug = false
  @test_patterns = []
  @test_suite_patterns = []
  @exclude_test_patterns = []
  @exclude_test_suite_patterns = []
  detect_suitable_diff
  initialize_debuggers
  initialize_memory_checkers
  @timeout = 5
  @read_timeout = 3
  @n_retries = 0
  @shutdown_wait_timeout = 5
end

Instance Attribute Details

#base_directoryObject

Returns the value of attribute base_directory.



281
282
283
# File 'lib/grntest/tester.rb', line 281

def base_directory
  @base_directory
end

#database_pathObject

Returns the value of attribute database_path.



281
282
283
# File 'lib/grntest/tester.rb', line 281

def database_path
  @database_path
end

#debug=(value) ⇒ Object (writeonly)

Sets the attribute debug

Parameters:

  • value

    the value to set the attribute debug to.



293
294
295
# File 'lib/grntest/tester.rb', line 293

def debug=(value)
  @debug = value
end

#default_gdbObject

Returns the value of attribute default_gdb.



284
285
286
# File 'lib/grntest/tester.rb', line 284

def default_gdb
  @default_gdb
end

#default_valgrindObject

Returns the value of attribute default_valgrind.



285
286
287
# File 'lib/grntest/tester.rb', line 285

def default_valgrind
  @default_valgrind
end

#diffObject

Returns the value of attribute diff.



281
282
283
# File 'lib/grntest/tester.rb', line 281

def diff
  @diff
end

#diff_optionsObject

Returns the value of attribute diff_options.



281
282
283
# File 'lib/grntest/tester.rb', line 281

def diff_options
  @diff_options
end

#exclude_test_patternsObject (readonly)

Returns the value of attribute exclude_test_patterns.



295
296
297
# File 'lib/grntest/tester.rb', line 295

def exclude_test_patterns
  @exclude_test_patterns
end

#exclude_test_suite_patternsObject (readonly)

Returns the value of attribute exclude_test_suite_patterns.



295
296
297
# File 'lib/grntest/tester.rb', line 295

def exclude_test_suite_patterns
  @exclude_test_suite_patterns
end

#gdbObject

Returns the value of attribute gdb.



284
285
286
# File 'lib/grntest/tester.rb', line 284

def gdb
  @gdb
end

#groongaObject

Returns the value of attribute groonga.



279
280
281
# File 'lib/grntest/tester.rb', line 279

def groonga
  @groonga
end

#groonga_httpdObject

Returns the value of attribute groonga_httpd.



279
280
281
# File 'lib/grntest/tester.rb', line 279

def groonga_httpd
  @groonga_httpd
end

#groonga_suggest_create_datasetObject

Returns the value of attribute groonga_suggest_create_dataset.



279
280
281
# File 'lib/grntest/tester.rb', line 279

def groonga_suggest_create_dataset
  @groonga_suggest_create_dataset
end

#interfaceObject

Returns the value of attribute interface.



280
281
282
# File 'lib/grntest/tester.rb', line 280

def interface
  @interface
end

#keep_database=(value) ⇒ Object (writeonly)

Sets the attribute keep_database

Parameters:

  • value

    the value to set the attribute keep_database to.



289
290
291
# File 'lib/grntest/tester.rb', line 289

def keep_database=(value)
  @keep_database = value
end

#n_retriesObject

Returns the value of attribute n_retries.



296
297
298
# File 'lib/grntest/tester.rb', line 296

def n_retries
  @n_retries
end

#n_workersObject

Returns the value of attribute n_workers.



282
283
284
# File 'lib/grntest/tester.rb', line 282

def n_workers
  @n_workers
end

#outputObject

Returns the value of attribute output.



283
284
285
# File 'lib/grntest/tester.rb', line 283

def output
  @output
end

#output_typeObject

Returns the value of attribute output_type.



280
281
282
# File 'lib/grntest/tester.rb', line 280

def output_type
  @output_type
end

#read_timeoutObject

Returns the value of attribute read_timeout.



287
288
289
# File 'lib/grntest/tester.rb', line 287

def read_timeout
  @read_timeout
end

#reporterObject



340
341
342
343
344
345
346
347
348
349
350
# File 'lib/grntest/tester.rb', line 340

def reporter
  if @reporter.nil?
    if @n_workers == 1
      :mark
    else
      :inplace
    end
  else
    @reporter
  end
end

#shutdown_wait_timeoutObject

Returns the value of attribute shutdown_wait_timeout.



297
298
299
# File 'lib/grntest/tester.rb', line 297

def shutdown_wait_timeout
  @shutdown_wait_timeout
end

#stop_on_failure=(value) ⇒ Object (writeonly)

Sets the attribute stop_on_failure

Parameters:

  • value

    the value to set the attribute stop_on_failure to.



290
291
292
# File 'lib/grntest/tester.rb', line 290

def stop_on_failure=(value)
  @stop_on_failure = value
end

#suppress_backtrace=(value) ⇒ Object (writeonly)

Sets the attribute suppress_backtrace

Parameters:

  • value

    the value to set the attribute suppress_backtrace to.



292
293
294
# File 'lib/grntest/tester.rb', line 292

def suppress_backtrace=(value)
  @suppress_backtrace = value
end

#suppress_omit_log=(value) ⇒ Object (writeonly)

Sets the attribute suppress_omit_log

Parameters:

  • value

    the value to set the attribute suppress_omit_log to.



291
292
293
# File 'lib/grntest/tester.rb', line 291

def suppress_omit_log=(value)
  @suppress_omit_log = value
end

#test_patternsObject (readonly)

Returns the value of attribute test_patterns.



294
295
296
# File 'lib/grntest/tester.rb', line 294

def test_patterns
  @test_patterns
end

#test_suite_patternsObject (readonly)

Returns the value of attribute test_suite_patterns.



294
295
296
# File 'lib/grntest/tester.rb', line 294

def test_suite_patterns
  @test_suite_patterns
end

#testeeObject

Returns the value of attribute testee.



280
281
282
# File 'lib/grntest/tester.rb', line 280

def testee
  @testee
end

#timeoutObject

Returns the value of attribute timeout.



286
287
288
# File 'lib/grntest/tester.rb', line 286

def timeout
  @timeout
end

#use_color=(value) ⇒ Object (writeonly)

Sets the attribute use_color

Parameters:

  • value

    the value to set the attribute use_color to.



289
290
291
# File 'lib/grntest/tester.rb', line 289

def use_color=(value)
  @use_color = value
end

#valgrindObject

Returns the value of attribute valgrind.



285
286
287
# File 'lib/grntest/tester.rb', line 285

def valgrind
  @valgrind
end

#valgrind_gen_suppressions=(value) ⇒ Object (writeonly)

Sets the attribute valgrind_gen_suppressions

Parameters:

  • value

    the value to set the attribute valgrind_gen_suppressions to.



288
289
290
# File 'lib/grntest/tester.rb', line 288

def valgrind_gen_suppressions=(value)
  @valgrind_gen_suppressions = value
end

Class Method Details

.run(argv = nil) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/grntest/tester.rb', line 26

def run(argv=nil)
  argv ||= ARGV.dup
  tester = new
  catch do |tag|
    parser = create_option_parser(tester, tag)
    targets = parser.parse!(argv)
    tester.run(*targets)
  end
end

Instance Method Details

#debug?Boolean

Returns:

  • (Boolean)


375
376
377
# File 'lib/grntest/tester.rb', line 375

def debug?
  @debug
end

#excluded_test?(test_name) ⇒ Boolean

Returns:

  • (Boolean)


394
395
396
397
398
# File 'lib/grntest/tester.rb', line 394

def excluded_test?(test_name)
  @exclude_test_patterns.any? do |pattern|
    pattern === test_name
  end
end

#excluded_test_suite?(test_suite_name) ⇒ Boolean

Returns:

  • (Boolean)


412
413
414
415
416
# File 'lib/grntest/tester.rb', line 412

def excluded_test_suite?(test_suite_name)
  @exclude_test_suite_patterns.any? do |pattern|
    pattern === test_suite_name
  end
end

#keep_database?Boolean

Returns:

  • (Boolean)


352
353
354
# File 'lib/grntest/tester.rb', line 352

def keep_database?
  @keep_database
end

#plugins_directoryObject



418
419
420
421
422
423
424
425
426
427
428
429
430
431
# File 'lib/grntest/tester.rb', line 418

def plugins_directory
  groonga_path = Pathname(@groonga)
  unless groonga_path.absolute?
    groonga_path = Pathname(resolve_command_path(@groonga)).expand_path
  end
  base_dir = groonga_path.parent.parent
  installed_plugins_dir = base_dir + "lib" + "groonga" + "plugins"
  build_plugins_dir = base_dir + "plugins"
  if installed_plugins_dir.exist?
    installed_plugins_dir
  else
    build_plugins_dir
  end
end

#run(*targets) ⇒ Object



332
333
334
335
336
337
338
# File 'lib/grntest/tester.rb', line 332

def run(*targets)
  succeeded = true
  return succeeded if targets.empty?

  test_suites = load_tests(*targets)
  run_test_suites(test_suites)
end

#selected_test?(test_name) ⇒ Boolean

Returns:

  • (Boolean)


387
388
389
390
391
392
# File 'lib/grntest/tester.rb', line 387

def selected_test?(test_name)
  return true if @test_patterns.empty?
  @test_patterns.any? do |pattern|
    pattern === test_name
  end
end

#selected_test_suite?(test_suite_name) ⇒ Boolean

Returns:

  • (Boolean)


405
406
407
408
409
410
# File 'lib/grntest/tester.rb', line 405

def selected_test_suite?(test_suite_name)
  return true if @test_suite_patterns.empty?
  @test_suite_patterns.any? do |pattern|
    pattern === test_suite_name
  end
end

#stop_on_failure?Boolean

Returns:

  • (Boolean)


363
364
365
# File 'lib/grntest/tester.rb', line 363

def stop_on_failure?
  @stop_on_failure
end

#suppress_backtrace?Boolean

Returns:

  • (Boolean)


371
372
373
# File 'lib/grntest/tester.rb', line 371

def suppress_backtrace?
  @suppress_backtrace
end

#suppress_omit_log?Boolean

Returns:

  • (Boolean)


367
368
369
# File 'lib/grntest/tester.rb', line 367

def suppress_omit_log?
  @suppress_omit_log
end

#target_test?(test_name) ⇒ Boolean

Returns:

  • (Boolean)


383
384
385
# File 'lib/grntest/tester.rb', line 383

def target_test?(test_name)
  selected_test?(test_name) and not excluded_test?(test_name)
end

#target_test_suite?(test_suite_name) ⇒ Boolean

Returns:

  • (Boolean)


400
401
402
403
# File 'lib/grntest/tester.rb', line 400

def target_test_suite?(test_suite_name)
  selected_test_suite?(test_suite_name) and
    not excluded_test_suite?(test_suite_name)
end

#use_color?Boolean

Returns:

  • (Boolean)


356
357
358
359
360
361
# File 'lib/grntest/tester.rb', line 356

def use_color?
  if @use_color.nil?
    @use_color = guess_color_availability
  end
  @use_color
end

#valgrind_gen_suppressions?Boolean

Returns:

  • (Boolean)


379
380
381
# File 'lib/grntest/tester.rb', line 379

def valgrind_gen_suppressions?
  @valgrind_gen_suppressions
end