summaryrefslogtreecommitdiff
path: root/test-suite/tests
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2019-08-02 14:32:35 +0200
committerAndy Wingo <wingo@pobox.com>2019-08-02 14:32:35 +0200
commit6a102205dac876edb793572f37833adaa1221e80 (patch)
tree9b03a37a45f917cd5bea60bccf5dad4092a0ca3d /test-suite/tests
parent0a78d39b7735aefc265378556960dc2fed993de7 (diff)
parent420c2632bb1f48e492a035c1d216f209734f45e6 (diff)
downloadguile-6a102205dac876edb793572f37833adaa1221e80.tar.gz
Merge from stable-2.2
Diffstat (limited to 'test-suite/tests')
-rw-r--r--test-suite/tests/web-uri.test33
1 files changed, 30 insertions, 3 deletions
diff --git a/test-suite/tests/web-uri.test b/test-suite/tests/web-uri.test
index 73391898c..94778acac 100644
--- a/test-suite/tests/web-uri.test
+++ b/test-suite/tests/web-uri.test
@@ -1,6 +1,6 @@
;;;; web-uri.test --- URI library -*- mode: scheme; coding: utf-8; -*-
;;;;
-;;;; Copyright (C) 2010-2012, 2014, 2017 Free Software Foundation, Inc.
+;;;; Copyright (C) 2010-2012, 2014, 2017, 2019 Free Software Foundation, Inc.
;;;;
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -121,7 +121,21 @@
(pass-if-uri-exception "http://foo@"
"Expected.*host"
- (build-uri 'http #:userinfo "foo")))
+ (build-uri 'http #:userinfo "foo"))
+
+ ;; In this test, we need to reload the '(web uri)' module with a
+ ;; different locale. This is because some locale-dependent things
+ ;; (e.g., compiled regexes) are computed when the module is loaded.
+ (pass-if-uri-exception "http://illégal.com"
+ "Expected.*host"
+ (dynamic-wind
+ (lambda () #t)
+ (lambda ()
+ (with-locale "en_US.utf8"
+ (reload-module (resolve-module '(web uri)))
+ (build-uri 'http #:host "illégal.com")))
+ (lambda ()
+ (reload-module (resolve-module '(web uri)))))))
(with-test-prefix "build-uri-reference"
(pass-if "//host/etc/foo"
@@ -290,7 +304,20 @@
#:port 100
#:path "/"
#:query "q"
- #:fragment "bar")))
+ #:fragment "bar"))
+
+ ;; This test reproduces bug #35785. See the 'illégal' test above for
+ ;; why we reload the module.
+ (pass-if "http://www.example.com (sv_SE)"
+ (dynamic-wind
+ (lambda () #t)
+ (lambda ()
+ (with-locale "sv_SE.utf8"
+ (reload-module (resolve-module '(web uri)))
+ (uri=? (string->uri "http://www.example.com")
+ #:scheme 'http #:host "www.example.com" #:path "")))
+ (lambda ()
+ (reload-module (resolve-module '(web uri)))))))
(with-test-prefix "string->uri-reference"
(pass-if "/foo"