Hi David,

i will setup a VM for testing in your configuration, but first i have to understand, what pt1/pt2 means.
Is it sufficient to set up a Debian Buster with all available updates?

The emoji/UTF-8 problem points to a Tcl problem. What exact version of Tcl is used in this installation?

The setup based on install-ns.sh [1]  of the release was tested with:

   macOS 11.6.2, Rocky Linux 8.5, Ubuntu 20.04, OpenBSD 6.9, FreeBSD 13.1

The situation of strcoll is also platform dependent (depends on version of libc, e.g. the detail behavior is different on *BSD to the tested Linux versions - but identical on the test cases). Maybe we have to deactivate it for some platforms until these contain working versions.

all the best

-g

[1] https://github.com/gustafn/install-ns

On 06.04.22 13:24, David Osborne wrote:
Hi there,

We're trying to do a build of the official NaviServer v4.99.23 release (from the sourceforge tarball) on Debian Buster (10.12) but we're getting some failed tests.

First one is encoding_ns_http-1.1

Seems it's serving an Emoji but the expected content-length is wrong upon receiving it. I see there's been some discussion about Emoji support since 4.99.23 (which I don't fully understand) - not sure if that's relevant here..

* Test in question:

test encoding_ns_http-1.1 {
    Send body with ns_return and charset utf-8
} -constraints usingExternalToUtf -setup {
    ns_register_proc GET /encoding {
        ns_return 200 "text/plain; charset=utf-8" "äöü😃"
    }
} -body {
    set result [ns_http run [ns_config test listenurl]/encoding]
    set headers [dict get $result headers]
    list [dict get $result status] \
        [ns_set iget $headers Content-Type] \
        [ns_set iget $headers Content-Length] \
        [dict get $result body]
} -cleanup {
    ns_unregister_op GET /encoding
} -result [list 200 "text/plain; charset=utf-8" 10 "äöü😃"]


* Reproduction steps below.

$ uname -a
Linux ip-172-0-1-61 4.19.0-18-cloud-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux
$ cat /etc/debian_version
10.12
$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

$ apt-get install build-essential git automake tcl8.6-dev libssl-dev
$ cd naviserver-4.99.23
$ ./autogen.sh --disable-ipv6 --with-tcl=/usr/lib/tcl8.6 --enable-rpath --enable-threads --enable-symbols
$ make
$ make test
<snip>
==== encoding_ns_http-1.1 Send body with ns_return and charset utf-8 FAILED
==== Contents of test case:

    set result [ns_http run [ns_config test listenurl]/encoding]
    set headers [dict get $result headers]
    list [dict get $result status]  [ns_set iget $headers Content-Type]  [ns_set iget $headers Content-Length]  [dict get $result body]

---- Result was:
200 {text/plain; charset=utf-8} 14 äöü😃
---- Result should have been (exact matching):
200 {text/plain; charset=utf-8} 10 äöü😃
==== encoding_ns_http-1.1 FAILED

Can anyone shed any light?
Regards,
--
David



_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to