Mercurial > hg > xemacs-beta
changeset 1231:3f6adebda25c
[xemacs-hg @ 2003-01-23 11:24:08 by stephent]
sigpipe <87u1g0ktd8.fsf@tleepslib.sk.tsukuba.ac.jp>
test-harness.el <87ptqoktab.fsf@tleepslib.sk.tsukuba.ac.jp>
author | stephent |
---|---|
date | Thu, 23 Jan 2003 11:24:13 +0000 |
parents | 78781398fc4c |
children | c08a6fa181d1 |
files | tests/ChangeLog tests/automated/test-harness.el tests/sigpipe.c |
diffstat | 3 files changed, 70 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/ChangeLog Thu Jan 23 10:09:41 2003 +0000 +++ b/tests/ChangeLog Thu Jan 23 11:24:13 2003 +0000 @@ -1,3 +1,13 @@ +2003-01-19 Stephen J. Turnbull <stephen@xemacs.org> + + * sigpipe.c: New file. Crashes 21.1 but not 21.4 or 21.5 (I + think). Thanks to Richard Mlynarik <mly@pobox.com>. + +2003-01-17 Stephen J. Turnbull <stephen@xemacs.org> + + * automated/test-harness.el (test-harness-from-buffer): Move + success rate report to end of line where it's easier to see. + 2003-01-09 Stephen J. Turnbull <stephen@xemacs.org> * automated/mule-tests.el: Test cases for charset-in-* functions.
--- a/tests/automated/test-harness.el Thu Jan 23 10:09:41 2003 +0000 +++ b/tests/automated/test-harness.el Thu Jan 23 11:24:13 2003 +0000 @@ -322,7 +322,7 @@ (basename (file-name-nondirectory filename)) (summary-msg (if (> total 0) - (format "%s: %d of %d (%d%%) tests successful." + (format "%s: %d of %d tests successful (%d%%)." basename passes total (/ (* 100 passes) total)) (format "%s: No tests run" basename))) (reasons ""))
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/sigpipe.c Thu Jan 23 11:24:13 2003 +0000 @@ -0,0 +1,59 @@ +/* code is all from loser.c and loser.el by Mly + +Copyright (C) 2002 Richard Mlynarik <mly@pobox.com> + +This is part of XEmacs + +Compile this file. Run it in the background giving it a command line +argument PORT which is a positive integer 1024 < PORT < 32768 (avoid the +numbers assigned in /etc/services). + +Then start up a fresh (you're going to crash) XEmacs. Execute the following + +(defun lose (port) + (interactive "nUrk: ") + (require 'comint) + (while t + (condition-case e + (let* ((name "*lose*") + (b (get-buffer-create name))) + (switch-to-buffer b) + (comint-mode) + (comint-exec b name (cons "127.0.0.1" port) nil '()) + (process-send-string (get-buffer-process b) "\377\373\001") + (process-send-string (get-buffer-process b) "\377\373\001")) + (error (message "URK: %s" e)) (sit-for 1)))) + +Then M-x lose RET PORT RET and you lose big (in XEmacs 21.1, anyway). +Note: the error messages are proper functioning. What should eventually +happen after a number of SIGPIPEs is that you get a SIGSEGV and life is +bad and XEmacs is dead. +*/ + +#include <arpa/inet.h> + +int +main (int argc, char **argv) +{ + struct sockaddr_in junk; + int s; + + memset (&junk, 0, sizeof (junk)); + + junk.sin_family = AF_INET; + junk.sin_addr.s_addr = htonl (INADDR_ANY); /* un*x sucks */ + junk.sin_port = htons (atoi (argv[1])); /* un*x blows */ + + s = socket (PF_INET, SOCK_STREAM, 0); + + bind (s, (struct sockaddr *)&junk, sizeof (junk)); + + listen (s, 1); + + for (;;) + { + int loser = accept (s, NULL, 0); + close (loser); + } +} +