@@ -667,16 +667,27 @@ def test_strict_mode
667
667
assert_match ( /no such column: "?nope"?/ , error . message )
668
668
end
669
669
670
+ def test_load_extension_is_defined_on_expected_platforms
671
+ if ::RUBY_PLATFORM =~ /mingw|mswin/ &&
672
+ SQLite3 ::SQLITE_PACKAGED_LIBRARIES &&
673
+ !SQLite3 ::SQLITE_PRECOMPILED_LIBRARIES
674
+ skip ( "as of sqlite 3.48.0, the autoconf amalgamation does not reliably find dlopen" \
675
+ "on windows when building sqlite from source" )
676
+ end
677
+ assert_respond_to ( db , :load_extension )
678
+ assert_respond_to ( db , :enable_load_extension )
679
+ end
680
+
670
681
def test_load_extension_error_with_nonexistent_path
671
- skip ( "extensions are not enabled" ) unless db . respond_to? ( :load_extension )
682
+ skip ( "extensions are not enabled" ) unless db . respond_to? ( :enable_load_extension )
672
683
db . enable_load_extension ( true )
673
684
674
685
assert_raises ( SQLite3 ::Exception ) { db . load_extension ( "/nonexistent/path" ) }
675
686
assert_raises ( SQLite3 ::Exception ) { db . load_extension ( Pathname . new ( "nonexistent" ) ) }
676
687
end
677
688
678
689
def test_load_extension_error_with_invalid_argument
679
- skip ( "extensions are not enabled" ) unless db . respond_to? ( :load_extension )
690
+ skip ( "extensions are not enabled" ) unless db . respond_to? ( :enable_load_extension )
680
691
db . enable_load_extension ( true )
681
692
682
693
assert_raises ( TypeError ) { db . load_extension ( 1 ) }
@@ -686,6 +697,8 @@ def test_load_extension_error_with_invalid_argument
686
697
end
687
698
688
699
def test_load_extension_with_an_extension_descriptor
700
+ skip ( "extensions are not enabled" ) unless db . respond_to? ( :enable_load_extension )
701
+
689
702
mock_database_load_extension_internal ( db )
690
703
691
704
db . load_extension ( Pathname . new ( "/path/to/ext2" ) )
@@ -698,7 +711,10 @@ def test_load_extension_with_an_extension_descriptor
698
711
end
699
712
700
713
def test_initialize_extensions_with_extensions_calls_enable_load_extension
714
+ skip ( "extensions are not enabled" ) unless db . respond_to? ( :enable_load_extension )
715
+
701
716
mock_database_load_extension_internal ( db )
717
+
702
718
class << db
703
719
attr_accessor :enable_load_extension_called
704
720
attr_reader :enable_load_extension_arg
@@ -734,6 +750,8 @@ def enable_load_extension(val)
734
750
end
735
751
736
752
def test_initialize_extensions_object_is_an_extension_specifier
753
+ skip ( "extensions are not enabled" ) unless db . respond_to? ( :enable_load_extension )
754
+
737
755
mock_database_load_extension_internal ( db )
738
756
739
757
db . initialize_extensions ( [ Pathname . new ( "/path/to/extension" ) ] )
@@ -746,6 +764,8 @@ def test_initialize_extensions_object_is_an_extension_specifier
746
764
end
747
765
748
766
def test_initialize_extensions_object_not_an_extension_specifier
767
+ skip ( "extensions are not enabled" ) unless db . respond_to? ( :enable_load_extension )
768
+
749
769
mock_database_load_extension_internal ( db )
750
770
751
771
db . initialize_extensions ( [ "/path/to/extension" ] )
0 commit comments