aboutsummaryrefslogtreecommitdiff
path: root/tests/tests.scm
blob: 852a186272e0be6afc89a8a8dcd4691becb86c6d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
(use-modules
  ((im papo packages) #:prefix pkgs:)
  ((org euandre packages) #:prefix packages:)
  (gnu)
  (gnu tests)
  (gnu system vm)
  (guix gexp)
  (guix profiles))
(use-package-modules
  tls)
(use-service-modules
  certbot
  mail
  mcron
  networking)




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Helpers functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define (test-for name description test-name os test-fn)
  (system-test
    (name name)
    (description description)
    (value
      (gexp->derivation
       (string-append test-name ".test")
       (with-imported-modules '((gnu build marionette))
         #~(begin
             (use-modules
               ((gnu build marionette) #:prefix mrntt:)
               ((srfi srfi-64) #:prefix t:))
             (let ((manette (mrntt:make-marionette
                             (list
                              #$(virtual-machine
                                  (operating-system
                                    (marionette-operating-system
                                     os
                                     #:imported-modules
                                     '((gnu services herd)))))))))
               (t:test-runner-current (mrntt:system-test-runner #$output))
               (t:test-begin #$name)
               (#$test-fn manette)
               (t:test-end))))))))




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Service tests ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



(define tests
  (list))

(define (system-test->manifest-entry test)
  (manifest-entry
    (name
      (pkgs:str "test."
                (system-test-name test)))
    (version "0")
    (item test)))

(manifest
 (map system-test->manifest-entry
      tests))