Skip to content

test_embedded_engines error in x86_64 and riscv64 #962

@gyx47

Description

@gyx47

Description:

There is a problem with the test code of the ruby-slim-5.2.1-2 package. The package build failed under both the riscv64 and x86-64 architectures. According to the log output, the /core/test_embedded_engines test file reported an error when entering the test phase.

1) Failure:
TestSlimEmbeddedEngines#test_render_with_markdown [test/core/test_embedded_engines.rb:27]:
--- expected
+++ actual
@@ -1,12 +1,7 @@
-"<h1 id=\"header\">Header</h1>
-<p>Hello from Markdown!</p>
-
+"<p>#Header Hello from Markdown!</p>
 <p>3</p>
-
 <p><a href=\"#2\">1</a></p>
-
 <ul>
-  <li>one</li>
-  <li>two</li>
-</ul>
-"
+<li>one</li>
+<li>two</li>
+</ul>"
  • package version(s):ruby-slim-5.2.1-2
  • config and/or log files:

ruby-slim-5.2.1-2-riscv64-check.log

ruby-slim-5.2.1-2-x86_64-check.log

My operating environment is an x86-64 environment virtual machine and a riscv64 chroot environment of the arch architecture of Windows WSL.
The process is as follows:

  1. I cloned your project and installed the dependencies
  2. run MT_COMPAT="true" GEM_HOME="tmp_install/${_gemdir}" rake test

3.wait for it and found the error

Patch

I modified the test file. Here are my ideas for modification:

This is the relevant code for the error in the test of /test/core/test_embedded_engines.rb

def test_render_with_markdown
    source = %q{
markdown:
  #Header
  Hello from #{"Markdown!"}

  #{1+2}

  [#{1}](#{"#2"})

  * one
  * two
}
    if ::Tilt['md'].name =~ /Redcarpet/
      # redcarpet
      assert_html "<h1>Header</h1>\n\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>\n", source
    elsif ::Tilt['md'].name =~ /RDiscount/
      # rdiscount
      assert_html "<h1>Header</h1>\n\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>\n\n", source
    else
      # kramdown, :auto_ids by default
      assert_html "<h1 id=\"header\">Header</h1>\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n  <li>one</li>\n  <li>two</li>\n</ul>\n", source

      Slim::Embedded.with_options(markdown: {auto_ids: false}) do
        assert_html "<h1>Header</h1>\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n  <li>one</li>\n  <li>two</li>\n</ul>\n", source
      end

      assert_html "<h1 id=\"header\">Header</h1>\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n  <li>one</li>\n  <li>two</li>\n</ul>\n", source
    end
  end

After debugging, I found that
This test example has a formatting problem. The header is followed by #, which the md document cannot recognize, so the conversion to the html document is also wrong. The actual and expected values ​​of the <li> list are only one space indented, which has no effect on the html conversion. Maybe this test file can be looser, or the indentation can be manually added in the function implementation document.
I change the test file

def test_render_with_markdown
    source = %q{
markdown:
  # Header
  Hello from #{"Markdown!"}

  #{1+2}

  [#{1}](#{"#2"})

  * one
  * two
}
    if ::Tilt['md'].name =~ /Redcarpet/
      # redcarpet
      assert_html "<h1>Header</h1>\n\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>\n", source
    elsif ::Tilt['md'].name =~ /RDiscount/
      # rdiscount
      assert_html "<h1>Header</h1>\n\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>\n\n", source
    else
      # kramdown, :auto_ids by default
      assert_html "<h1 id=\"header\">Header</h1>\n<p>Hello from Markdown!</p>\n<p>3</p>\n<p><a href=\"#2\">1</a></p>\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>", source

      Slim::Embedded.with_options(markdown: {auto_ids: false}) do
        assert_html "<h1>Header</h1>\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>\n", source
      end

      assert_html "<h1 id=\"header\">Header</h1>\n<p>Hello from Markdown!</p>\n<p>3</p>\n<p><a href=\"#2\">1</a></p>\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>\n", source
    end
  end

The previous error was solved, but another error was followed

 1) Failure:
TestSlimEmbeddedEngines#test_render_with_markdown [test/core/test_embedded_engines.rb:30]:
--- expected
+++ actual
@@ -1,12 +1,8 @@
-"<h1>Header</h1>
+"<h1 id=\"header\">Header</h1>
 <p>Hello from Markdown!</p>
-
 <p>3</p>
-
 <p><a href=\"#2\">1</a></p>
-
 <ul>
 <li>one</li>
 <li>two</li>
-</ul>
-"
+</ul>"

and the code is

 Slim::Embedded.with_options(markdown: {auto_ids: false}) do
        assert_html "<h1>Header</h1>\n<p>Hello from Markdown!</p>\n\n<p>3</p>\n\n<p><a href=\"#2\">1</a></p>\n\n<ul>\n<li>one</li>\n<li>two</li>\n</ul>\n", source

I think the function to make the auto_ids: false ,may have some problems that need further Improvements.

Do you think this is a good career change? If you think it is, I will open a PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions