aboutsummaryrefslogtreecommitdiff
path: root/tests/internet/tests.scm
blob: c4ffe856783652580d2734c3d81d3782bf691c22 (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
72
(use-modules
  ((org euandre packages) #:prefix pkg:)
  (gnu)
  (gnu tests)
  (gnu system vm)
  (guix profiles))
(use-service-modules
  networking)



(define test-git-os
  (simple-operating-system
    (service dhcpcd-service-type)
    (service pkg:git-service-type
      (pkg:git-configuration
        (run-server? #t)))
    (simple-service 'mkdir-srv-dir activation-service-type
      #~(mkdir-p "/srv/git"))))

(define (test-git-fn)
  (let* ((os (marionette-operating-system
              test-git-os
              #:imported-modules
              '((gnu services herd))))
         (vm (virtual-machine
               (operating-system os)
               (port-forwardings
                '()))))
    (define test
      (with-imported-modules '((gnu build marionette))
        #~(begin
            (use-modules
              ((srfi srfi-64) #:prefix t:)
              ((gnu build marionette) #:prefix mrntt:))
            (define manette
              (mrntt:make-marionette (list #$vm)))
            (t:test-runner-current (mrntt:system-test-runner #$output))
            (t:test-begin "git-daemon-server")
            (t:test-assert "Git daemon service running"
              (mrntt:marionette-eval
               '(begin
                  (use-modules
                    ((gnu services herd) #:prefix herd:))
                  (herd:start-service 'git))
               manette))
            (t:test-assert "Git daemon TCP port ready"
              (mrntt:wait-for-tcp-port 9418 manette))
            (t:test-end))))
    (gexp->derivation "git-service-type-test" test)))

(define test-git
  (system-test
    (name "git")
    (description "Test custom Git service")
    (value (test-git-fn))))

(define tests
  (list
   test-git))

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

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