Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

channels-test-suite cleanups #1476

Merged
merged 2 commits into from
Jan 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ TEST_LIBS = \
duim-test-suite \
deuce-test-suite \
jam-test-suite \
channels-tests \
channels-test-suite \
variable-search-tests \
command-line-parser-test-suite \
logging-test-suite \
Expand Down
14 changes: 6 additions & 8 deletions build/windows/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ OLE_COCLASS_TEST = $(INSTALL_BIN_DIRECTORY)\ole-coclass-test.exe
OLE_MACRO_TEST = $(INSTALL_BIN_DIRECTORY)\ole-macro-test.exe
SQL_ODBC_TEST = $(INSTALL_BIN_DIRECTORY)\sql-odbc-test.exe

CHANNELS_TESTS = $(INSTALL_BIN_DIRECTORY)\channels-tests.dll
CHANNELS_TEST_SUITE = $(INSTALL_BIN_DIRECTORY)\channels-test-suite.dll
DFMC_ENVIRONMENT_TEST_SUITE = $(INSTALL_BIN_DIRECTORY)\dfmc-environment-test-suite.dll
DFMC_ENVIRONMENT_TEST_SUITE_APP = $(INSTALL_BIN_DIRECTORY)\dfmc-environment-test-suite-app.exe
WARNINGS_TEST_SUITE = $(INSTALL_BIN_DIRECTORY)\warnings-test-suite.dll
Expand Down Expand Up @@ -833,7 +833,7 @@ ole-coclass-test: $(OLE_COCLASS_TEST)
ole-macro-test: $(OLE_MACRO_TEST)
sql-odbc-test: $(SQL_ODBC_TEST)

channels-tests: $(CHANNELS_TESTS)
channels-test-suite: $(CHANNELS_TEST_SUITE)
dfmc-environment-test-suite: $(DFMC_ENVIRONMENT_TEST_SUITE)
dfmc-environment-test-suite-app: $(DFMC_ENVIRONMENT_TEST_SUITE_APP)

Expand All @@ -843,7 +843,7 @@ test-suites: libraries-test-suite-app duim-test-suites
pentium-test-suites: pentium-test-suite-app
ole-test-suites: ole-test ole-coclass-test ole-macro-test
database-test-suites: sql-odbc-test
environment-test-suites: channels-tests dfmc-environment-test-suite-app
environment-test-suites: channels-test-suite dfmc-environment-test-suite-app

console-scepter-tests: $(CONSOLE_SCEPTER_TESTS)
corba-tests-client-app: $(CORBA_TESTS_CLIENT_APP)
Expand Down Expand Up @@ -2237,11 +2237,11 @@ test-corba: test-scepter test-orb

# Compiler/Environment testing

$(CHANNELS_TESTS):
$(CHANNELS_TEST_SUITE):
$(ENSURE_RUNTIME_LIBRARY) $(CHANNELS_DLL) channels
$(ENSURE_RUNTIME_LIBRARY) $(TESTWORKS_DLL) testworks
$(ENSURE_SOURCES) channels-tests $(CHANNELS_TESTS_SOURCE)
$(BUILD_APPLICATION) channels-tests
$(ENSURE_SOURCES) channels-test-suite $(CHANNELS_TESTS_SOURCE)
$(BUILD_LIBRARY) channels-test-suite

$(DFMC_ENVIRONMENT_TEST_SUITE):
$(ENSURE_RUNTIME_LIBRARY) $(TESTWORKS_DLL) testworks
Expand All @@ -2265,8 +2265,6 @@ test-compiler: warnings-test-suite
test-environment: test-environment-test-suites test-environment-scripts

test-environment-test-suites:
$(ENSURE_APPLICATION) channels-tests
$(TEST_APP) channels-tests
$(ENSURE_APPLICATION) dfmc-environment-test-suite-app
$(TEST_APP) dfmc-environment-test-suite-app dfmc-environment-test-suite

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
Module: channels-tests
Author: Jason Trenouth
Library: channels-tests
Target-Type: executable
Library: channels-test-suite
Target-Type: dll
Files: library
channels
Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.
Expand Down
78 changes: 51 additions & 27 deletions sources/lib/channels/tests/channels.dylan
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Module: channels-tests
Module: channels-test-suite
Author: Jason Trenouth
Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.
All rights reserved.
Expand All @@ -10,8 +10,8 @@ Warranty: Distributed WITHOUT WARRANTY OF ANY KIND
/// typical uses
/// mapper

define test channels-test-1 (name: "Default (object is callback)",
description: "Check channel callbacks called only once while tuned-in.")
// Check channel callbacks called only once while tuned-in.
define test test-defaults--object-is-callback ()
let channel = make(<channel>);
let count1 = 1;
let count2 = 2;
Expand Down Expand Up @@ -43,13 +43,14 @@ define test channels-test-1 (name: "Default (object is callback)",
check-true("Count2 still 4", count2 = 4);
end test;

define test channels-test-2 (name: "Object plus callback",
description: "Make unique object as receiver key.")
define test test-unique-object-as-receiver-key ()
let channel = make(<channel>);
let object = pair(#f, #f);
let count = 0;

tune-in(channel, object, callback: method (message) count := count + message end method);
tune-in(channel, object, callback: method (message)
count := count + message
end);
broadcast(channel, 1);
check-true("Count now 1", count = 1);

Expand All @@ -58,93 +59,116 @@ define test channels-test-2 (name: "Object plus callback",
check-true("Count still 1", count = 1);
end test;

define test channels-test-3 (name: "No message passed (channel property)")
define test test-no-message-passed--channel-property ()
let channel = make(<channel>, message?: #f);
let count = 0;
local method inc-count () count := count + 2 end method;
local method inc-count ()
count := count + 2
end;
tune-in(channel, inc-count);
broadcast(channel, 1);
check-true("Count now 2", count = 2);
end test;

define test channels-test-4 (name: "No message passed (receiver property)")
define test test-no-message-passed--receiver-property ()
let channel = make(<channel>);
let count = 0;
local method inc-count () count := count + 2 end method;
local method inc-count ()
count := count + 2
end;
tune-in(channel, inc-count, message?: #f);
broadcast(channel, 1);
check-true("Count now 2", count = 2);
end test;

define test channels-test-5 (name: "Receiver passed (channel property)")
define test test-receiver-passed--channel-property ()
let channel = make(<channel>, receiver?: #t);
let object = pair(-1, -1);
let maybe-object = #f;
local method inc-count (message, passed-object) maybe-object := passed-object end method;
local method inc-count (message, passed-object)
maybe-object := passed-object
end;
tune-in(channel, object, callback: inc-count);
broadcast(channel, 1);
check-true("Receiver passed", object == maybe-object);
end test;

define test channels-test-6 (name: "Receiver passed (receiver property)")
define test test-receiver-passed--receiver-property ()
let channel = make(<channel>);
let object = pair(-1, -1);
let maybe-object = #f;
local method set-maybe-object (message, passed-object) maybe-object := passed-object end method;
local method set-maybe-object (message, passed-object)
maybe-object := passed-object
end;
tune-in(channel, object, receiver?: #t, callback: set-maybe-object);
broadcast(channel, 1);
check-true("Receiver passed", object == maybe-object);
end test;

define test channels-test-7 (name: "Matches message type")
define test test-message-type ()
let channel = make(<channel>);
let message = list(1);
let maybe-message = #f;
local method set-maybe-message (passed-message) maybe-message := passed-message end method;
local method set-maybe-message (passed-message)
maybe-message := passed-message
end;

tune-in(channel, set-maybe-message, message-type: <list>);
broadcast(channel, vector(1));
check-true("Maybe-message still #F", maybe-message == #f);
check-false("Maybe-message still #F", maybe-message);

broadcast(channel, message);
check-true("Maybe-message now message", maybe-message = message);
check-equal("Maybe-message now message", maybe-message, message);
end test;

define test channels-test-8 (name: "Channel defines callback")
define test test-channel-defines-callback ()
let count = 0;
local method inc-count (message) count := count + message end method;
local method inc-count (message)
count := count + message
end;
let channel = make(<channel>, callback: inc-count);
tune-in(channel, #f);
tune-in(channel, #t);
broadcast(channel, 1);
check-true("Count now 2", count = 2);
end test;

define test channels-test-9 (name: "Receiver overrides channel")
define test test-receiver-overrides-channel ()
let count = 0;
let receiver = #f;
local method inc-count (message) count := count + message end method;
local method inc-count (message)
count := count + message
end;
let channel = make(<channel>, callback: inc-count);
tune-in(channel, #f);
tune-in(channel, #t, message?: #f, receiver?: #t, callback: method (x) receiver := x; count := count + 9 end method);
tune-in(channel, #t, message?: #f, receiver?: #t,
callback: method (x)
receiver := x;
count := count + 9
end);
broadcast(channel, 1);
check-true("Count now 10", count = 10);
check-true("Receiver now #t", receiver = #t);
end test;

define test channels-test-10 (name: "Broadcaster passes extra arguments")
define test test-broadcaster-passes-extra-arguments ()
let channel = make(<channel>);
let count = 0;
local method inc-count (message, extra-arg) count := count + message + extra-arg end method;
local method inc-count (message, extra-arg)
count := count + message + extra-arg
end;
tune-in(channel, inc-count);
broadcast(channel, 1, 99);
check-true("Count now 100", count = 100);
end test;

define test channels-test-11 (name: "Override channel")
define test test-override-channel ()
let channel = make(<channel>);
let count = 0;
local method inc-count (receiver) count := count + receiver; #t end method;
local method inc-count (receiver)
count := count + receiver;
#t
end;
tune-in(channel, 1);
tune-in(channel, 2);
let result = broadcast(override-channel(channel,
Expand Down
4 changes: 2 additions & 2 deletions sources/lib/channels/tests/library.dylan
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc.
License: See License.txt in this distribution for details.
Warranty: Distributed WITHOUT WARRANTY OF ANY KIND

define library channels-tests
define library channels-test-suite
use common-dylan;
use channels;
use testworks;
end library;

define module channels-tests
define module channels-test-suite
use common-dylan;
use channels;
use testworks;
Expand Down
1 change: 1 addition & 0 deletions sources/registry/generic/channels-test-suite
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
abstract://dylan/lib/channels/tests/channels-test-suite.lid
1 change: 0 additions & 1 deletion sources/registry/generic/channels-tests

This file was deleted.