Announcement

Collapse
No announcement yet.

The Widely-Used Cairo Library Has Problems Passing Its Own Tests

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • The Widely-Used Cairo Library Has Problems Passing Its Own Tests

    Phoronix: The Widely-Used Cairo Library Has Problems Passing Its Own Tests

    The Cairo graphics library that's relied upon by GTK+, Gecko/Firefox, WebKit, Poppler, and many other pieces of Linux software is having problems passing its own build tests...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    This is bad, but not the end of the world. It happens all the time in big, complex projects like Cairo, and there are best-practice solutions that can help find the specific commit that caused the breakage. Also, it could be that there are some bad test methodologies in place that make wrong assumptions that should be revived.

    It's clear, though, that this critical project (it and Pixman are the foundation for many Linux 2D graphics libraries) can use some extra love. Are they short on people? Maybe this Phoronix publicity boost can be a good time to make a call for volunteers.

    Comment


    • #3
      Reading uninitialized memory?

      Comment


      • #4
        I'd like to see more major OSS projects using the continuously automated testing development strategy used successfully by many closed and open projects.

        Comment


        • #5
          Meh, it's still better than PHP: http://gcov.php.net/viewer.php?versi...expected_tests

          149 failures, of which 44 'expected' (i.e. have been around for a decade and multiple major releases), including segfaults and clear security issues.

          (I've written some PHP at work, but will never be installing it on anything I'm responsible for).

          Comment


          • #6
            Easy solution:


            Kill the project.
            Adopt skia.

            Cairo has had issues for a long time, and skia would, upon its integration, provide immediate performance and feature improvements (gamma correction, for one)

            Comment


            • #7
              Firefox already can use skia instead.

              Comment


              • #8
                Originally posted by andreano View Post
                Reading uninitialized memory?
                Quite likely, since most unit tests shouldn't be multithreaded (race conditions being another popular cause of nondeterminism.

                The first thing I'd do is run it in Valgrind. It's easy to do, and usually tells you right where the problems are. Helps if you also rebuild with the compiler set to use fewer or no optimizations, but then it can be up to 1000x slower than normal.

                Comment


                • #9
                  Originally posted by liam View Post
                  skia would, upon its integration, provide immediate performance and feature improvements (gamma correction, for one)
                  If it has gamma-correct antialiasing, that's a pretty big deal.

                  It's a little hard to see how you can really do gamma correctly, and have a performance benefit. Ideally, you'd render everything in linear gamma, then convert to display gamma. But, to avoid quantization artifacts, you need to render at >= 12 bits per pixel per channel.

                  Comment


                  • #10
                    "Frighten" is a strong word. No, it doesn't "frighten" me that an important library has failing tests. It's not ideal - anyone writing library code for others to use should regard automated tests as vital and failure of those tests as unacceptable - but the most important test is whether the library does the job it's designed for. And Cairo doesn't give any cause for concern in that respect.

                    Comment

                    Working...
                    X