diff --git a/Formula/gl2ps.rb b/Formula/gl2ps.rb index e0113962ab..666cd0b2c4 100644 --- a/Formula/gl2ps.rb +++ b/Formula/gl2ps.rb @@ -1,5 +1,3 @@ -require "formula" - class Gl2ps < Formula homepage "http://www.geuz.org/gl2ps/" url "http://geuz.org/gl2ps/src/gl2ps-1.3.8.tgz" @@ -13,4 +11,40 @@ class Gl2ps < Formula system "cmake", ".", *std_cmake_args system "make", "install" end + + test do + (testpath/"test.c").write <<-EOS.undent + #include + #include + + int main(int argc, char *argv[]) + { + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_DEPTH); + glutInitWindowSize(400, 400); + glutInitWindowPosition(100, 100); + glutCreateWindow(argv[0]); + GLint viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + FILE *fp = fopen("test.eps", "wb"); + GLint buffsize = 0, state = GL2PS_OVERFLOW; + while( state == GL2PS_OVERFLOW ){ + buffsize += 1024*1024; + gl2psBeginPage ( "Test", "Homebrew", viewport, + GL2PS_EPS, GL2PS_BSP_SORT, GL2PS_SILENT | + GL2PS_SIMPLE_LINE_OFFSET | GL2PS_NO_BLENDING | + GL2PS_OCCLUSION_CULL | GL2PS_BEST_ROOT, + GL_RGBA, 0, NULL, 0, 0, 0, buffsize, + fp, "test.eps" ); + gl2psText("Homebrew Test", "Courier", 12); + state = gl2psEndPage(); + } + fclose(fp); + return 0; + } + EOS + system ENV.cc, "-lgl2ps", "-framework", "OpenGL", "-framework", "GLUT", "-framework", "Cocoa", "test.c", "-o", "test" + system "./test" + assert File.exist?("test.eps") && File.size("test.eps") > 0 + end end