Sha256: c2e6470ee4240c4357d89a07b88db84dee8c73a476f6a7237b555bce4f99691c

Contents?: true

Size: 760 Bytes

Versions: 4

Compression:

Stored size: 760 Bytes

Contents

require "spec_helper"
require "gitlab_monitor/memstats"

describe GitLab::Monitor::MemStats do
  let(:pid) { 100 }
  let(:smaps_data) { File.open("spec/fixtures/smaps/sample.txt") }

  subject { described_class::Aggregator.new(pid) }

  before do
    expect(File).to receive(:open).with("/proc/#{pid}/smaps").and_yield(smaps_data)
  end

  it "parses the data properly" do
    expect(subject.valid?).to be_truthy

    nonzero_fields = %w(size rss shared_clean shared_dirty private_dirty pss)
    zero_fields = %w(private_clean swap)

    nonzero_fields.each do |field|
      expect(subject.totals[field]).to be > 0 # rubocop:disable Style/NumericPredicate
    end

    zero_fields.each do |field|
      expect(subject.totals[field]).to eq(0)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gitlab-monitor-4.2.0 spec/memstats_spec.rb
gitlab-monitor-4.1.0 spec/memstats_spec.rb
gitlab-monitor-4.0.1 spec/memstats_spec.rb
gitlab-monitor-4.0.0 spec/memstats_spec.rb