776 lines
37 KiB
Scheme
776 lines
37 KiB
Scheme
;;;
|
|
;;; Copyright (c) 2011 Michael Tuexen
|
|
;;; 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.
|
|
;;;
|
|
;;; THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
|
|
;;;
|
|
;;; $Id: sua-sgp-tests.scm,v 1.4 2011/03/21 22:21:46 tuexen Exp $
|
|
|
|
;;;
|
|
;;; Definition of the tests for the SGP
|
|
;;;
|
|
|
|
(define (sua-sgp-aspsm-v-01 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-aspsm-v-01 tester-addr tester-port sut-addr sut-port)
|
|
;;; The test is passed if an ASPUP-ACK is returned
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-v-02 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(let ((msg (sua-wait-for-message fd sua-notify-message?)))
|
|
(close fd)
|
|
(if (and (= (sua-get-status-type-from-message msg) sua-as-state-change-status-type)
|
|
(= (sua-get-status-info-from-message msg) sua-as-inactive))
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-aspsm-v-02 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is a ASPUP-ACK and a NOTIFY(AS_INACTIVE)
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-v-03 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-down-message))
|
|
(sua-wait-for-message fd sua-asp-down-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-aspsm-v-03 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is a ASPDN-ACK
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-v-04 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-refused-management-blocking-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-aspsm-v-04 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(Refused - Management Blocking)
|
|
;;; is returned. Of course, the ASP has to be configured appropiately at the SUT.
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-i-01 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-common-header (+ sua-version 1)
|
|
sua-reserved
|
|
sua-aspsm-message-class
|
|
sua-aspup-message-type
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-invalid-version-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-aspsm-i-01 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is a ERROR(invalid version)
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-i-02 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-common-header sua-version
|
|
sua-reserved
|
|
sua-aspsm-message-class
|
|
sua-reserved-aspsm-message-type
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-message-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-aspsm-i-02 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is a ERROR(unsupported message type)
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-i-03 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unexpected-message-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-aspsm-i-03 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test needs clarification. FIXME.
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-i-04 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-common-header sua-version
|
|
sua-reserved
|
|
sua-aspsm-message-class
|
|
sua-reserved-aspsm-message-type
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-message-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-aspsm-i-04 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported message type)
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-o-01 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-aspsm-o-01 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPUP-ACK.
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-o-02 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unexpected-message-error-code)
|
|
(begin
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(let ((msg (sua-wait-for-message fd sua-notify-message?)))
|
|
(close fd)
|
|
(if (and (= (sua-get-status-type-from-message msg) sua-as-state-change-status-type)
|
|
(= (sua-get-status-info-from-message msg) sua-as-inactive))
|
|
sua-test-result-passed
|
|
sua-test-result-failed)))
|
|
(begin
|
|
(close fd)
|
|
sua-test-result-failed)))))
|
|
;;; (sua-sgp-aspsm-o-002 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unexpected message),
|
|
;;; an ASPUP-ACK and a NOTIFY(AS_INACTIVE).
|
|
|
|
|
|
|
|
(define (sua-sgp-aspsm-o-03 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-down-message))
|
|
(sua-wait-for-message fd sua-asp-down-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-aspsm-o-03 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPDN-ACK,
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-01 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-asptm-v-01 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPAC-ACK.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-02 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(let ((msg (sua-wait-for-message fd sua-notify-message?)))
|
|
(close fd)
|
|
(if (and (= (sua-get-status-type-from-message msg) sua-as-state-change-status-type)
|
|
(= (sua-get-status-info-from-message msg) sua-as-active))
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-v-02 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPAC-ACK and NOTIFY(AS-ACTIVE).
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-03 tester-addr tester-port sut-addr sut-port rc)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message (list (sua-make-routing-context-parameter (list rc)))))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(close fd)
|
|
sua-test-result-unknown))
|
|
;;; (sua-sgp-asptm-v-03 tester-addr tester-port sut-addr sut-port tester-rc-valid)
|
|
;;; This test is passed if there is an ASPAC-ACK contains the RC.
|
|
;;; NOTE: This test does not use the asp-active-message-parameters variable.
|
|
|
|
|
|
(define (sua-sgp-asptm-v-04 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-inactive-message asp-inactive-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-inactive-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-asptm-v-04 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPIA-ACK.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-05 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-inactive-message asp-inactive-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-inactive-ack-message?)
|
|
(let ((msg (sua-wait-for-message fd sua-notify-message?)))
|
|
(close fd)
|
|
(if (and (= (sua-get-status-type-from-message msg) sua-as-state-change-status-type)
|
|
(= (sua-get-status-info-from-message msg) sua-as-pending))
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-v-05 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPIA-ACK and NOTIFY(AS-PENDING).
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-06 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-beat-message (string->bytes "SUA rocks")))
|
|
(sua-wait-for-message fd sua-beat-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-asptm-v-06 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is a BEAT-ACK.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-07 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(let ((value (random-bytes 13)))
|
|
(sua-send-message fd 0 (sua-make-beat-message value))
|
|
(let ((msg (sua-wait-for-message fd sua-beat-ack-message?)))
|
|
(close fd)
|
|
(if (equal? msg (sua-make-beat-ack-message value))
|
|
sua-test-result-passed
|
|
sua-test-result-failed)))))
|
|
;;; (sua-sgp-asptm-v-07 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is a BEAT-ACK with unchanged data.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-08 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2)
|
|
(let ((fd1 (sua-connect tester-addr tester-port-1 sut-addr sut-port-1))
|
|
(fd2 (sua-connect tester-addr tester-port-2 sut-addr sut-port-2)))
|
|
;;; Move ASP1 to ASP-ACTIVE
|
|
(sua-send-message fd1 0 (sua-make-asp-up-message (list (sua-make-asp-id-parameter asp-id-1))))
|
|
(sua-wait-for-message fd1 sua-asp-up-ack-message?)
|
|
(sua-send-message fd1 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter sua-traffic-mode-type-broadcast))))
|
|
(sua-wait-for-message fd1 sua-asp-active-ack-message?)
|
|
;;; Move ASP2 to ASP-ACTIVE
|
|
(sua-send-message fd2 0 (sua-make-asp-up-message (list (sua-make-asp-id-parameter asp-id-2))))
|
|
(sua-wait-for-message fd2 sua-asp-up-ack-message?)
|
|
(sua-send-message fd2 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter sua-traffic-mode-type-broadcast))))
|
|
(sua-wait-for-message fd2 sua-asp-active-ack-message?)
|
|
;;; Now move ASP1 to ASP-INACTIVE
|
|
(sua-send-message fd1 0 (sua-make-asp-inactive-message (list)))
|
|
(sua-wait-for-message fd1 sua-asp-inactive-ack-message?)
|
|
(let ((msg (sua-wait-for-message fd1 sua-notify-message?)))
|
|
(close fd1)
|
|
(close fd2)
|
|
(if (and (= (sua-get-status-type-from-message msg) sua-other-status-type)
|
|
(= (sua-get-status-info-from-message msg) sua-insufficient-resources))
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-v-08 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2)
|
|
;;; This test is passed if the SUT sends a NOTIFY.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-v-09 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2)
|
|
(let ((fd1 (sua-connect tester-addr tester-port-1 sut-addr sut-port-1))
|
|
(fd2 (sua-connect tester-addr tester-port-2 sut-addr sut-port-2)))
|
|
;;; Move ASP1 to ASP-INACTIVE
|
|
(sua-send-message fd1 0 (sua-make-asp-up-message (list (sua-make-asp-id-parameter asp-id-1))))
|
|
(sua-wait-for-message fd1 sua-asp-up-ack-message?)
|
|
;;; Move ASP2 to ASP-ACTIVE
|
|
(sua-send-message fd2 0 (sua-make-asp-up-message (list (sua-make-asp-id-parameter asp-id-2))))
|
|
(sua-wait-for-message fd2 sua-asp-up-ack-message?)
|
|
(sua-send-message fd2 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter sua-traffic-mode-type-override))))
|
|
(sua-wait-for-message fd2 sua-asp-active-ack-message?)
|
|
;;; Now move ASP1 to ASP-ACTIVE
|
|
(sua-send-message fd1 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter sua-traffic-mode-type-override))))
|
|
(sua-wait-for-message fd1 sua-asp-active-ack-message?)
|
|
(sua-wait-for-message fd2 sua-notify-message?)
|
|
(close fd1)
|
|
(close fd2)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-asptm-v-09 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2)
|
|
;;; This test is passed if the SUT sends an ASPAC-ACK and a NOTIFY.
|
|
|
|
|
|
|
|
(define sua-sgp-asptm-v-10 sua-sgp-asptm-v-09)
|
|
;;; (sua-sgp-asptm-v-10 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2)
|
|
;;; This test is passed if the SUT sends an ASPAC-ACK and a NOTIFY including the ASP-ID.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-01 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-common-header (+ sua-version 1)
|
|
sua-reserved
|
|
sua-asptm-message-class
|
|
sua-aspac-message-type
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-invalid-version-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-i-01 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(invalid version).
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-02 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter sua-traffic-mode-type-broadcast))))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-traffic-mode-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-i-02 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported traffic mode type).
|
|
;;; NOTE: This test does not used the asp-active-message-parameters variable.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-03 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter 4))))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-traffic-mode-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-i-03 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported traffic mode type).
|
|
;;; NOTE: This test does not used the asp-active-message-parameters variable.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-04-help tester-addr tester-port sut-addr sut-port rc)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message (list (sua-make-routing-context-parameter (list rc)))))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-invalid-routing-context-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
|
|
(define (sua-sgp-asptm-i-04 tester-addr tester-port sut-addr sut-port)
|
|
(sua-sgp-asptm-i-04-help tester-addr tester-port sut-addr sut-port tester-rc-invalid))
|
|
;;; (sua-sgp-asptm-i-04 tester-addr tester-port sut-addr sut-port tester-rc-invalid)
|
|
;;; This test is passed if there is an ERROR(invalid routing context)..
|
|
;;; NOTE: This test does not use the asp-active-message-parameters variabel.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-05 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-common-header sua-version
|
|
sua-reserved
|
|
sua-asptm-message-class
|
|
5
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-message-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-i-05 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported message type).
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-06 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-common-header sua-version
|
|
sua-reserved
|
|
sua-asptm-message-class
|
|
5
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-message-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-i-06 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported message type).
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-07 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2)
|
|
(let ((fd1 (sua-connect tester-addr tester-port-1 sut-addr sut-port-1))
|
|
(fd2 (sua-connect tester-addr tester-port-2 sut-addr sut-port-2)))
|
|
;;; Move ASP1 to ASP-ACTIVE
|
|
(sua-send-message fd1 0 (sua-make-asp-up-message (list (sua-make-asp-id-parameter asp-id-1))))
|
|
(sua-wait-for-message fd1 sua-asp-up-ack-message?)
|
|
(sua-send-message fd1 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter sua-traffic-mode-type-override))))
|
|
(sua-wait-for-message fd1 sua-asp-active-ack-message?)
|
|
;;; Move ASP2 to ASP-ACTIVE
|
|
(sua-send-message fd2 0 (sua-make-asp-up-message (list (sua-make-asp-id-parameter asp-id-2))))
|
|
(sua-wait-for-message fd2 sua-asp-up-ack-message?)
|
|
(sua-send-message fd2 0 (sua-make-asp-active-message (list (sua-make-traffic-mode-type-parameter sua-traffic-mode-type-override))))
|
|
(sua-wait-for-message fd2 sua-asp-active-ack-message?)
|
|
;;; Now fail communication to ASP1 via SHUTDOWN procedure.
|
|
(close fd1)
|
|
(let ((msg (sua-wait-for-message fd2 sua-notify-message?)))
|
|
(close fd2)
|
|
(if (and (= (sua-get-status-type-from-message msg) sua-other-status-type)
|
|
(= (sua-get-status-info-from-message msg) sua-asp-failure))
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-asptm-i-07 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 asp-id-1 asp-id-2)
|
|
;;; This test is passed if the SUT sends a NOTIFY(ASP-FAILURE).
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-i-08 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-inactive-message asp-inactive-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-inactive-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-asptm-i-08 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPIA-ACK.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-o-01 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-asptm-o-01 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPAC-ACK.
|
|
|
|
|
|
|
|
(define (sua-sgp-asptm-o-02 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-inactive-message asp-inactive-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-inactive-ack-message?)
|
|
(close fd)
|
|
sua-test-result-passed))
|
|
;;; (sua-sgp-asptm-o-02 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ASPIA-ACK.
|
|
|
|
|
|
|
|
(define (m3ua-sgp-mtr-v-001 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 rc-1 rc-2 tester-pc-1 tester-pc-2)
|
|
(let ((fd1 (m3ua-connect tester-addr tester-port-1 sut-addr sut-port-1))
|
|
(fd2 (m3ua-connect tester-addr tester-port-2 sut-addr sut-port-2)))
|
|
;;; Move ASP1 to ASP-ACTIVE
|
|
(m3ua-send-message fd1 0 (m3ua-make-asp-up-message asp-up-message-parameters))
|
|
(m3ua-wait-for-message fd1 m3ua-asp-up-ack-message?)
|
|
(m3ua-send-message fd1 0 (m3ua-make-asp-active-message asp-active-message-parameters))
|
|
(m3ua-wait-for-message fd1 m3ua-asp-active-ack-message?)
|
|
;;; Move ASP2 to ASP-ACTIVE
|
|
(m3ua-send-message fd2 0 (m3ua-make-asp-up-message asp-up-message-parameters))
|
|
(m3ua-wait-for-message fd2 m3ua-asp-up-ack-message?)
|
|
(m3ua-send-message fd2 0 (m3ua-make-asp-active-message (list (m3ua-make-routing-context-parameter (list rc-1 rc-2)))))
|
|
(m3ua-wait-for-message fd2 m3ua-asp-active-ack-message?)
|
|
(sleep 10) ;;; wait for DAVA
|
|
(do ((sls 0 (+ sls 1)))
|
|
((= sls 16))
|
|
(m3ua-send-message fd1 1 (m3ua-make-data-message tester-pc-1 tester-pc-2 ss7-si iut-ni iut-mp sls ss7-message data-message-parameters))
|
|
(m3ua-wait-for-message fd2 m3ua-data-message?)
|
|
(sleep 1))
|
|
(close fd1)
|
|
(close fd2)
|
|
m3ua-test-result-unkown))
|
|
;;; (m3ua-sgp-mtr-v-001 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-rc-valid-1 tester-rc-valid-2 tester-pc-1 tester-pc-2)
|
|
;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1
|
|
;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2
|
|
;;; See ETSI document.
|
|
|
|
|
|
|
|
(define (m3ua-sgp-mtr-v-002 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2)
|
|
(let ((fd1 (m3ua-connect tester-addr tester-port-1 sut-addr sut-port-1))
|
|
(fd2 (m3ua-connect tester-addr tester-port-2 sut-addr sut-port-2)))
|
|
;;; Move ASP1 to ASP-ACTIVE
|
|
(m3ua-send-message fd1 0 (m3ua-make-asp-up-message asp-up-message-parameters))
|
|
(m3ua-wait-for-message fd1 m3ua-asp-up-ack-message?)
|
|
(m3ua-send-message fd1 0 (m3ua-make-asp-active-message asp-active-message-parameters))
|
|
(m3ua-wait-for-message fd1 m3ua-asp-active-ack-message?)
|
|
;;; Move ASP2 to ASP-ACTIVE
|
|
(m3ua-send-message fd2 0 (m3ua-make-asp-up-message asp-up-message-parameters))
|
|
(m3ua-wait-for-message fd2 m3ua-asp-up-ack-message?)
|
|
(m3ua-send-message fd2 0 (m3ua-make-asp-active-message asp-active-message-parameters))
|
|
(m3ua-wait-for-message fd2 m3ua-asp-active-ack-message?)
|
|
(sleep 10) ;;; wait for DAVA
|
|
(do ((sls 0 (+ sls 1)))
|
|
((= sls 16))
|
|
(m3ua-send-message fd1 1 (m3ua-make-data-message tester-pc-1 tester-pc-2 ss7-si iut-ni iut-mp sls ss7-message data-message-parameters))
|
|
(m3ua-wait-for-message fd2 m3ua-data-message?)
|
|
(sleep 1))
|
|
(close fd1)
|
|
(close fd2)
|
|
m3ua-test-result-unkown))
|
|
;;; (m3ua-sgp-asptm-v-002 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2)
|
|
;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1
|
|
;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2
|
|
;;; See ETSI document.
|
|
|
|
|
|
|
|
(define (m3ua-sgp-mtr-v-002-alternate tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters))
|
|
(m3ua-wait-for-message fd m3ua-asp-up-ack-message?)
|
|
(m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters))
|
|
(m3ua-wait-for-message fd m3ua-asp-active-ack-message?)
|
|
(m3ua-send-message fd 1 (m3ua-make-data-message tester-pc tester-pc ss7-si iut-ni iut-mp iut-sls ss7-message data-message-parameters))
|
|
(m3ua-send-message fd 1 (apply append (cons (m3ua-make-common-header m3ua-version
|
|
m3ua-reserved
|
|
m3ua-tfer-message-class
|
|
m3ua-data-message-type
|
|
m3ua-common-header-length)
|
|
data-message-parameters)))
|
|
(let ((msg (m3ua-wait-for-message fd m3ua-error-message?)))
|
|
(close fd)
|
|
(if (= (m3ua-get-error-code-from-message msg)
|
|
m3ua-missing-parameter-error-code)
|
|
m3ua-test-result-passed
|
|
m3ua-test-result-failed))))
|
|
;;; (m3ua-sgp-mtr-v-002-alternate tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if the SUT responds with an ERROR message to the second DATA message.
|
|
;;; FIXME: This does NOT match the current ETSI test but a change request.
|
|
|
|
|
|
|
|
(define m3ua-sgp-mtr-v-003 m3ua-sgp-mtr-v-002)
|
|
;;; (m3ua-sgp-asptm-v-003 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2)
|
|
;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1
|
|
;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2
|
|
;;; See ETSI document.
|
|
|
|
|
|
|
|
(define (m3ua-sgp-mtr-v-003-alternate tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (m3ua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(m3ua-send-message fd 0 (m3ua-make-asp-up-message asp-up-message-parameters))
|
|
(m3ua-wait-for-message fd m3ua-asp-up-ack-message?)
|
|
(m3ua-send-message fd 0 (m3ua-make-asp-active-message asp-active-message-parameters))
|
|
(m3ua-wait-for-message fd m3ua-asp-active-ack-message?)
|
|
(m3ua-send-message fd 1 (m3ua-make-data-message tester-pc tester-pc ss7-si iut-ni iut-mp iut-sls ss7-message data-message-parameters))
|
|
(m3ua-send-message fd 0 (m3ua-make-data-message tester-pc tester-pc ss7-si iut-ni iut-mp iut-sls ss7-message data-message-parameters))
|
|
(let ((msg (m3ua-wait-for-message fd m3ua-error-message?)))
|
|
(close fd)
|
|
(if (= (m3ua-get-error-code-from-message msg)
|
|
m3ua-invalid-stream-identifier-error-code)
|
|
m3ua-test-result-passed
|
|
m3ua-test-result-failed))))
|
|
;;; (m3ua-sgp-mtr-v-003-alternate tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if the SUT sends an ERROR message for the second DATA message.
|
|
;;; FIXME: This does NOT match the current ETSI test but a change request.
|
|
|
|
|
|
|
|
(define m3ua-sgp-mtr-v-004 m3ua-sgp-mtr-v-002)
|
|
;;; (m3ua-sgp-asptm-v-004 tester-addr tester-port-1 tester-port-2 sut-addr sut-port-1 sut-port-2 tester-pc-1 tester-pc-2)
|
|
;;; tester-pc-1 must be the point code of ASP corresponding to tester-addr tester-port-1 <-> sut-addr sut-port-1
|
|
;;; tester-pc-2 must be the point code of ASP corresponding to tester-addr tester-port-2 <-> sut-addr sut-port-2
|
|
;;; See ETSI document.
|
|
|
|
|
|
|
|
(define (sua-sgp-mtr-i-01 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 1 (append (sua-make-common-header (+ 1 sua-version)
|
|
sua-reserved
|
|
sua-connection-less-message-class
|
|
sua-cldt-message-type
|
|
(+ sua-common-header-length
|
|
8 8 24 24 8 4
|
|
(length sccp-test-message)))
|
|
(sua-make-routing-context-parameter (list tester-rc-valid))
|
|
(sua-make-protocol-class-parameter sua-protocol-class-0 #f)
|
|
(sua-make-source-address-parameter sua-route-on-ssn-and-pc-indicator
|
|
sua-address-indicator-ssn-mask
|
|
(list (sua-make-point-code-parameter tester-pc)
|
|
(sua-make-subsystem-number-parameter tester-ssn)))
|
|
(sua-make-destination-address-parameter sua-route-on-ssn-and-pc-indicator
|
|
sua-address-indicator-ssn-mask
|
|
(list (sua-make-point-code-parameter sut-pc)
|
|
(sua-make-subsystem-number-parameter sut-ssn)))
|
|
(sua-make-sequence-control-parameter 0)
|
|
(sua-make-data-parameter sccp-test-message)))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-invalid-version-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-mtr-i-01 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(invalid version).
|
|
|
|
|
|
|
|
(define (sua-sgp-mtr-i-02 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-common-header sua-version
|
|
sua-reserved
|
|
sua-reserved-message-class
|
|
sua-cldt-message-type
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-message-class-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-mtr-i-02 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported message class).
|
|
|
|
|
|
|
|
(define (sua-sgp-mtr-i-03 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 1 (sua-make-common-header sua-version
|
|
sua-reserved
|
|
sua-connection-less-message-class
|
|
sua-reserved-cl-message-type
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-message-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-mtr-i-03 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported message type).
|
|
|
|
|
|
(define (sua-sgp-mtr-i-04 tester-addr tester-port sut-addr sut-port)
|
|
(let ((fd (sua-connect tester-addr tester-port sut-addr sut-port)))
|
|
(sua-send-message fd 0 (sua-make-asp-up-message asp-up-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-up-ack-message?)
|
|
(sua-send-message fd 0 (sua-make-asp-active-message asp-active-message-parameters))
|
|
(sua-wait-for-message fd sua-asp-active-ack-message?)
|
|
(sua-send-message fd 1 (sua-make-common-header sua-version
|
|
sua-reserved
|
|
sua-connection-oriented-message-class
|
|
sua-reserved-co-message-type
|
|
sua-common-header-length))
|
|
(let ((msg (sua-wait-for-message fd sua-error-message?)))
|
|
(close fd)
|
|
(if (= (sua-get-error-code-from-message msg)
|
|
sua-unsupported-message-type-error-code)
|
|
sua-test-result-passed
|
|
sua-test-result-failed))))
|
|
;;; (sua-sgp-mtr-i-04 tester-addr tester-port sut-addr sut-port)
|
|
;;; This test is passed if there is an ERROR(unsupported message type).
|