21
21
MAKEFLAGS : ' -j4'
22
22
BUILD : ' check'
23
23
# ## secp256k1 config
24
- ECMULTWINDOW : ' auto '
25
- ECMULTGENPRECISION : ' auto '
24
+ ECMULTWINDOW : 15
25
+ ECMULTGENKB : 86
26
26
ASM : ' no'
27
27
WIDEMUL : ' auto'
28
28
WITH_VALGRIND : ' yes'
32
32
ECDH : ' no'
33
33
RECOVERY : ' no'
34
34
SCHNORRSIG : ' no'
35
+ MUSIG : ' no'
35
36
ELLSWIFT : ' no'
36
37
# ## test options
37
38
SECP256K1_TEST_ITERS :
@@ -71,20 +72,20 @@ jobs:
71
72
matrix :
72
73
configuration :
73
74
- env_vars : { WIDEMUL: 'int64', RECOVERY: 'yes' }
74
- - env_vars : { WIDEMUL: 'int64', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
75
+ - env_vars : { WIDEMUL: 'int64', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
75
76
- env_vars : { WIDEMUL: 'int128' }
76
- - env_vars : { WIDEMUL: 'int128_struct', ELLSWIFT: 'yes' }
77
- - env_vars : { WIDEMUL: 'int128', RECOVERY: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
78
- - env_vars : { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes' }
79
- - env_vars : { WIDEMUL: 'int128', ASM: 'x86_64', ELLSWIFT: 'yes' }
77
+ - env_vars : { WIDEMUL: 'int128_struct', ELLSWIFT: 'yes' }
78
+ - env_vars : { WIDEMUL: 'int128', RECOVERY: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
79
+ - env_vars : { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes' }
80
+ - env_vars : { WIDEMUL: 'int128', ASM: 'x86_64', ELLSWIFT: 'yes' }
80
81
- env_vars : { RECOVERY: 'yes', SCHNORRSIG: 'yes' }
81
82
- env_vars : { CTIMETESTS: 'no', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', CPPFLAGS: '-DVERIFY' }
82
83
- env_vars : { BUILD: 'distcheck', WITH_VALGRIND: 'no', CTIMETESTS: 'no', BENCH: 'no' }
83
84
- env_vars : { CPPFLAGS: '-DDETERMINISTIC' }
84
85
- env_vars : { CFLAGS: '-O0', CTIMETESTS: 'no' }
85
- - env_vars : { CFLAGS: '-O1', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
86
- - env_vars : { ECMULTGENPRECISION : 2, ECMULTWINDOW: 2 }
87
- - env_vars : { ECMULTGENPRECISION: 8 , ECMULTWINDOW: 4 }
86
+ - env_vars : { CFLAGS: '-O1', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
87
+ - env_vars : { ECMULTGENKB : 2, ECMULTWINDOW: 2 }
88
+ - env_vars : { ECMULTGENKB: 86 , ECMULTWINDOW: 4 }
88
89
cc :
89
90
- ' gcc'
90
91
- ' clang'
@@ -140,6 +141,7 @@ jobs:
140
141
ECDH : ' yes'
141
142
RECOVERY : ' yes'
142
143
SCHNORRSIG : ' yes'
144
+ MUSIG : ' yes'
143
145
ELLSWIFT : ' yes'
144
146
CC : ${{ matrix.cc }}
145
147
@@ -184,6 +186,7 @@ jobs:
184
186
ECDH : ' yes'
185
187
RECOVERY : ' yes'
186
188
SCHNORRSIG : ' yes'
189
+ MUSIG : ' yes'
187
190
ELLSWIFT : ' yes'
188
191
CTIMETESTS : ' no'
189
192
@@ -235,6 +238,7 @@ jobs:
235
238
ECDH : ' yes'
236
239
RECOVERY : ' yes'
237
240
SCHNORRSIG : ' yes'
241
+ MUSIG : ' yes'
238
242
ELLSWIFT : ' yes'
239
243
CTIMETESTS : ' no'
240
244
@@ -280,6 +284,7 @@ jobs:
280
284
ECDH : ' yes'
281
285
RECOVERY : ' yes'
282
286
SCHNORRSIG : ' yes'
287
+ MUSIG : ' yes'
283
288
ELLSWIFT : ' yes'
284
289
CTIMETESTS : ' no'
285
290
@@ -335,6 +340,7 @@ jobs:
335
340
ECDH : ' yes'
336
341
RECOVERY : ' yes'
337
342
SCHNORRSIG : ' yes'
343
+ MUSIG : ' yes'
338
344
ELLSWIFT : ' yes'
339
345
CTIMETESTS : ' no'
340
346
@@ -377,8 +383,8 @@ jobs:
377
383
configuration :
378
384
- env_vars : { CC: 'clang', ASM: 'auto' }
379
385
- env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
380
- - env_vars : { CC: 'clang', ASM: 'no', ECMULTGENPRECISION : 2, ECMULTWINDOW: 2 }
381
- - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENPRECISION : 2, ECMULTWINDOW: 2 }
386
+ - env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB : 2, ECMULTWINDOW: 2 }
387
+ - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB : 2, ECMULTWINDOW: 2 }
382
388
383
389
env :
384
390
# The `--error-exitcode` is required to make the test fail if valgrind found errors,
@@ -387,6 +393,7 @@ jobs:
387
393
ECDH : ' yes'
388
394
RECOVERY : ' yes'
389
395
SCHNORRSIG : ' yes'
396
+ MUSIG : ' yes'
390
397
ELLSWIFT : ' yes'
391
398
CTIMETESTS : ' no'
392
399
SECP256K1_TEST_ITERS : 2
@@ -431,13 +438,14 @@ jobs:
431
438
configuration :
432
439
- env_vars : { CC: 'clang', ASM: 'auto' }
433
440
- env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'auto' }
434
- - env_vars : { CC: 'clang', ASM: 'no', ECMULTGENPRECISION : 2, ECMULTWINDOW: 2 }
435
- - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENPRECISION : 2, ECMULTWINDOW: 2 }
441
+ - env_vars : { CC: 'clang', ASM: 'no', ECMULTGENKB : 2, ECMULTWINDOW: 2 }
442
+ - env_vars : { CC: 'i686-linux-gnu-gcc', HOST: 'i686-linux-gnu', ASM: 'no', ECMULTGENKB : 2, ECMULTWINDOW: 2 }
436
443
437
444
env :
438
445
ECDH : ' yes'
439
446
RECOVERY : ' yes'
440
447
SCHNORRSIG : ' yes'
448
+ MUSIG : ' yes'
441
449
ELLSWIFT : ' yes'
442
450
CTIMETESTS : ' no'
443
451
CFLAGS : ' -fsanitize=undefined,address -g'
@@ -485,18 +493,25 @@ jobs:
485
493
matrix :
486
494
configuration :
487
495
- env_vars :
496
+ CTIMETESTS : ' yes'
488
497
CFLAGS : ' -fsanitize=memory -fsanitize-recover=memory -g'
489
498
- env_vars :
490
- ECMULTGENPRECISION : 2
499
+ ECMULTGENKB : 2
491
500
ECMULTWINDOW : 2
501
+ CTIMETESTS : ' yes'
492
502
CFLAGS : ' -fsanitize=memory -fsanitize-recover=memory -g -O3'
503
+ - env_vars :
504
+ # -fsanitize-memory-param-retval is clang's default, but our build system disables it
505
+ # when ctime_tests when enabled.
506
+ CFLAGS : ' -fsanitize=memory -fsanitize-recover=memory -fsanitize-memory-param-retval -g'
507
+ CTIMETESTS : ' no'
493
508
494
509
env :
495
510
ECDH : ' yes'
496
511
RECOVERY : ' yes'
497
512
SCHNORRSIG : ' yes'
513
+ MUSIG : ' yes'
498
514
ELLSWIFT : ' yes'
499
- CTIMETESTS : ' yes'
500
515
CC : ' clang'
501
516
SECP256K1_TEST_ITERS : 32
502
517
ASM : ' no'
@@ -542,6 +557,7 @@ jobs:
542
557
ECDH : ' yes'
543
558
RECOVERY : ' yes'
544
559
SCHNORRSIG : ' yes'
560
+ MUSIG : ' yes'
545
561
ELLSWIFT : ' yes'
546
562
CTIMETESTS : ' no'
547
563
@@ -585,15 +601,76 @@ jobs:
585
601
run : env
586
602
if : ${{ always() }}
587
603
588
- macos-native :
589
- name : " x86_64: macOS Monterey"
604
+ x86_64-macos-native :
605
+ name : " x86_64: macOS Monterey, Valgrind"
606
+ # See: https://github.com/actions/runner-images#available-images.
607
+ runs-on : macos-12
608
+
609
+ env :
610
+ CC : ' clang'
611
+ HOMEBREW_NO_AUTO_UPDATE : 1
612
+ HOMEBREW_NO_INSTALL_CLEANUP : 1
613
+
614
+ strategy :
615
+ fail-fast : false
616
+ matrix :
617
+ env_vars :
618
+ - { WIDEMUL: 'int64', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
619
+ - { WIDEMUL: 'int128_struct', ECMULTGENKB: 2, ECMULTWINDOW: 4 }
620
+ - { WIDEMUL: 'int128', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
621
+ - { WIDEMUL: 'int128', RECOVERY: 'yes' }
622
+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes' }
623
+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
624
+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
625
+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
626
+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', MUSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' }
627
+ - BUILD : ' distcheck'
628
+
629
+ steps :
630
+ - name : Checkout
631
+ uses : actions/checkout@v4
632
+
633
+ - name : Install Homebrew packages
634
+ run : |
635
+ brew install automake libtool gcc
636
+ ln -s $(brew --prefix gcc)/bin/gcc-?? /usr/local/bin/gcc
637
+
638
+ - name : Install and cache Valgrind
639
+ uses : ./.github/actions/install-homebrew-valgrind
640
+
641
+ - name : CI script
642
+ env : ${{ matrix.env_vars }}
643
+ run : ./ci/ci.sh
644
+
645
+ - run : cat tests.log || true
646
+ if : ${{ always() }}
647
+ - run : cat noverify_tests.log || true
648
+ if : ${{ always() }}
649
+ - run : cat exhaustive_tests.log || true
650
+ if : ${{ always() }}
651
+ - run : cat ctime_tests.log || true
652
+ if : ${{ always() }}
653
+ - run : cat bench.log || true
654
+ if : ${{ always() }}
655
+ - run : cat config.log || true
656
+ if : ${{ always() }}
657
+ - run : cat test_env.log || true
658
+ if : ${{ always() }}
659
+ - name : CI env
660
+ run : env
661
+ if : ${{ always() }}
662
+
663
+ arm64-macos-native :
664
+ name : " ARM64: macOS Sonoma"
590
665
# See: https://github.com/actions/runner-images#available-images.
591
- runs-on : macos-12 # Use M1 once available https://github.com/github/roadmap/issues/528
666
+ runs-on : macos-14
592
667
593
668
env :
594
669
CC : ' clang'
595
670
HOMEBREW_NO_AUTO_UPDATE : 1
596
671
HOMEBREW_NO_INSTALL_CLEANUP : 1
672
+ WITH_VALGRIND : ' no'
673
+ CTIMETESTS : ' no'
597
674
598
675
strategy :
599
676
fail-fast : false
@@ -605,9 +682,7 @@ jobs:
605
682
- { WIDEMUL: 'int128', RECOVERY: 'yes' }
606
683
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes' }
607
684
- { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc' }
608
- - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
609
- - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CC: 'gcc', WRAPPER_CMD: 'valgrind --error-exitcode=42', SECP256K1_TEST_ITERS: 2 }
610
- - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY', CTIMETESTS: 'no' }
685
+ - { WIDEMUL: 'int128', RECOVERY: 'yes', ECDH: 'yes', SCHNORRSIG: 'yes', ELLSWIFT: 'yes', CPPFLAGS: '-DVERIFY' }
611
686
- BUILD : ' distcheck'
612
687
613
688
steps :
@@ -619,9 +694,6 @@ jobs:
619
694
brew install automake libtool gcc
620
695
ln -s $(brew --prefix gcc)/bin/gcc-?? /usr/local/bin/gcc
621
696
622
- - name : Install and cache Valgrind
623
- uses : ./.github/actions/install-homebrew-valgrind
624
-
625
697
- name : CI script
626
698
env : ${{ matrix.env_vars }}
627
699
run : ./ci/ci.sh
@@ -717,6 +789,7 @@ jobs:
717
789
ECDH : ' yes'
718
790
RECOVERY : ' yes'
719
791
SCHNORRSIG : ' yes'
792
+ MUSIG : ' yes'
720
793
ELLSWIFT : ' yes'
721
794
722
795
steps :
@@ -802,5 +875,5 @@ jobs:
802
875
CI_BUILD : ${{ runner.temp }}/${{ github.run_id }}${{ github.action }}/build
803
876
CI_INSTALL : ${{ runner.temp }}/${{ github.run_id }}${{ github.action }}/install
804
877
run : |
805
- cmake -B ${{ env.CI_BUILD }} -DCMAKE_INSTALL_PREFIX=${{ env.CI_INSTALL }} && cmake --build ${{ env.CI_BUILD }} --target install && ls -RlAh ${{ env.CI_INSTALL }}
878
+ cmake -B ${{ env.CI_BUILD }} -DCMAKE_INSTALL_PREFIX=${{ env.CI_INSTALL }} && cmake --build ${{ env.CI_BUILD }} && cmake -- install ${{ env.CI_BUILD }} && ls -RlAh ${{ env.CI_INSTALL }}
806
879
gcc -o ecdsa examples/ecdsa.c -I ${{ env.CI_INSTALL }}/include -L ${{ env.CI_INSTALL }}/lib*/ -l secp256k1 -Wl,-rpath,"${{ env.CI_INSTALL }}/lib",-rpath,"${{ env.CI_INSTALL }}/lib64" && ./ecdsa
0 commit comments