@@ -412,4 +412,54 @@ test_expect_success 'kvs: no pending requests at end of tests' '
412
412
test $pendingcount -eq 0
413
413
'
414
414
415
+ #
416
+ # test transaction-max-ops
417
+ #
418
+
419
+ test_expect_success ' configure illegal transaction-max-ops' '
420
+ test_must_fail flux config load <<-EOF
421
+ [kvs]
422
+ transaction-max-ops = "foobar"
423
+ EOF
424
+ '
425
+
426
+ test_expect_success ' configure bad transaction-max-ops' '
427
+ test_must_fail flux config load <<-EOF
428
+ [kvs]
429
+ transaction-max-ops = 0
430
+ EOF
431
+ '
432
+
433
+ test_expect_success ' configure small transaction-max-ops' '
434
+ flux exec flux config load <<-EOF
435
+ [kvs]
436
+ transaction-max-ops = 3
437
+ EOF
438
+ '
439
+
440
+ # N.B. flux kvs put will place each key=val on command line into 1
441
+ # transaction
442
+
443
+ test_expect_success ' kvs: txns of small size work' '
444
+ flux kvs put test.a=1 &&
445
+ flux kvs put test.b=1 test.c=1 &&
446
+ flux kvs put test.d=1 test.e=1 test.f=1
447
+ '
448
+
449
+ test_expect_success ' kvs: txns of small size work (not rank 0)' '
450
+ flux exec -r 1 flux kvs put test.a=1 &&
451
+ flux exec -r 1 flux kvs put test.b=1 test.c=1 &&
452
+ flux exec -r 1 flux kvs put test.d=1 test.e=1 test.f=1
453
+ '
454
+
455
+ test_expect_success ' kvs: txns above limit fail' '
456
+ test_must_fail flux kvs put test.a=2 test.b=2 test.c=2 test.d=2 2> fence1.err &&
457
+ grep "Argument list too long" fence1.err
458
+ '
459
+
460
+ test_expect_success ' kvs: txns above limit fail (not rank 0)' '
461
+ test_must_fail flux exec -r 1 flux kvs put test.a=3 test.b=3 test.c=3 test.d=3 2> fence2.err &&
462
+ grep "Argument list too long" fence2.err
463
+ '
464
+
415
465
test_done
0 commit comments