Author: yamakenz
Date: Fri Sep 7 13:36:39 2007
New Revision: 4943
Added:
sigscheme-trunk/test/test-srfi43.scm
Modified:
sigscheme-trunk/QALog
sigscheme-trunk/lib/srfi-43.scm
sigscheme-trunk/src/module-srfi43.c
sigscheme-trunk/test/Makefile.am
Log:
[QA] module-srfi43.c
* lib/srfi-43.scm
- (check-indices): Fix an incorrect error message in check-indices
* test/test-srfi43.scm
- New file
- Add tests for let-vector-start+end
* test/Makefile.am
- (sscm_tests): Add test-srfi43.scm
* src/module-srfi43.c
- (scm_s_let_vector_start_plus_end): Rename local vars
* QALog
- Update
Modified: sigscheme-trunk/QALog
==============================================================================
--- sigscheme-trunk/QALog (original)
+++ sigscheme-trunk/QALog Fri Sep 7 13:36:39 2007
@@ -1022,14 +1022,14 @@
file: module-srfi43.c
category: srfi
-spec by eyes:
-spec by tests:
-general review:
-64-bit by eyes:
-64-bit by tests:
-coding style:
-normal case tests:
-corner case tests:
+spec by eyes: [EMAIL PROTECTED]
+spec by tests: [EMAIL PROTECTED]
+general review: [EMAIL PROTECTED]
+64-bit by eyes: [EMAIL PROTECTED]
+64-bit by tests:
+coding style: [EMAIL PROTECTED]
+normal case tests: [EMAIL PROTECTED]
+corner case tests: [EMAIL PROTECTED]
file: module-srfi48.c
category: srfi
@@ -1133,6 +1133,10 @@
Log
---
+2007-09-08 YamaKen <yamaken AT bp.iij4u.or.jp>
+ * module-srfi43.c
+ - QA done @r4943 with test-srfi43.scm
+
2007-09-04 YamaKen <yamaken AT bp.iij4u.or.jp>
* module-srfi9.c
- QA done again @r4939 (including the fix in r4928) with
Modified: sigscheme-trunk/lib/srfi-43.scm
==============================================================================
--- sigscheme-trunk/lib/srfi-43.scm (original)
+++ sigscheme-trunk/lib/srfi-43.scm Fri Sep 7 13:36:39 2007
@@ -8,6 +8,7 @@
;; 2007-08-28 yamaken - Imported from
;; http://srfi.schemers.org/srfi-43/vector-lib.scm
;; and adapted to SigScheme
+;; 2007-09-08 yamaken - Fix an incorrect error message in check-indices
;;; --------------------
@@ -243,7 +244,7 @@
callee))
((>= start (vector-length vec))
(check-indices vec
- (lose `(,start-name > len)
+ (lose `(,start-name >= len)
`(len was ,(vector-length vec)))
start-name
end end-name
Modified: sigscheme-trunk/src/module-srfi43.c
==============================================================================
--- sigscheme-trunk/src/module-srfi43.c (original)
+++ sigscheme-trunk/src/module-srfi43.c Fri Sep 7 13:36:39 2007
@@ -101,7 +101,8 @@
ScmObj body,
ScmEvalState *eval_state)
{
- ScmObj env, start, end, proc_check_type, check_type_args, receive_expr;
+ ScmObj env, start_name, end_name, proc_check_type, check_type_args;
+ ScmObj receive_expr;
DECLARE_FUNCTION("let-vector-start+end", syntax_variadic_tailrec_4);
if (!LIST_2_P(start_plus_end))
@@ -117,9 +118,9 @@
EVAL(callee, env));
vec = scm_call(proc_check_type, check_type_args);
- start = QUOTE(CAR(start_plus_end));
- end = QUOTE(CADR(start_plus_end));
+ start_name = QUOTE(CAR(start_plus_end));
+ end_name = QUOTE(CADR(start_plus_end));
receive_expr = CONS(l_sym_vector_parse_start_plus_end,
- LIST_5(QUOTE(vec), args, start, end, callee));
+ LIST_5(QUOTE(vec), args, start_name, end_name,
callee));
return scm_s_srfi8_receive(start_plus_end, receive_expr, body, eval_state);
}
Modified: sigscheme-trunk/test/Makefile.am
==============================================================================
--- sigscheme-trunk/test/Makefile.am (original)
+++ sigscheme-trunk/test/Makefile.am Fri Sep 7 13:36:39 2007
@@ -50,6 +50,7 @@
test-srfi34.scm \
test-srfi34-2.scm \
test-srfi38.scm \
+ test-srfi43.scm \
test-srfi48.scm \
test-srfi55.scm \
test-srfi60.scm \
Added: sigscheme-trunk/test/test-srfi43.scm
==============================================================================
--- (empty file)
+++ sigscheme-trunk/test/test-srfi43.scm Fri Sep 7 13:36:39 2007
@@ -0,0 +1,218 @@
+;; Filename : test-srfi43.scm
+;; About : unit tests for SRFI-43
+;;
+;; Copyright (c) 2007 SigScheme Project <uim-en AT googlegroups.com>
+;;
+;; All rights reserved.
+;;
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions
+;; are met:
+;;
+;; 1. Redistributions of source code must retain the above copyright
+;; notice, this list of conditions and the following disclaimer.
+;; 2. Redistributions in binary form must reproduce the above copyright
+;; notice, this list of conditions and the following disclaimer in the
+;; documentation and/or other materials provided with the distribution.
+;; 3. Neither the name of authors nor the names of its contributors
+;; may be used to endorse or promote products derived from this software
+;; without specific prior written permission.
+;;
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+;; IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+;; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+;; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+;; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+;; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(require-extension (unittest) (srfi 43))
+
+
+(test-begin "let-vector-start+end invalid forms")
+(define vec (vector 'foo 'bar 'baz))
+;; nonexistent <callee>
+(test-error (let-vector-start+end nonexistent vec '() (start end) #t))
+;; invalid <vector>
+(test-error (let-vector-start+end vector-ref '() '() (start end) #t))
+(test-error (let-vector-start+end vector-ref #f '() (start end) #t))
+;; invalid <args>
+(test-error (let-vector-start+end vector-ref vec '(#t) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(0 #t) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(0 1 2) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '#() (start end) #t))
+(test-error (let-vector-start+end vector-ref vec #f (start end) #t))
+;; malformed bindings
+(test-error (let-vector-start+end vector-ref vec '() () #t))
+(test-error (let-vector-start+end vector-ref vec '() (start) #t))
+(test-error (let-vector-start+end vector-ref vec '() (start end extra) #t))
+(test-error (let-vector-start+end vector-ref vec '() '(start end) #t))
+(test-error (let-vector-start+end vector-ref vec '() #() #t))
+(test-error (let-vector-start+end vector-ref vec '() '#() #t))
+;; no body
+(test-error (let-vector-start+end vector-ref vec '() (start end)))
+(test-end)
+
+(test-begin "let-vector-start+end null vector")
+(test-error (let-vector-start+end vector-ref '#() '(-1) (start end) #t))
+(test-equal '(0 0)
+ (let-vector-start+end vector-ref '#() '() (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref '#() '(0) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref '#() '(0 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref '#() '(0 0) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref '#() '(0 1) (start end) #t))
+(test-error (let-vector-start+end vector-ref '#() '(1) (start end) #t))
+(test-error (let-vector-start+end vector-ref '#() '(1 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref '#() '(1 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref '#() '(1 1) (start end) #t))
+(test-end)
+
+(test-begin "let-vector-start+end length 1")
+(define vec (vector 'foo))
+(test-error (let-vector-start+end vector-ref vec '(-1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 2) (start end) #t))
+(test-equal '(0 1)
+ (let-vector-start+end vector-ref vec '() (start end)
+ (list start end)))
+(test-equal '(0 1)
+ (let-vector-start+end vector-ref vec '(0) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(0 -1) (start end) #t))
+(test-equal '(0 0)
+ (let-vector-start+end vector-ref vec '(0 0) (start end)
+ (list start end)))
+(test-equal '(0 1)
+ (let-vector-start+end vector-ref vec '(0 1) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(0 2) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(1 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(1 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(1 1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(1 2) (start end) #t))
+(test-end)
+
+(test-begin "let-vector-start+end length 2")
+(define vec (vector 'foo 'bar))
+(test-error (let-vector-start+end vector-ref vec '(-1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 2) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 3) (start end) #t))
+(test-equal '(0 2)
+ (let-vector-start+end vector-ref vec '() (start end)
+ (list start end)))
+(test-equal '(0 2)
+ (let-vector-start+end vector-ref vec '(0) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(0 -1) (start end) #t))
+(test-equal '(0 0)
+ (let-vector-start+end vector-ref vec '(0 0) (start end)
+ (list start end)))
+(test-equal '(0 1)
+ (let-vector-start+end vector-ref vec '(0 1) (start end)
+ (list start end)))
+(test-equal '(0 2)
+ (let-vector-start+end vector-ref vec '(0 2) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(0 3) (start end) #t))
+
+(test-equal '(1 2)
+ (let-vector-start+end vector-ref vec '(1) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(1 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(1 0) (start end) #t))
+(test-equal '(1 1)
+ (let-vector-start+end vector-ref vec '(1 1) (start end)
+ (list start end)))
+(test-equal '(1 2)
+ (let-vector-start+end vector-ref vec '(1 2) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(1 3) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2 1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2 2) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2 3) (start end) #t))
+(test-end)
+
+(test-begin "let-vector-start+end length 3")
+(define vec (vector 'foo 'bar 'baz))
+(test-error (let-vector-start+end vector-ref vec '(-1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 2) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(-1 3) (start end) #t))
+(test-equal '(0 3)
+ (let-vector-start+end vector-ref vec '() (start end)
+ (list start end)))
+(test-equal '(0 3)
+ (let-vector-start+end vector-ref vec '(0) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(0 -1) (start end) #t))
+(test-equal '(0 0)
+ (let-vector-start+end vector-ref vec '(0 0) (start end)
+ (list start end)))
+(test-equal '(0 1)
+ (let-vector-start+end vector-ref vec '(0 1) (start end)
+ (list start end)))
+(test-equal '(0 2)
+ (let-vector-start+end vector-ref vec '(0 2) (start end)
+ (list start end)))
+(test-equal '(0 3)
+ (let-vector-start+end vector-ref vec '(0 3) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(0 4) (start end) #t))
+
+(test-equal '(1 3)
+ (let-vector-start+end vector-ref vec '(1) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(1 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(1 0) (start end) #t))
+(test-equal '(1 1)
+ (let-vector-start+end vector-ref vec '(1 1) (start end)
+ (list start end)))
+(test-equal '(1 2)
+ (let-vector-start+end vector-ref vec '(1 2) (start end)
+ (list start end)))
+(test-equal '(1 3)
+ (let-vector-start+end vector-ref vec '(1 3) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(1 4) (start end) #t))
+
+(test-equal '(2 3)
+ (let-vector-start+end vector-ref vec '(2) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(2 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(2 1) (start end) #t))
+(test-equal '(2 2)
+ (let-vector-start+end vector-ref vec '(2 2) (start end)
+ (list start end)))
+(test-equal '(2 3)
+ (let-vector-start+end vector-ref vec '(2 3) (start end)
+ (list start end)))
+(test-error (let-vector-start+end vector-ref vec '(2 4) (start end) #t))
+
+(test-error (let-vector-start+end vector-ref vec '(3) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(3 -1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(3 0) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(3 1) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(3 2) (start end) #t))
+(test-error (let-vector-start+end vector-ref vec '(3 3) (start end) #t))
+(test-end)
+
+(test-report-result)