(use-modules ((webid-oidc server resource) #:prefix resource:) (webid-oidc testing) (webid-oidc errors) (ice-9 optargs) (ice-9 receive) (oop goops)) (define resource:) (define resource:) (with-test-environment "server-prevent-concurrent-delete" (lambda () (with-exception-handler (lambda (error) (unless (precondition-failed? error) (exit 1)) (when (precondition-failed-etag error) (exit 2)) (unless (equal? (precondition-failed-if-match error) '("xyz")) (exit 3)) (when (precondition-failed-if-none-match error) (exit 4))) (lambda () (resource:delete "/a/b/c" #:if-match '("xyz")) (exit 5)) #:unwind? #t #:unwind-for-type &precondition-failed)))