diff options
| author | Michael Albinus | 2025-07-24 18:48:52 +0200 |
|---|---|---|
| committer | Michael Albinus | 2025-07-24 18:48:52 +0200 |
| commit | fdb7397b01e2f471778f8437bfdc4f55c3d3ea97 (patch) | |
| tree | f9efdeb3258474a87caf413cd702a794f8f3a16f | |
| parent | ec96ea30ba8911c34a664d8d9989d9a64380e073 (diff) | |
| parent | 5cce567f20098fafa809fdefc468f493f95921fc (diff) | |
| download | emacs-fdb7397b01e2f471778f8437bfdc4f55c3d3ea97.tar.gz emacs-fdb7397b01e2f471778f8437bfdc4f55c3d3ea97.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
| -rw-r--r-- | test/lisp/net/network-stream-tests.el | 473 |
1 files changed, 134 insertions, 339 deletions
diff --git a/test/lisp/net/network-stream-tests.el b/test/lisp/net/network-stream-tests.el index 41ca0264907..8a4e53287bf 100644 --- a/test/lisp/net/network-stream-tests.el +++ b/test/lisp/net/network-stream-tests.el | |||
| @@ -275,394 +275,189 @@ | |||
| 275 | (throw 'server (cons proc port)))) | 275 | (throw 'server (cons proc port)))) |
| 276 | (delete-process proc))))) | 276 | (delete-process proc))))) |
| 277 | 277 | ||
| 278 | (ert-deftest connect-to-tls-ipv4-wait () | 278 | (defmacro with-tls-params (func &optional proc-parms proc-negotiate &rest server-parms) |
| 279 | (skip-unless (executable-find "gnutls-serv")) | 279 | "Call TLS FUNC with extra parameters PROC-PARMS. |
| 280 | (skip-unless (gnutls-available-p)) | 280 | Call PROC-NEGOTIATE once the connection is up. SERVER-PARMS are the |
| 281 | (let* ((s (make-tls-server)) | 281 | additional parameters to use to start the listening TLS server." |
| 282 | (server (car s)) | 282 | (let (parms) |
| 283 | (port (cdr s)) | 283 | (cond ((eq func 'make-network-process) |
| 284 | proc status) | 284 | (setq parms |
| 285 | (unwind-protect | 285 | '(:name "bar" |
| 286 | (progn | 286 | :buffer (generate-new-buffer "*foo*") |
| 287 | (setq proc (make-network-process | 287 | :service port))) |
| 288 | :name "bar" | 288 | ((eq func 'open-network-stream) |
| 289 | :buffer (generate-new-buffer "*foo*") | 289 | (setq parms |
| 290 | :host "localhost" | 290 | '("bar" |
| 291 | :service port)) | 291 | (generate-new-buffer "*foo*") |
| 292 | (should proc) | 292 | "localhost" |
| 293 | (gnutls-negotiate :process proc | 293 | port))) |
| 294 | :type 'gnutls-x509pki | 294 | ((eq func 'open-gnutls-stream) |
| 295 | :hostname "localhost")) | 295 | (setq parms |
| 296 | (if (process-live-p server) (delete-process server))) | 296 | '("bar" |
| 297 | (setq status (gnutls-peer-status proc)) | 297 | (generate-new-buffer "*foo*") |
| 298 | (should (consp status)) | 298 | "localhost" |
| 299 | (delete-process proc) | 299 | port)) |
| 300 | ;; open-gnutls-stream has a different calling convention from | ||
| 301 | ;; the other two, and we have to cater for the old api where | ||
| 302 | ;; nowait is not specified with a plist. | ||
| 303 | (when proc-parms | ||
| 304 | (setq proc-parms (list proc-parms))))) | ||
| 305 | `(let* ((s (make-tls-server ',server-parms)) | ||
| 306 | (server (car s)) | ||
| 307 | (port (cdr s)) | ||
| 308 | proc status) | ||
| 309 | (unwind-protect | ||
| 310 | (progn | ||
| 311 | (setq proc (apply #',func ,@parms (list ,@proc-parms))) | ||
| 312 | (should proc) | ||
| 313 | ,proc-negotiate | ||
| 314 | (skip-when (eq (process-status proc) 'connect))) | ||
| 315 | (if (process-live-p server) (delete-process server))) | ||
| 316 | (setq status (gnutls-peer-status proc)) | ||
| 317 | (should (consp status)) | ||
| 318 | (delete-process proc) | ||
| 300 | ;; This sleep-for is needed for the native MS-Windows build. If | 319 | ;; This sleep-for is needed for the native MS-Windows build. If |
| 301 | ;; it is removed, the next test mysteriously fails because the | 320 | ;; it is removed, the next test mysteriously fails because the |
| 302 | ;; initial part of the echo is not received. | 321 | ;; initial part of the echo is not received. |
| 303 | (sleep-for 0.1) | 322 | (sleep-for 0.1) |
| 304 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | 323 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) |
| 305 | (should (stringp issuer)) | 324 | (should (stringp issuer)) |
| 306 | (setq issuer (split-string issuer ",")) | 325 | (setq issuer (split-string issuer ",")) |
| 307 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | 326 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC")))))) |
| 327 | |||
| 328 | (ert-deftest connect-to-tls-ipv4-wait () | ||
| 329 | (skip-unless (executable-find "gnutls-serv")) | ||
| 330 | (skip-unless (gnutls-available-p)) | ||
| 331 | (with-tls-params | ||
| 332 | make-network-process | ||
| 333 | (:host "localhost") | ||
| 334 | (gnutls-negotiate :process proc | ||
| 335 | :type 'gnutls-x509pki | ||
| 336 | :hostname "localhost"))) | ||
| 308 | 337 | ||
| 309 | (ert-deftest connect-to-tls-ipv4-nowait () | 338 | (ert-deftest connect-to-tls-ipv4-nowait () |
| 310 | (skip-unless (executable-find "gnutls-serv")) | 339 | (skip-unless (executable-find "gnutls-serv")) |
| 311 | (skip-unless (gnutls-available-p)) | 340 | (skip-unless (gnutls-available-p)) |
| 312 | (let* ((s (make-tls-server)) | 341 | (let ((times 0) |
| 313 | (server (car s)) | 342 | (network-security-level 'low)) |
| 314 | (port (cdr s)) | 343 | (with-tls-params |
| 315 | (times 0) | 344 | make-network-process |
| 316 | (network-security-level 'low) | 345 | (:nowait t |
| 317 | proc status) | 346 | :family 'ipv4 |
| 318 | (unwind-protect | 347 | :tls-parameters |
| 319 | (progn | 348 | (cons 'gnutls-x509pki |
| 320 | (setq proc (make-network-process | 349 | (gnutls-boot-parameters |
| 321 | :name "bar" | 350 | :hostname "localhost")) |
| 322 | :buffer (generate-new-buffer "*foo*") | 351 | :host "localhost") |
| 323 | :nowait t | 352 | (while (and (eq (process-status proc) 'connect) |
| 324 | :family 'ipv4 | 353 | (< (setq times (1+ times)) 10)) |
| 325 | :tls-parameters | 354 | (sit-for 0.1))))) |
| 326 | (cons 'gnutls-x509pki | ||
| 327 | (gnutls-boot-parameters | ||
| 328 | :hostname "localhost")) | ||
| 329 | :host "localhost" | ||
| 330 | :service port)) | ||
| 331 | (while (and (eq (process-status proc) 'connect) | ||
| 332 | (< (setq times (1+ times)) 10)) | ||
| 333 | (sit-for 0.1)) | ||
| 334 | (skip-when (eq (process-status proc) 'connect))) | ||
| 335 | (if (process-live-p server) (delete-process server))) | ||
| 336 | (setq status (gnutls-peer-status proc)) | ||
| 337 | (should (consp status)) | ||
| 338 | (delete-process proc) | ||
| 339 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 340 | (should (stringp issuer)) | ||
| 341 | (setq issuer (split-string issuer ",")) | ||
| 342 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 343 | 355 | ||
| 344 | (ert-deftest connect-to-tls-ipv6-nowait () | 356 | (ert-deftest connect-to-tls-ipv6-nowait () |
| 345 | (skip-unless (executable-find "gnutls-serv")) | 357 | (skip-unless (executable-find "gnutls-serv")) |
| 346 | (skip-unless (gnutls-available-p)) | 358 | (skip-unless (gnutls-available-p)) |
| 347 | (skip-when (eq system-type 'windows-nt)) | 359 | (skip-when (eq system-type 'windows-nt)) |
| 348 | (skip-unless (featurep 'make-network-process '(:family ipv6))) | 360 | (skip-unless (featurep 'make-network-process '(:family ipv6))) |
| 349 | (let* ((s (make-tls-server)) | 361 | (let ((times 0) |
| 350 | (server (car s)) | 362 | (network-security-level 'low)) |
| 351 | (port (cdr s)) | 363 | (with-tls-params |
| 352 | (times 0) | 364 | make-network-process |
| 353 | (network-security-level 'low) | 365 | (:family 'ipv6 |
| 354 | proc status) | 366 | :nowait t |
| 355 | (unwind-protect | 367 | :tls-parameters |
| 356 | (progn | 368 | (cons 'gnutls-x509pki |
| 357 | (setq proc (make-network-process | 369 | (gnutls-boot-parameters |
| 358 | :name "bar" | 370 | :hostname "localhost")) |
| 359 | :buffer (generate-new-buffer "*foo*") | 371 | :host "::1") |
| 360 | :family 'ipv6 | 372 | (while (and (eq (process-status proc) 'connect) |
| 361 | :nowait t | 373 | (< (setq times (1+ times)) 10)) |
| 362 | :tls-parameters | 374 | (sit-for 0.1))))) |
| 363 | (cons 'gnutls-x509pki | ||
| 364 | (gnutls-boot-parameters | ||
| 365 | :hostname "localhost")) | ||
| 366 | :host "::1" | ||
| 367 | :service port)) | ||
| 368 | (should proc) | ||
| 369 | (while (and (eq (process-status proc) 'connect) | ||
| 370 | (< (setq times (1+ times)) 10)) | ||
| 371 | (sit-for 0.1)) | ||
| 372 | (skip-when (eq (process-status proc) 'connect))) | ||
| 373 | (if (process-live-p server) (delete-process server))) | ||
| 374 | (setq status (gnutls-peer-status proc)) | ||
| 375 | (should (consp status)) | ||
| 376 | (delete-process proc) | ||
| 377 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 378 | (should (stringp issuer)) | ||
| 379 | (setq issuer (split-string issuer ",")) | ||
| 380 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 381 | 375 | ||
| 382 | (ert-deftest open-network-stream-tls-wait () | 376 | (ert-deftest open-network-stream-tls-wait () |
| 383 | (skip-unless (executable-find "gnutls-serv")) | 377 | (skip-unless (executable-find "gnutls-serv")) |
| 384 | (skip-unless (gnutls-available-p)) | 378 | (skip-unless (gnutls-available-p)) |
| 385 | (let* ((s (make-tls-server)) | 379 | (let ((network-security-level 'low)) |
| 386 | (server (car s)) | 380 | (with-tls-params |
| 387 | (port (cdr s)) | 381 | open-network-stream |
| 388 | (network-security-level 'low) | 382 | (:type 'tls |
| 389 | proc status) | 383 | :nowait nil)))) |
| 390 | (unwind-protect | ||
| 391 | (progn | ||
| 392 | (setq proc (open-network-stream | ||
| 393 | "bar" | ||
| 394 | (generate-new-buffer "*foo*") | ||
| 395 | "localhost" | ||
| 396 | port | ||
| 397 | :type 'tls | ||
| 398 | :nowait nil)) | ||
| 399 | (should proc) | ||
| 400 | (skip-when (eq (process-status proc) 'connect))) | ||
| 401 | (if (process-live-p server) (delete-process server))) | ||
| 402 | (setq status (gnutls-peer-status proc)) | ||
| 403 | (should (consp status)) | ||
| 404 | (delete-process proc) | ||
| 405 | ;; This sleep-for is needed for the native MS-Windows build. If | ||
| 406 | ;; it is removed, the next test mysteriously fails because the | ||
| 407 | ;; initial part of the echo is not received. | ||
| 408 | (sleep-for 0.1) | ||
| 409 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 410 | (should (stringp issuer)) | ||
| 411 | (setq issuer (split-string issuer ",")) | ||
| 412 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 413 | 384 | ||
| 414 | (ert-deftest open-network-stream-tls-nowait () | 385 | (ert-deftest open-network-stream-tls-nowait () |
| 415 | (skip-unless (executable-find "gnutls-serv")) | 386 | (skip-unless (executable-find "gnutls-serv")) |
| 416 | (skip-unless (gnutls-available-p)) | 387 | (skip-unless (gnutls-available-p)) |
| 417 | (let* ((s (make-tls-server)) | 388 | (let ((network-security-level 'low) |
| 418 | (server (car s)) | 389 | (times 0)) |
| 419 | (port (cdr s)) | 390 | (with-tls-params |
| 420 | (times 0) | 391 | open-network-stream |
| 421 | (network-security-level 'low) | 392 | (:type 'tls |
| 422 | proc status) | 393 | :nowait t) |
| 423 | (unwind-protect | 394 | (progn (while (and (eq (process-status proc) 'connect) |
| 424 | (progn | 395 | (< (setq times (1+ times)) 10)) |
| 425 | (setq proc (open-network-stream | 396 | (sit-for 0.1)) |
| 426 | "bar" | 397 | (skip-when (eq (process-status proc) 'connect)))))) |
| 427 | (generate-new-buffer "*foo*") | ||
| 428 | "localhost" | ||
| 429 | port | ||
| 430 | :type 'tls | ||
| 431 | :nowait t)) | ||
| 432 | (should proc) | ||
| 433 | (while (and (eq (process-status proc) 'connect) | ||
| 434 | (< (setq times (1+ times)) 10)) | ||
| 435 | (sit-for 0.1)) | ||
| 436 | (skip-when (eq (process-status proc) 'connect))) | ||
| 437 | (if (process-live-p server) (delete-process server))) | ||
| 438 | (setq status (gnutls-peer-status proc)) | ||
| 439 | (should (consp status)) | ||
| 440 | (delete-process proc) | ||
| 441 | ;; This sleep-for is needed for the native MS-Windows build. If | ||
| 442 | ;; it is removed, the next test mysteriously fails because the | ||
| 443 | ;; initial part of the echo is not received. | ||
| 444 | (sleep-for 0.1) | ||
| 445 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 446 | (should (stringp issuer)) | ||
| 447 | (setq issuer (split-string issuer ",")) | ||
| 448 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 449 | 398 | ||
| 450 | (ert-deftest open-network-stream-tls () | 399 | (ert-deftest open-network-stream-tls () |
| 451 | (skip-unless (executable-find "gnutls-serv")) | 400 | (skip-unless (executable-find "gnutls-serv")) |
| 452 | (skip-unless (gnutls-available-p)) | 401 | (skip-unless (gnutls-available-p)) |
| 453 | (let* ((s (make-tls-server)) | 402 | (let ((network-security-level 'low)) |
| 454 | (server (car s)) | 403 | (with-tls-params |
| 455 | (port (cdr s)) | 404 | open-network-stream |
| 456 | (network-security-level 'low) | 405 | (:type 'tls)))) |
| 457 | proc status) | ||
| 458 | (unwind-protect | ||
| 459 | (progn | ||
| 460 | (setq proc (open-network-stream | ||
| 461 | "bar" | ||
| 462 | (generate-new-buffer "*foo*") | ||
| 463 | "localhost" | ||
| 464 | port | ||
| 465 | :type 'tls)) | ||
| 466 | (should proc) | ||
| 467 | (skip-when (eq (process-status proc) 'connect))) | ||
| 468 | (if (process-live-p server) (delete-process server))) | ||
| 469 | (setq status (gnutls-peer-status proc)) | ||
| 470 | (should (consp status)) | ||
| 471 | (delete-process proc) | ||
| 472 | ;; This sleep-for is needed for the native MS-Windows build. If | ||
| 473 | ;; it is removed, the next test mysteriously fails because the | ||
| 474 | ;; initial part of the echo is not received. | ||
| 475 | (sleep-for 0.1) | ||
| 476 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 477 | (should (stringp issuer)) | ||
| 478 | (setq issuer (split-string issuer ",")) | ||
| 479 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 480 | 406 | ||
| 481 | (ert-deftest open-network-stream-tls-nocert () | 407 | (ert-deftest open-network-stream-tls-nocert () |
| 482 | (skip-unless (executable-find "gnutls-serv")) | 408 | (skip-unless (executable-find "gnutls-serv")) |
| 483 | (skip-unless (gnutls-available-p)) | 409 | (skip-unless (gnutls-available-p)) |
| 484 | (let* ((s (make-tls-server)) | 410 | (let ((network-security-level 'low)) |
| 485 | (server (car s)) | 411 | (with-tls-params |
| 486 | (port (cdr s)) | 412 | open-network-stream |
| 487 | (network-security-level 'low) | 413 | (:type 'tls |
| 488 | proc status) | 414 | :client-certificate nil)))) |
| 489 | (unwind-protect | ||
| 490 | (progn | ||
| 491 | (setq proc (open-network-stream | ||
| 492 | "bar" | ||
| 493 | (generate-new-buffer "*foo*") | ||
| 494 | "localhost" | ||
| 495 | port | ||
| 496 | :type 'tls | ||
| 497 | :client-certificate nil)) | ||
| 498 | (should proc) | ||
| 499 | (skip-when (eq (process-status proc) 'connect))) | ||
| 500 | (if (process-live-p server) (delete-process server))) | ||
| 501 | (setq status (gnutls-peer-status proc)) | ||
| 502 | (should (consp status)) | ||
| 503 | (delete-process proc) | ||
| 504 | ;; This sleep-for is needed for the native MS-Windows build. If | ||
| 505 | ;; it is removed, the next test mysteriously fails because the | ||
| 506 | ;; initial part of the echo is not received. | ||
| 507 | (sleep-for 0.1) | ||
| 508 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 509 | (should (stringp issuer)) | ||
| 510 | (setq issuer (split-string issuer ",")) | ||
| 511 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 512 | 415 | ||
| 513 | (ert-deftest open-gnutls-stream-new-api-default () | 416 | (ert-deftest open-gnutls-stream-new-api-default () |
| 514 | (skip-unless (executable-find "gnutls-serv")) | 417 | (skip-unless (executable-find "gnutls-serv")) |
| 515 | (skip-unless (gnutls-available-p)) | 418 | (skip-unless (gnutls-available-p)) |
| 516 | (let* ((s (make-tls-server)) | 419 | (with-tls-params |
| 517 | (server (car s)) | 420 | open-gnutls-stream)) |
| 518 | (port (cdr s)) | ||
| 519 | proc status) | ||
| 520 | (unwind-protect | ||
| 521 | (progn | ||
| 522 | (setq proc (open-gnutls-stream | ||
| 523 | "bar" | ||
| 524 | (generate-new-buffer "*foo*") | ||
| 525 | "localhost" | ||
| 526 | port)) | ||
| 527 | (should proc) | ||
| 528 | (skip-when (eq (process-status proc) 'connect))) | ||
| 529 | (if (process-live-p server) (delete-process server))) | ||
| 530 | (setq status (gnutls-peer-status proc)) | ||
| 531 | (should (consp status)) | ||
| 532 | (delete-process proc) | ||
| 533 | ;; This sleep-for is needed for the native MS-Windows build. If | ||
| 534 | ;; it is removed, the next test mysteriously fails because the | ||
| 535 | ;; initial part of the echo is not received. | ||
| 536 | (sleep-for 0.1) | ||
| 537 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 538 | (should (stringp issuer)) | ||
| 539 | (setq issuer (split-string issuer ",")) | ||
| 540 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 541 | 421 | ||
| 542 | (ert-deftest open-gnutls-stream-new-api-wait () | 422 | (ert-deftest open-gnutls-stream-new-api-wait () |
| 543 | (skip-unless (executable-find "gnutls-serv")) | 423 | (skip-unless (executable-find "gnutls-serv")) |
| 544 | (skip-unless (gnutls-available-p)) | 424 | (skip-unless (gnutls-available-p)) |
| 545 | (let* ((s (make-tls-server)) | 425 | (with-tls-params |
| 546 | (server (car s)) | 426 | open-gnutls-stream |
| 547 | (port (cdr s)) | 427 | (list :nowait nil))) |
| 548 | proc status) | ||
| 549 | (unwind-protect | ||
| 550 | (progn | ||
| 551 | (setq proc (open-gnutls-stream | ||
| 552 | "bar" | ||
| 553 | (generate-new-buffer "*foo*") | ||
| 554 | "localhost" | ||
| 555 | port | ||
| 556 | (list :nowait nil))) | ||
| 557 | (should proc) | ||
| 558 | (skip-when (eq (process-status proc) 'connect))) | ||
| 559 | (if (process-live-p server) (delete-process server))) | ||
| 560 | (setq status (gnutls-peer-status proc)) | ||
| 561 | (should (consp status)) | ||
| 562 | (delete-process proc) | ||
| 563 | ;; This sleep-for is needed for the native MS-Windows build. If | ||
| 564 | ;; it is removed, the next test mysteriously fails because the | ||
| 565 | ;; initial part of the echo is not received. | ||
| 566 | (sleep-for 0.1) | ||
| 567 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 568 | (should (stringp issuer)) | ||
| 569 | (setq issuer (split-string issuer ",")) | ||
| 570 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 571 | 428 | ||
| 572 | (ert-deftest open-gnutls-stream-old-api-wait () | 429 | (ert-deftest open-gnutls-stream-old-api-wait () |
| 573 | (skip-unless (executable-find "gnutls-serv")) | 430 | (skip-unless (executable-find "gnutls-serv")) |
| 574 | (skip-unless (gnutls-available-p)) | 431 | (skip-unless (gnutls-available-p)) |
| 575 | (let* ((s (make-tls-server)) | 432 | (let ((nowait nil)) ; Workaround Bug#47080 |
| 576 | (server (car s)) | 433 | (with-tls-params |
| 577 | (port (cdr s)) | 434 | open-gnutls-stream |
| 578 | (nowait nil) ; Workaround Bug#47080 | 435 | nowait))) |
| 579 | proc status) | ||
| 580 | (unwind-protect | ||
| 581 | (progn | ||
| 582 | (setq proc (open-gnutls-stream | ||
| 583 | "bar" | ||
| 584 | (generate-new-buffer "*foo*") | ||
| 585 | "localhost" | ||
| 586 | port | ||
| 587 | nowait)) | ||
| 588 | (should proc) | ||
| 589 | (skip-when (eq (process-status proc) 'connect))) | ||
| 590 | (if (process-live-p server) (delete-process server))) | ||
| 591 | (setq status (gnutls-peer-status proc)) | ||
| 592 | (should (consp status)) | ||
| 593 | (delete-process proc) | ||
| 594 | ;; This sleep-for is needed for the native MS-Windows build. If | ||
| 595 | ;; it is removed, the next test mysteriously fails because the | ||
| 596 | ;; initial part of the echo is not received. | ||
| 597 | (sleep-for 0.1) | ||
| 598 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 599 | (should (stringp issuer)) | ||
| 600 | (setq issuer (split-string issuer ",")) | ||
| 601 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 602 | 436 | ||
| 603 | (ert-deftest open-gnutls-stream-new-api-nowait () | 437 | (ert-deftest open-gnutls-stream-new-api-nowait () |
| 604 | (skip-unless (executable-find "gnutls-serv")) | 438 | (skip-unless (executable-find "gnutls-serv")) |
| 605 | (skip-unless (gnutls-available-p)) | 439 | (skip-unless (gnutls-available-p)) |
| 606 | (let* ((s (make-tls-server)) | 440 | (let ((times 0) |
| 607 | (server (car s)) | 441 | (network-security-level 'low)) |
| 608 | (port (cdr s)) | 442 | (with-tls-params |
| 609 | (times 0) | 443 | open-gnutls-stream |
| 610 | (network-security-level 'low) | 444 | (list :nowait t) |
| 611 | proc status) | 445 | (while (and (eq (process-status proc) 'connect) |
| 612 | (unwind-protect | 446 | (< (setq times (1+ times)) 10)) |
| 613 | (progn | 447 | (sit-for 0.1))))) |
| 614 | (setq proc (open-gnutls-stream | ||
| 615 | "bar" | ||
| 616 | (generate-new-buffer "*foo*") | ||
| 617 | "localhost" | ||
| 618 | port | ||
| 619 | (list :nowait t))) | ||
| 620 | (should proc) | ||
| 621 | (while (and (eq (process-status proc) 'connect) | ||
| 622 | (< (setq times (1+ times)) 10)) | ||
| 623 | (sit-for 0.1)) | ||
| 624 | (skip-when (eq (process-status proc) 'connect))) | ||
| 625 | (if (process-live-p server) (delete-process server))) | ||
| 626 | (setq status (gnutls-peer-status proc)) | ||
| 627 | (should (consp status)) | ||
| 628 | (delete-process proc) | ||
| 629 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 630 | (should (stringp issuer)) | ||
| 631 | (setq issuer (split-string issuer ",")) | ||
| 632 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 633 | 448 | ||
| 634 | (ert-deftest open-gnutls-stream-old-api-nowait () | 449 | (ert-deftest open-gnutls-stream-old-api-nowait () |
| 635 | (skip-unless (executable-find "gnutls-serv")) | 450 | (skip-unless (executable-find "gnutls-serv")) |
| 636 | (skip-unless (gnutls-available-p)) | 451 | (skip-unless (gnutls-available-p)) |
| 637 | (let* ((s (make-tls-server)) | 452 | (let ((times 0) |
| 638 | (server (car s)) | 453 | (network-security-level 'low) |
| 639 | (port (cdr s)) | 454 | (nowait t)) |
| 640 | (times 0) | 455 | (with-tls-params |
| 641 | (network-security-level 'low) | 456 | open-gnutls-stream |
| 642 | (nowait t) | 457 | nowait |
| 643 | proc status) | 458 | (while (and (eq (process-status proc) 'connect) |
| 644 | (unwind-protect | 459 | (< (setq times (1+ times)) 10)) |
| 645 | (progn | 460 | (sit-for 0.1))))) |
| 646 | (setq proc (open-gnutls-stream | ||
| 647 | "bar" | ||
| 648 | (generate-new-buffer "*foo*") | ||
| 649 | "localhost" | ||
| 650 | port | ||
| 651 | nowait)) | ||
| 652 | (should proc) | ||
| 653 | (setq times 0) | ||
| 654 | (while (and (eq (process-status proc) 'connect) | ||
| 655 | (< (setq times (1+ times)) 10)) | ||
| 656 | (sit-for 0.1)) | ||
| 657 | (skip-when (eq (process-status proc) 'connect))) | ||
| 658 | (if (process-live-p server) (delete-process server))) | ||
| 659 | (setq status (gnutls-peer-status proc)) | ||
| 660 | (should (consp status)) | ||
| 661 | (delete-process proc) | ||
| 662 | (let ((issuer (plist-get (plist-get status :certificate) :issuer))) | ||
| 663 | (should (stringp issuer)) | ||
| 664 | (setq issuer (split-string issuer ",")) | ||
| 665 | (should (equal (nth 3 issuer) "O=Emacs Test Servicess LLC"))))) | ||
| 666 | 461 | ||
| 667 | (ert-deftest open-gnutls-stream-new-api-errors () | 462 | (ert-deftest open-gnutls-stream-new-api-errors () |
| 668 | (skip-unless (gnutls-available-p)) | 463 | (skip-unless (gnutls-available-p)) |