Class: Testbot::Server::Group

Inherits:
Object
  • Object
show all
Defined in:
lib/server/group.rb

Constant Summary collapse

DEFAULT =
nil

Class Method Summary collapse

Class Method Details

.build(files, sizes, instance_count, type) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/server/group.rb', line 9

def self.build(files, sizes, instance_count, type)
  tests_with_sizes = slow_tests_first(map_files_and_sizes(files, sizes))

  groups = []
  current_group, current_size = 0, 0
  tests_with_sizes.each do |test, size|
    # inserts into next group if current is full and we are not in the last group
    if (0.5*size + current_size) > group_size(tests_with_sizes, instance_count) and instance_count > current_group + 1
      current_size = size
      current_group += 1
    else
      current_size += size
    end
    groups[current_group] ||= []
    groups[current_group] << test
  end

  groups.compact
end