changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/std/tests/task.lisp

changeset 694: a36280d2ef4e
parent: f51b73f49946
author: Richard Westhaver <ellis@rwest.io>
date: Thu, 03 Oct 2024 21:54:07 -0400
permissions: -rw-r--r--
description: tasks
563
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 ;;; tests/task.lisp --- Task Tests
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 ;; 
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 ;;; Code:
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 (in-package :std/tests)
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 (in-suite :std)
8b10eabe89dd std/tests, clap tweaks
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 
692
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
9
 (deftest task-pool ()
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
10
   "Task Pool tests."
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
11
   (with-task-pool (tp :workers 4 :tasks 10 :start t)
691
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
12
     (is (= 4 (length (task-pool-workers tp))))
692
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
13
     (is (> (std/task::mailbox-count (task-pool-results tp)) 0))
691
Richard Westhaver <ellis@rwest.io>
parents: 563
diff changeset
14
     (dotimes (i 4)
692
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
15
       (is (null (std/task::receive-message (task-pool-results tp)))))
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
16
     (is (null (std/task::receive-message-no-hang (task-pool-results tp))))
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
17
     (kill-workers tp)
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
18
     (is (zerop (worker-count tp))))
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
19
   (with-task-pool (tp :workers 4 :tasks 4 :start nil)
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
20
     (is (zerop (sb-concurrency:mailbox-count (results tp))))
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
21
     (start-task-workers tp)
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
22
     (loop for w across (workers tp)
694
Richard Westhaver <ellis@rwest.io>
parents: 692
diff changeset
23
           do (join-worker w))
692
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
24
     (is (= 4 (sb-concurrency:mailbox-count (results tp))))))
f51b73f49946 std/task and tests
Richard Westhaver <ellis@rwest.io>
parents: 691
diff changeset
25
 
694
Richard Westhaver <ellis@rwest.io>
parents: 692
diff changeset
26