# Appveyor testing with X11/xvfb etc

**URL:** <https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498>\
**Category:** Internals & Design\
**Created:** [January 15, 2017, 5:19pm UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498 "2017-01-15T17:19:43Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [January 15, 2017, 5:19pm UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/1 "2017-01-15T17:19:43Z")

</div>

For Gtk.jl or packages that import Gtk.jl it would be nice to have a appveyor (windows environment) setup that has something like a window/display system available to have functional testing.

Does anyone have a good reference for such a setup?

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [January 15, 2017, 5:40pm UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/2 "2017-01-15T17:40:05Z")

</div>

For Travis, adding `xvfb` like [this](https://github.com/barche/QML.jl/blob/master/.travis.yml#L10-L13) should work. For AppVeyor, the QML.jl GUI tests just work without any special changes, so I think there the graphical environment is available by default.

The only problem I has was with OpenGL on Travis, but I think that is a Gallium3D problem that can be fixed by setting the environment variable `GALLIUM_DRIVER="softpipe"`.

---

<div class="post-metadata">

**Author:** ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)\
**Post date:** [January 15, 2017, 6:40pm UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/3 "2017-01-15T18:40:36Z")

</div>

You can see an attempt for ProfileView here: [https://github.com/timholy/ProfileView.jl/pull/64](https://github.com/timholy/ProfileView.jl/pull/64). At the time I tested it, there was an issue with 32bit Windows. If you don’t care about 32bit, you could just not test that.

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [January 16, 2017, 10:29am UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/4 "2017-01-16T10:29:32Z")

</div>

I see. But the example you provide doesn’t show a successful test (stopped)?

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [January 16, 2017, 10:50am UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/5 "2017-01-16T10:50:17Z")

</div>

Yes, there is a temporary issue because I was depending on unreleased features in CxxWrap, and now it fails because the Travis Qt is too old. Going back a bit shows the tests can run:

> **[Travis CI - Test and Deploy with Confidence](https://app.travis-ci.com/barche/QML.jl/jobs/180332033)**
>
> Travis CI enables your team to test and ship your apps with confidence. Easily sync your projects with Travis CI and you'll be testing your code in minutes.

Because of the OpenGL problem this doesn’t open windows, but it does require a display to run the other tests. Here’s what happens without the xvfb setup when just loading the QML package:

> **[Travis CI - Test and Deploy with Confidence](https://app.travis-ci.com/barche/QML.jl/jobs/177782015)**
>
> Travis CI enables your team to test and ship your apps with confidence. Easily sync your projects with Travis CI and you'll be testing your code in minutes.

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [January 18, 2017, 6:45pm UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/6 "2017-01-18T18:45:42Z")

</div>

I’ve run a dummy package with Gtk.jl as REQUIRE and get only julia 0.4 64bit Windows successful.

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [January 20, 2017, 6:33pm UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/7 "2017-01-20T18:33:37Z")

</div>

Do you have a link to the test output?

---

<div class="post-metadata">

**Author:** ![lobingera](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lobingera/32/211_2.png) [@lobingera](https://discourse.julialang.org/u/lobingera)\
**Post date:** [January 22, 2017, 8:04am UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/8 "2017-01-22T08:04:27Z")

</div>

[https://gist.github.com/lobingera/715b5733833f4bfd914124d7eac9ea83](https://gist.github.com/lobingera/715b5733833f4bfd914124d7eac9ea83)

ran 0.4/0.5/nightly on Win64. 0.4+0.5 sucessful, nightly not.

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [January 22, 2017, 8:17pm UTC](https://discourse.julialang.org/t/appveyor-testing-with-x11-xvfb-etc/1498/9 "2017-01-22T20:17:30Z")

</div>

Looks like a problem in ColorTypes.jl, its Travis fails on nightly with the same error:

> **[Travis CI - Test and Deploy with Confidence](https://app.travis-ci.com/JuliaGraphics/ColorTypes.jl/jobs/175485365)**
>
> Travis CI enables your team to test and ship your apps with confidence. Easily sync your projects with Travis CI and you'll be testing your code in minutes.
