File: resource_limits_test.rb

package info (click to toggle)
ruby-liquid-c 4.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 504 kB
  • sloc: ansic: 3,866; ruby: 1,151; makefile: 7
file content (50 lines) | stat: -rw-r--r-- 1,442 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# frozen_string_literal: true

require "test_helper"

class ResourceLimitsTest < Minitest::Test
  def test_increment_render_score
    resource_limits = Liquid::ResourceLimits.new(render_score_limit: 5)
    resource_limits.increment_render_score(4)
    assert_raises(Liquid::MemoryError) do
      resource_limits.increment_render_score(2)
    end
    assert_equal(6, resource_limits.render_score)
  end

  def test_increment_assign_score
    resource_limits = Liquid::ResourceLimits.new(assign_score_limit: 5)
    resource_limits.increment_assign_score(5)
    assert_raises(Liquid::MemoryError) do
      resource_limits.increment_assign_score(1)
    end
    assert_equal(6, resource_limits.assign_score)
  end

  def test_increment_write_score
    resource_limits = Liquid::ResourceLimits.new(render_length_limit: 5)
    output = "a" * 10
    assert_raises(Liquid::MemoryError) do
      resource_limits.increment_write_score(output)
    end
  end

  def test_raise_limits_reached
    resource_limits = Liquid::ResourceLimits.new({})
    assert_raises(Liquid::MemoryError) do
      resource_limits.raise_limits_reached
    end
    assert(resource_limits.reached?)
  end

  def test_with_capture
    resource_limits = Liquid::ResourceLimits.new(assign_score_limit: 5)
    output = "foo"

    resource_limits.with_capture do
      resource_limits.increment_write_score(output)
    end

    assert_equal(3, resource_limits.assign_score)
  end
end