;;
;; Copyright 2009 Bastian Mueller
;;
;; This file is part of sicl.
;;
;; sicl is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; sicl is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with sicl. If not, see <http://www.gnu.org/licenses/>.
(defpackage #:sicl-tests
(:use #:cl #:fiveam #:sicl))
(in-package #:sicl-tests)
(def-suite dawg-testcases)
(in-suite dawg-testcases)
(defparameter *tests-path*
(merge-pathnames
(make-pathname :directory '(:relative "test-suite-archive/data-r2/"))))
;; from http://paste.lisp.org/display/50662
;; (C) Topo
(defun contents (pathname)
"Returns a string with the entire contents of the specified file."
(with-output-to-string (contents)
(with-open-file (in pathname :direction :input)
(let* ((buffer-size 4096)
(buffer (make-string buffer-size)))
(loop for size = (read-sequence buffer in)
do (write-string buffer contents :start 0 :end size)
while (= size buffer-size))))))
(defmacro defsyntest (fail name)
`(test ,name ()
(let* ((name (concatenate 'string
(string-downcase (symbol-name ',name))
".rq"))
(query (contents (merge-pathnames name *tests-path*))))
,(if fail
`(signals t
(parse-sparql query))
`(finishes
(parse-sparql query))))))
(defsyntest nil syntax-sparql1/syntax-basic-01)
(defsyntest nil syntax-sparql1/syntax-basic-02)
(defsyntest nil syntax-sparql1/syntax-basic-03)
(defsyntest nil syntax-sparql1/syntax-basic-04)
(defsyntest nil syntax-sparql1/syntax-basic-05)
(defsyntest nil syntax-sparql1/syntax-basic-06)
(defsyntest nil syntax-sparql1/syntax-bnodes-01)
(defsyntest nil syntax-sparql1/syntax-bnodes-02)
(defsyntest nil syntax-sparql1/syntax-bnodes-03)
(defsyntest nil syntax-sparql1/syntax-bnodes-04)
(defsyntest nil syntax-sparql1/syntax-bnodes-05)
(defsyntest nil syntax-sparql1/syntax-expr-01)
(defsyntest nil syntax-sparql1/syntax-expr-02)
(defsyntest nil syntax-sparql1/syntax-expr-03)
(defsyntest nil syntax-sparql1/syntax-expr-04)
(defsyntest nil syntax-sparql1/syntax-expr-05)
(defsyntest nil syntax-sparql1/syntax-forms-01)
(defsyntest nil syntax-sparql1/syntax-forms-02)
(defsyntest nil syntax-sparql1/syntax-limit-offset-01)
(defsyntest nil syntax-sparql1/syntax-limit-offset-02)
(defsyntest nil syntax-sparql1/syntax-limit-offset-03)
(defsyntest nil syntax-sparql1/syntax-limit-offset-04)
(defsyntest nil syntax-sparql1/syntax-lists-01)
(defsyntest nil syntax-sparql1/syntax-lists-02)
(defsyntest nil syntax-sparql1/syntax-lists-03)
(defsyntest nil syntax-sparql1/syntax-lists-04)
(defsyntest nil syntax-sparql1/syntax-lists-05)
(defsyntest nil syntax-sparql1/syntax-lit-01)
(defsyntest nil syntax-sparql1/syntax-lit-02)
(defsyntest nil syntax-sparql1/syntax-lit-03)
(defsyntest nil syntax-sparql1/syntax-lit-04)
(defsyntest nil syntax-sparql1/syntax-lit-05)
(defsyntest nil syntax-sparql1/syntax-lit-06)
(defsyntest nil syntax-sparql1/syntax-lit-07)
(defsyntest nil syntax-sparql1/syntax-lit-08)
(defsyntest nil syntax-sparql1/syntax-lit-09)
(defsyntest nil syntax-sparql1/syntax-lit-10)
(defsyntest nil syntax-sparql1/syntax-lit-11)
(defsyntest nil syntax-sparql1/syntax-lit-12)
(defsyntest nil syntax-sparql1/syntax-lit-13)
(defsyntest nil syntax-sparql1/syntax-lit-14)
(defsyntest nil syntax-sparql1/syntax-lit-15)
(defsyntest nil syntax-sparql1/syntax-lit-16)
(defsyntest nil syntax-sparql1/syntax-lit-17)
(defsyntest nil syntax-sparql1/syntax-lit-18)
(defsyntest nil syntax-sparql1/syntax-lit-19)
(defsyntest nil syntax-sparql1/syntax-lit-20)
(defsyntest nil syntax-sparql1/syntax-order-01)
(defsyntest nil syntax-sparql1/syntax-order-02)
(defsyntest nil syntax-sparql1/syntax-order-03)
(defsyntest nil syntax-sparql1/syntax-order-04)
(defsyntest nil syntax-sparql1/syntax-order-05)
(defsyntest nil syntax-sparql1/syntax-order-06)
(defsyntest nil syntax-sparql1/syntax-order-07)
(defsyntest nil syntax-sparql1/syntax-pat-01)
(defsyntest nil syntax-sparql1/syntax-pat-02)
(defsyntest nil syntax-sparql1/syntax-pat-03)
(defsyntest nil syntax-sparql1/syntax-pat-04)
(defsyntest nil syntax-sparql1/syntax-qname-01)
(defsyntest nil syntax-sparql1/syntax-qname-02)
(defsyntest nil syntax-sparql1/syntax-qname-03)
(defsyntest nil syntax-sparql1/syntax-qname-04)
(defsyntest nil syntax-sparql1/syntax-qname-05)
(defsyntest nil syntax-sparql1/syntax-qname-06)
(defsyntest nil syntax-sparql1/syntax-qname-07)
(defsyntest nil syntax-sparql1/syntax-qname-08)
(defsyntest nil syntax-sparql1/syntax-struct-01)
(defsyntest nil syntax-sparql1/syntax-struct-02)
(defsyntest nil syntax-sparql1/syntax-struct-03)
(defsyntest nil syntax-sparql1/syntax-struct-05)
(defsyntest nil syntax-sparql1/syntax-struct-06)
(defsyntest nil syntax-sparql1/syntax-struct-07)
(defsyntest nil syntax-sparql1/syntax-struct-08)
(defsyntest nil syntax-sparql1/syntax-struct-09)
(defsyntest nil syntax-sparql1/syntax-struct-10)
(defsyntest nil syntax-sparql1/syntax-struct-11)
(defsyntest nil syntax-sparql1/syntax-struct-12)
(defsyntest nil syntax-sparql1/syntax-struct-13)
(defsyntest nil syntax-sparql1/syntax-struct-14)
(defsyntest nil syntax-sparql1/syntax-union-01)
(defsyntest nil syntax-sparql1/syntax-union-02)
(defsyntest nil syntax-sparql2/syntax-bnode-01)
(defsyntest nil syntax-sparql2/syntax-bnode-02)
(defsyntest nil syntax-sparql2/syntax-bnode-03)
(defsyntest nil syntax-sparql2/syntax-dataset-01)
(defsyntest nil syntax-sparql2/syntax-dataset-02)
(defsyntest nil syntax-sparql2/syntax-dataset-03)
(defsyntest nil syntax-sparql2/syntax-dataset-04)
(defsyntest nil syntax-sparql2/syntax-esc-01)
(defsyntest nil syntax-sparql2/syntax-esc-02)
(defsyntest nil syntax-sparql2/syntax-esc-03)
(defsyntest nil syntax-sparql2/syntax-esc-04)
(defsyntest nil syntax-sparql2/syntax-esc-05)
(defsyntest nil syntax-sparql2/syntax-form-ask-02)
(defsyntest nil syntax-sparql2/syntax-form-construct01)
(defsyntest nil syntax-sparql2/syntax-form-construct02)
(defsyntest nil syntax-sparql2/syntax-form-construct03)
(defsyntest nil syntax-sparql2/syntax-form-construct04)
(defsyntest nil syntax-sparql2/syntax-form-construct06)
(defsyntest nil syntax-sparql2/syntax-form-describe01)
(defsyntest nil syntax-sparql2/syntax-form-describe02)
(defsyntest nil syntax-sparql2/syntax-form-select-01)
(defsyntest nil syntax-sparql2/syntax-form-select-02)
(defsyntest nil syntax-sparql2/syntax-function-01)
(defsyntest nil syntax-sparql2/syntax-function-02)
(defsyntest nil syntax-sparql2/syntax-function-03)
(defsyntest nil syntax-sparql2/syntax-function-04)
(defsyntest nil syntax-sparql2/syntax-general-01)
(defsyntest nil syntax-sparql2/syntax-general-02)
(defsyntest nil syntax-sparql2/syntax-general-03)
(defsyntest nil syntax-sparql2/syntax-general-04)
(defsyntest nil syntax-sparql2/syntax-general-05)
(defsyntest nil syntax-sparql2/syntax-general-06)
(defsyntest nil syntax-sparql2/syntax-general-07)
(defsyntest nil syntax-sparql2/syntax-general-08)
(defsyntest nil syntax-sparql2/syntax-general-09)
(defsyntest nil syntax-sparql2/syntax-general-10)
(defsyntest nil syntax-sparql2/syntax-general-11)
(defsyntest nil syntax-sparql2/syntax-general-12)
(defsyntest nil syntax-sparql2/syntax-general-13)
(defsyntest nil syntax-sparql2/syntax-general-14)
(defsyntest nil syntax-sparql2/syntax-graph-01)
(defsyntest nil syntax-sparql2/syntax-graph-02)
(defsyntest nil syntax-sparql2/syntax-graph-03)
(defsyntest nil syntax-sparql2/syntax-graph-04)
(defsyntest nil syntax-sparql2/syntax-graph-05)
(defsyntest nil syntax-sparql2/syntax-keywords-01)
(defsyntest nil syntax-sparql2/syntax-keywords-02)
(defsyntest nil syntax-sparql2/syntax-keywords-03)
(defsyntest nil syntax-sparql2/syntax-lists-01)
(defsyntest nil syntax-sparql2/syntax-lists-02)
(defsyntest nil syntax-sparql2/syntax-lists-03)
(defsyntest nil syntax-sparql2/syntax-lists-04)
(defsyntest nil syntax-sparql2/syntax-lists-05)
(defsyntest nil syntax-sparql3/syn-blabel-cross-filter)
(defsyntest t syntax-sparql3/syn-blabel-cross-graph-bad)
(defsyntest t syntax-sparql3/syn-blabel-cross-optional-bad)
(defsyntest t syntax-sparql3/syn-blabel-cross-union-bad)
(defsyntest t syntax-sparql3/syn-bad-bnode-dot)
(defsyntest t syntax-sparql3/syn-bad-bnodes-missing-pvalues-01)
(defsyntest t syntax-sparql3/syn-bad-bnodes-missing-pvalues-02)
(defsyntest t syntax-sparql3/syn-bad-empty-optional-01)
(defsyntest t syntax-sparql3/syn-bad-empty-optional-02)
(defsyntest t syntax-sparql3/syn-bad-filter-missing-parens)
(defsyntest t syntax-sparql3/syn-bad-lone-list)
(defsyntest t syntax-sparql3/syn-bad-lone-node)
(defsyntest nil syntax-sparql3/syn-01)
(defsyntest nil syntax-sparql3/syn-02)
(defsyntest nil syntax-sparql3/syn-03)
(defsyntest nil syntax-sparql3/syn-04)
(defsyntest nil syntax-sparql3/syn-05)
(defsyntest nil syntax-sparql3/syn-06)
(defsyntest nil syntax-sparql3/syn-07)
(defsyntest nil syntax-sparql3/syn-08)
(defsyntest t syntax-sparql3/syn-bad-01)
(defsyntest t syntax-sparql3/syn-bad-02)
(defsyntest t syntax-sparql3/syn-bad-03)
(defsyntest t syntax-sparql3/syn-bad-04)
(defsyntest t syntax-sparql3/syn-bad-05)
(defsyntest t syntax-sparql3/syn-bad-06)
(defsyntest t syntax-sparql3/syn-bad-07)
(defsyntest t syntax-sparql3/syn-bad-08)
(defsyntest t syntax-sparql3/syn-bad-09)
(defsyntest t syntax-sparql3/syn-bad-10)
(defsyntest t syntax-sparql3/syn-bad-11)
(defsyntest t syntax-sparql3/syn-bad-12)
(defsyntest t syntax-sparql3/syn-bad-13)
(defsyntest t syntax-sparql3/syn-bad-14)
(defsyntest t syntax-sparql3/syn-bad-15)
(defsyntest t syntax-sparql3/syn-bad-16)
(defsyntest t syntax-sparql3/syn-bad-17)
(defsyntest t syntax-sparql3/syn-bad-18)
(defsyntest t syntax-sparql3/syn-bad-19)
(defsyntest t syntax-sparql3/syn-bad-20)
(defsyntest t syntax-sparql3/syn-bad-21)
(defsyntest t syntax-sparql3/syn-bad-22)
(defsyntest t syntax-sparql3/syn-bad-23)
(defsyntest t syntax-sparql3/syn-bad-24)
(defsyntest t syntax-sparql3/syn-bad-25)
(defsyntest t syntax-sparql3/syn-bad-26)
(defsyntest t syntax-sparql3/syn-bad-27)
(defsyntest t syntax-sparql3/syn-bad-28)
(defsyntest t syntax-sparql3/syn-bad-29)
(defsyntest t syntax-sparql3/syn-bad-30)
(defsyntest t syntax-sparql3/syn-bad-31)
(defsyntest nil syntax-sparql4/syn-09)
(defsyntest nil syntax-sparql4/syn-10)
(defsyntest nil syntax-sparql4/syn-11)
(defsyntest t syntax-sparql4/syn-bad-34)
(defsyntest t syntax-sparql4/syn-bad-35)
(defsyntest t syntax-sparql4/syn-bad-36)
(defsyntest t syntax-sparql4/syn-bad-37)
(defsyntest t syntax-sparql4/syn-bad-38)
(defsyntest t syntax-sparql4/syn-bad-graph-breaks-bgp)
(defsyntest t syntax-sparql4/syn-bad-opt-breaks-bgp)
(defsyntest t syntax-sparql4/syn-bad-union-breaks-bgp)
(defsyntest nil syntax-sparql4/syn-leading-digits-in-prefixed-names)
(defsyntest nil syntax-sparql5/syntax-reduced-01)
(defsyntest nil syntax-sparql5/syntax-reduced-02)