Sha256: 04e4324f83dc5f1cd280bd26b0617b24e50efad6ec166c2b9e99d08ea970389d

Contents?: true

Size: 893 Bytes

Versions: 18

Compression:

Stored size: 893 Bytes

Contents

# frozen_string_literal: true

module Nonnative
  class GoCommand
    def initialize(exec, output)
      @exec = exec
      @output = output
    end

    def executable(cmd, *params)
      params = params.join(' ')
      "#{exec} #{flags(cmd, params).join(' ')} #{cmd} #{params}".strip
    end

    private

    attr_reader :exec, :output

    def flags(cmd, params)
      suffix = SecureRandom.alphanumeric(4)
      m = File.basename(exec, File.extname(exec))
      p = params.gsub(/\W/, '')
      name = [m, cmd, p].reject(&:empty?).join('-')
      path = "#{output}/#{name}-#{suffix}"

      [
        "-test.cpuprofile=#{path}-cpu.prof",
        "-test.memprofile=#{path}-mem.prof",
        "-test.blockprofile=#{path}-block.prof",
        "-test.mutexprofile=#{path}-mutex.prof",
        "-test.coverprofile=#{path}.cov",
        "-test.trace=#{path}-trace.out"
      ]
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
nonnative-1.70.0 lib/nonnative/go_command.rb
nonnative-1.69.0 lib/nonnative/go_command.rb
nonnative-1.68.0 lib/nonnative/go_command.rb
nonnative-1.67.0 lib/nonnative/go_command.rb
nonnative-1.66.0 lib/nonnative/go_command.rb
nonnative-1.65.0 lib/nonnative/go_command.rb
nonnative-1.64.0 lib/nonnative/go_command.rb
nonnative-1.63.0 lib/nonnative/go_command.rb
nonnative-1.62.0 lib/nonnative/go_command.rb
nonnative-1.61.0 lib/nonnative/go_command.rb
nonnative-1.60.0 lib/nonnative/go_command.rb
nonnative-1.59.1 lib/nonnative/go_command.rb
nonnative-1.59.0 lib/nonnative/go_command.rb
nonnative-1.58.2 lib/nonnative/go_command.rb
nonnative-1.58.1 lib/nonnative/go_command.rb
nonnative-1.58.0 lib/nonnative/go_command.rb
nonnative-1.57.1 lib/nonnative/go_command.rb
nonnative-1.57.0 lib/nonnative/go_command.rb