mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
test: Remove nc.py
The nc.py script is only used in a single test, and for waiting for a TCP port to be opened for listening. This patch replaces it entirely, by using chamuyero for the test, and bash for waiting on a TCP port.
This commit is contained in:
@@ -14,7 +14,7 @@ wait_until_ready 1025
|
|||||||
|
|
||||||
|
|
||||||
# Send mail with an empty address (directly, unauthenticated).
|
# Send mail with an empty address (directly, unauthenticated).
|
||||||
nc.py localhost 1025 < sendmail > /dev/null
|
chamuyero sendmail.cmy > .logs/chamuyero 2>&1
|
||||||
wait_for_file .mail/user@testserver
|
wait_for_file .mail/user@testserver
|
||||||
mail_diff content .mail/user@testserver
|
mail_diff content .mail/user@testserver
|
||||||
rm -f .mail/user@testserver
|
rm -f .mail/user@testserver
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
EHLO localhost
|
|
||||||
MAIL FROM: <>
|
|
||||||
RCPT TO: user@testserver
|
|
||||||
DATA
|
|
||||||
From: Mailer daemon <somewhere@horns.com>
|
|
||||||
Subject: I've come to haunt you
|
|
||||||
|
|
||||||
Muahahahaha
|
|
||||||
|
|
||||||
|
|
||||||
.
|
|
||||||
QUIT
|
|
||||||
|
|
||||||
23
test/t-05-null_address/sendmail.cmy
Normal file
23
test/t-05-null_address/sendmail.cmy
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
c tcp_connect localhost:1025
|
||||||
|
|
||||||
|
c <~ 220
|
||||||
|
c -> EHLO localhost
|
||||||
|
c <... 250 HELP
|
||||||
|
c -> MAIL FROM: <>
|
||||||
|
c <~ 250
|
||||||
|
c -> RCPT TO: user@testserver
|
||||||
|
c <~ 250
|
||||||
|
c -> DATA
|
||||||
|
c <~ 354
|
||||||
|
c -> From: Mailer daemon <somewhere@horns.com>
|
||||||
|
c -> Subject: I've come to haunt you
|
||||||
|
c ->
|
||||||
|
c -> Muahahahaha
|
||||||
|
c ->
|
||||||
|
c ->
|
||||||
|
c -> .
|
||||||
|
c <~ 250
|
||||||
|
c -> QUIT
|
||||||
|
c <~ 221
|
||||||
|
|
||||||
@@ -61,10 +61,6 @@ function smtpc.py() {
|
|||||||
${UTILDIR}/smtpc.py "$@"
|
${UTILDIR}/smtpc.py "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
function nc.py() {
|
|
||||||
${UTILDIR}/nc.py "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
function mail_diff() {
|
function mail_diff() {
|
||||||
${UTILDIR}/mail_diff "$@"
|
${UTILDIR}/mail_diff "$@"
|
||||||
}
|
}
|
||||||
@@ -91,7 +87,7 @@ function fail() {
|
|||||||
function wait_until_ready() {
|
function wait_until_ready() {
|
||||||
PORT=$1
|
PORT=$1
|
||||||
|
|
||||||
while ! nc.py -z localhost $PORT; do
|
while ! bash -c "true < /dev/tcp/localhost/$PORT" 2>/dev/null ; do
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
#
|
|
||||||
# Simple "netcat" implementation.
|
|
||||||
# Unfortunately netcat/nc is not that portable, so this contains a simple
|
|
||||||
# implementation which fits our needs.
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import threading
|
|
||||||
import smtplib
|
|
||||||
import socket
|
|
||||||
import sys
|
|
||||||
|
|
||||||
ap = argparse.ArgumentParser()
|
|
||||||
ap.add_argument("-z", action='store_true', help="scan for listening daemons")
|
|
||||||
ap.add_argument("host", help="host to connect to")
|
|
||||||
ap.add_argument("port", type=int, help="port to connect to")
|
|
||||||
args = ap.parse_args()
|
|
||||||
|
|
||||||
address = (args.host, args.port)
|
|
||||||
|
|
||||||
try:
|
|
||||||
sock = socket.create_connection(address)
|
|
||||||
fd = sock.makefile('rw', buffering=1, encoding="utf-8")
|
|
||||||
except OSError:
|
|
||||||
# Exit quietly, like nc does.
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
if args.z:
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
|
|
||||||
# stdin -> socket in the background. Do a partial shutdown when done.
|
|
||||||
def stdin_to_sock():
|
|
||||||
for line in sys.stdin:
|
|
||||||
fd.write(line)
|
|
||||||
fd.flush()
|
|
||||||
|
|
||||||
try:
|
|
||||||
sock.shutdown(socket.SHUT_WR)
|
|
||||||
except OSError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
t1 = threading.Thread(target=stdin_to_sock, daemon=True)
|
|
||||||
t1.start()
|
|
||||||
|
|
||||||
# socket -> stdout in the foreground; if the socket closes, exit.
|
|
||||||
for line in fd:
|
|
||||||
sys.stdout.write(line)
|
|
||||||
sys.stdout.flush()
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user