summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basic/qa/basic_coverage/test_cverr_method.vb20
-rw-r--r--basic/qa/basic_coverage/test_ismissing_basic.vb38
-rw-r--r--basic/qa/basic_coverage/test_ismissing_compatible.vb38
-rw-r--r--basic/qa/basic_coverage/test_optional_paramters_basic.vb36
-rw-r--r--basic/qa/basic_coverage/test_optional_paramters_compatible.vb38
-rw-r--r--basic/qa/vba_tests/cverr.vb11
-rw-r--r--basic/qa/vba_tests/ismissing.vb36
-rw-r--r--basic/qa/vba_tests/optional_paramters.vb36
-rw-r--r--basic/source/inc/runtime.hxx5
-rw-r--r--basic/source/runtime/runtime.cxx38
-rw-r--r--include/basic/sbxdef.hxx3
11 files changed, 146 insertions, 153 deletions
diff --git a/basic/qa/basic_coverage/test_cverr_method.vb b/basic/qa/basic_coverage/test_cverr_method.vb
index b1c3f8bec51c..f74445c20c6a 100644
--- a/basic/qa/basic_coverage/test_cverr_method.vb
+++ b/basic/qa/basic_coverage/test_cverr_method.vb
@@ -13,4 +13,24 @@ Function doUnitTest as Integer
Else
doUnitTest = 1
End If
+
+ ' tdf#79426 - passing an error object to a function
+ if ( TestCVErr( CVErr( 2 ) ) <> 2 ) Then
+ doUnitTest = 0
+ Else
+ doUnitTest = 1
+ End If
+
+ ' tdf#79426 - test with Error-Code 448 ( ERRCODE_BASIC_NAMED_NOT_FOUND )
+ if ( TestCVErr( CVErr( 448 ) ) <> 448 ) Then
+ doUnitTest = 0
+ Else
+ doUnitTest = 1
+ End If
End Function
+
+Function TestCVErr(vErr As Variant)
+ Dim nValue As Integer
+ nValue = vErr
+ TestCVErr = nValue
+End Function \ No newline at end of file
diff --git a/basic/qa/basic_coverage/test_ismissing_basic.vb b/basic/qa/basic_coverage/test_ismissing_basic.vb
index 8705220e26d4..b838ce718c36 100644
--- a/basic/qa/basic_coverage/test_ismissing_basic.vb
+++ b/basic/qa/basic_coverage/test_ismissing_basic.vb
@@ -25,63 +25,55 @@ Function verify_testIsMissingBasic() As String
failCount = 0
result = "Test Results" & Chr$(10) & "============" & Chr$(10)
- testName = "Test optionals (Basic)"
+ testName = "Test missing (Basic)"
On Error GoTo errorHandler
' optionals with variant datatypes
TestLog_ASSERT TestOptVariant(), IsMissingAB, "TestOptVariant()"
TestLog_ASSERT TestOptVariant(123), IsMissingB, "TestOptVariant(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariant(, 456), IsMissingA, "TestOptVariant(, 456)"
+ TestLog_ASSERT TestOptVariant(, 456), IsMissingA, "TestOptVariant(, 456)"
TestLog_ASSERT TestOptVariant(123, 456), IsMissingNone, "TestOptVariant(123, 456)"
' optionals with variant datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptVariantByRefByVal(), IsMissingAB, "TestOptVariantByRefByVal()"
TestLog_ASSERT TestOptVariantByRefByVal(123), IsMissingB, "TestOptVariantByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariantByRefByVal(, 456), IsMissingA, "TestOptVariantByRefByVal(, 456)"
+ TestLog_ASSERT TestOptVariantByRefByVal(, 456), IsMissingA, "TestOptVariantByRefByVal(, 456)"
TestLog_ASSERT TestOptVariantByRefByVal(123, 456), IsMissingNone, "TestOptVariantByRefByVal(123, 456)"
' optionals with double datatypes
TestLog_ASSERT TestOptDouble(), IsMissingAB, "TestOptDouble()"
TestLog_ASSERT TestOptDouble(123.4), IsMissingB, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDouble(, 567.8), IsMissingA, "TestOptDouble(, 567.8)"
+ TestLog_ASSERT TestOptDouble(, 567.8), IsMissingA, "TestOptDouble(, 567.8)"
TestLog_ASSERT TestOptDouble(123.4, 567.8), IsMissingNone, "TestOptDouble(123.4, 567.8)"
' optionals with double datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptDoubleByRefByVal(), IsMissingAB, "TestOptDouble()"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4), IsMissingB, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), IsMissingA, "TestOptDoubleByRefByVal(, 567.8)"
+ TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), IsMissingA, "TestOptDoubleByRefByVal(, 567.8)"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4, 567.8), IsMissingNone, "TestOptDoubleByRefByVal(123.4, 567.8)"
' optionals with integer datatypes
TestLog_ASSERT TestOptInteger(), IsMissingAB, "TestOptInteger()"
TestLog_ASSERT TestOptInteger(123), IsMissingB, "TestOptInteger(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptInteger(, 456), IsMissingA, "TestOptInteger(, 456)"
+ TestLog_ASSERT TestOptInteger(, 456), IsMissingA, "TestOptInteger(, 456)"
TestLog_ASSERT TestOptInteger(123, 456), IsMissingNone, "TestOptInteger(123, 456)"
' optionals with integer datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptIntegerByRefByVal(), IsMissingAB, "TestOptIntegerByRefByVal()"
TestLog_ASSERT TestOptIntegerByRefByVal(123), IsMissingB, "TestOptIntegerByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptIntegerByRefByVal(, 456), IsMissingA, "TestOptIntegerByRefByVal(, 456)"
+ TestLog_ASSERT TestOptIntegerByRefByVal(, 456), IsMissingA, "TestOptIntegerByRefByVal(, 456)"
TestLog_ASSERT TestOptIntegerByRefByVal(123, 456), IsMissingNone, "TestOptIntegerByRefByVal(123, 456)"
' optionals with string datatypes
TestLog_ASSERT TestOptString(), IsMissingAB, "TestOptString()"
TestLog_ASSERT TestOptString("123"), IsMissingB, "TestOptString(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptString(, "456"), IsMissingA, "TestOptString(, ""456"")"
+ TestLog_ASSERT TestOptString(, "456"), IsMissingA, "TestOptString(, ""456"")"
TestLog_ASSERT TestOptString("123", "456"), IsMissingNone, "TestOptString(""123"", ""456"")"
' optionals with string datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptStringByRefByVal(), IsMissingAB, "TestOptStringByRefByVal()"
TestLog_ASSERT TestOptStringByRefByVal("123"), IsMissingB, "TestOptStringByRefByVal(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptStringByRefByVal(, "456"), IsMissingA, "TestOptStringByRefByVal(, ""456"")"
+ TestLog_ASSERT TestOptStringByRefByVal(, "456"), IsMissingA, "TestOptStringByRefByVal(, ""456"")"
TestLog_ASSERT TestOptStringByRefByVal("123", "456"), IsMissingNone, "TestOptStringByRefByVal(""123"", ""456"")"
' optionals with object datatypes
@@ -93,15 +85,13 @@ Function verify_testIsMissingBasic() As String
cB.Add (567.8)
TestLog_ASSERT TestOptObject(), IsMissingAB, "TestOptObject()"
TestLog_ASSERT TestOptObject(cA), IsMissingB, "TestOptObject(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptObject(, cB), IsMissingA, "TestOptObject(, B)"
+ TestLog_ASSERT TestOptObject(, cB), IsMissingA, "TestOptObject(, B)"
TestLog_ASSERT TestOptObject(cA, cB), IsMissingNone, "TestOptObject(A, B)"
' optionals with object datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptObjectByRefByVal(), IsMissingAB, "TestOptObjectByRefByVal()"
TestLog_ASSERT TestOptObjectByRefByVal(cA), IsMissingB, "TestOptObjectByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptObjectByRefByVal(, cB), IsMissingA, "TestOptObjectByRefByVal(, B)"
+ TestLog_ASSERT TestOptObjectByRefByVal(, cB), IsMissingA, "TestOptObjectByRefByVal(, B)"
TestLog_ASSERT TestOptObjectByRefByVal(cA, cB), IsMissingNone, "TestOptObjectByRefByVal(A, B)"
' optionals with array datatypes
@@ -113,15 +103,13 @@ Function verify_testIsMissingBasic() As String
aB(1) = 567.8
TestLog_ASSERT TestOptArray(), IsMissingAB, "TestOptArray()"
TestLog_ASSERT TestOptArray(aA), IsMissingB, "TestOptArray(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT TestOptArray(, aB), IsMissingA, "TestOptArray(, B)"
+ TestLog_ASSERT TestOptArray(, aB), IsMissingA, "TestOptArray(, B)"
TestLog_ASSERT TestOptArray(aA, aB), IsMissingNone, "TestOptArray(A, B)"
' optionals with array datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptArrayByRefByVal(), IsMissingAB, "TestOptArrayByRefByVal()"
TestLog_ASSERT TestOptArrayByRefByVal(aA), IsMissingB, "TestOptArrayByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT TestOptArrayByRefByVal(, aB), IsMissingA, "TestOptArrayByRefByVal(, B)"
+ TestLog_ASSERT TestOptArrayByRefByVal(, aB), IsMissingA, "TestOptArrayByRefByVal(, B)"
TestLog_ASSERT TestOptArrayByRefByVal(aA, aB), IsMissingNone, "TestOptArrayByRefByVal(A, B)"
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
diff --git a/basic/qa/basic_coverage/test_ismissing_compatible.vb b/basic/qa/basic_coverage/test_ismissing_compatible.vb
index 13f076d5bc30..dbe2a815d25d 100644
--- a/basic/qa/basic_coverage/test_ismissing_compatible.vb
+++ b/basic/qa/basic_coverage/test_ismissing_compatible.vb
@@ -28,63 +28,55 @@ Function verify_testIsMissingCompatible() As String
failCount = 0
result = "Test Results" & Chr$(10) & "============" & Chr$(10)
- testName = "Test optionals (Basic)"
+ testName = "Test missing (Compatible)"
On Error GoTo errorHandler
' optionals with variant datatypes
TestLog_ASSERT TestOptVariant(), IsMissingA, "TestOptVariant()"
TestLog_ASSERT TestOptVariant(123), IsMissingNone, "TestOptVariant(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariant(, 456), IsMissingA, "TestOptVariant(, 456)"
+ TestLog_ASSERT TestOptVariant(, 456), IsMissingA, "TestOptVariant(, 456)"
TestLog_ASSERT TestOptVariant(123, 456), IsMissingNone, "TestOptVariant(123, 456)"
' optionals with variant datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptVariantByRefByVal(), IsMissingA, "TestOptVariantByRefByVal()"
TestLog_ASSERT TestOptVariantByRefByVal(123), IsMissingNone, "TestOptVariantByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariantByRefByVal(, 456), IsMissingA, "TestOptVariantByRefByVal(, 456)"
+ TestLog_ASSERT TestOptVariantByRefByVal(, 456), IsMissingA, "TestOptVariantByRefByVal(, 456)"
TestLog_ASSERT TestOptVariantByRefByVal(123, 456), IsMissingNone, "TestOptVariantByRefByVal(123, 456)"
' optionals with double datatypes
TestLog_ASSERT TestOptDouble(), IsMissingA, "TestOptDouble()"
TestLog_ASSERT TestOptDouble(123.4), IsMissingNone, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDouble(, 567.8), IsMissingA, "TestOptDouble(, 567.8)"
+ TestLog_ASSERT TestOptDouble(, 567.8), IsMissingA, "TestOptDouble(, 567.8)"
TestLog_ASSERT TestOptDouble(123.4, 567.8), IsMissingNone, "TestOptDouble(123.4, 567.8)"
' optionals with double datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptDoubleByRefByVal(), IsMissingA, "TestOptDouble()"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4), IsMissingNone, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), IsMissingA, "TestOptDoubleByRefByVal(, 567.8)"
+ TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), IsMissingA, "TestOptDoubleByRefByVal(, 567.8)"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4, 567.8), IsMissingNone, "TestOptDoubleByRefByVal(123.4, 567.8)"
' optionals with integer datatypes
TestLog_ASSERT TestOptInteger(), IsMissingA, "TestOptInteger()"
TestLog_ASSERT TestOptInteger(123), IsMissingNone, "TestOptInteger(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptInteger(, 456), IsMissingA, "TestOptInteger(, 456)"
+ TestLog_ASSERT TestOptInteger(, 456), IsMissingA, "TestOptInteger(, 456)"
TestLog_ASSERT TestOptInteger(123, 456), IsMissingNone, "TestOptInteger(123, 456)"
' optionals with integer datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptIntegerByRefByVal(), IsMissingA, "TestOptIntegerByRefByVal()"
TestLog_ASSERT TestOptIntegerByRefByVal(123), IsMissingNone, "TestOptIntegerByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptIntegerByRefByVal(, 456), IsMissingA, "TestOptIntegerByRefByVal(, 456)"
+ TestLog_ASSERT TestOptIntegerByRefByVal(, 456), IsMissingA, "TestOptIntegerByRefByVal(, 456)"
TestLog_ASSERT TestOptIntegerByRefByVal(123, 456), IsMissingNone, "TestOptIntegerByRefByVal(123, 456)"
' optionals with string datatypes
TestLog_ASSERT TestOptString(), IsMissingA, "TestOptString()"
TestLog_ASSERT TestOptString("123"), IsMissingNone, "TestOptString(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptString(, "456"), IsMissingA, "TestOptString(, ""456"")"
+ TestLog_ASSERT TestOptString(, "456"), IsMissingA, "TestOptString(, ""456"")"
TestLog_ASSERT TestOptString("123", "456"), IsMissingNone, "TestOptString(""123"", ""456"")"
' optionals with string datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptStringByRefByVal(), IsMissingA, "TestOptStringByRefByVal()"
TestLog_ASSERT TestOptStringByRefByVal("123"), IsMissingNone, "TestOptStringByRefByVal(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptStringByRefByVal(, "456"), IsMissingA, "TestOptStringByRefByVal(, ""456"")"
+ TestLog_ASSERT TestOptStringByRefByVal(, "456"), IsMissingA, "TestOptStringByRefByVal(, ""456"")"
TestLog_ASSERT TestOptStringByRefByVal("123", "456"), IsMissingNone, "TestOptStringByRefByVal(""123"", ""456"")"
' optionals with object datatypes
@@ -96,15 +88,13 @@ Function verify_testIsMissingCompatible() As String
cB.Add (567.8)
TestLog_ASSERT TestOptObject(), IsMissingAB, "TestOptObject()"
TestLog_ASSERT TestOptObject(cA), IsMissingB, "TestOptObject(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptObject(, cB), IsMissingA, "TestOptObject(, B)"
+ TestLog_ASSERT TestOptObject(, cB), IsMissingA, "TestOptObject(, B)"
TestLog_ASSERT TestOptObject(cA, cB), IsMissingNone, "TestOptObject(A, B)"
' optionals with object datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptObjectByRefByVal(), IsMissingAB, "TestOptObjectByRefByVal()"
TestLog_ASSERT TestOptObjectByRefByVal(cA), IsMissingB, "TestOptObjectByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptObjectByRefByVal(, cB), IsMissingA, "TestOptObjectByRefByVal(, B)"
+ TestLog_ASSERT TestOptObjectByRefByVal(, cB), IsMissingA, "TestOptObjectByRefByVal(, B)"
TestLog_ASSERT TestOptObjectByRefByVal(cA, cB), IsMissingNone, "TestOptObjectByRefByVal(A, B)"
' optionals with array datatypes
@@ -116,15 +106,13 @@ Function verify_testIsMissingCompatible() As String
aB(1) = 567.8
TestLog_ASSERT TestOptArray(), IsMissingAB, "TestOptArray()"
TestLog_ASSERT TestOptArray(aA), IsMissingB, "TestOptArray(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT TestOptArray(, aB), IsMissingA, "TestOptArray(, B)"
+ TestLog_ASSERT TestOptArray(, aB), IsMissingA, "TestOptArray(, B)"
TestLog_ASSERT TestOptArray(aA, aB), IsMissingNone, "TestOptArray(A, B)"
' optionals with array datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptArrayByRefByVal(), IsMissingAB, "TestOptArrayByRefByVal()"
TestLog_ASSERT TestOptArrayByRefByVal(aA), IsMissingB, "TestOptArrayByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT TestOptArrayByRefByVal(, aB), IsMissingA, "TestOptArrayByRefByVal(, B)"
+ TestLog_ASSERT TestOptArrayByRefByVal(, aB), IsMissingA, "TestOptArrayByRefByVal(, B)"
TestLog_ASSERT TestOptArrayByRefByVal(aA, aB), IsMissingNone, "TestOptArrayByRefByVal(A, B)"
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
diff --git a/basic/qa/basic_coverage/test_optional_paramters_basic.vb b/basic/qa/basic_coverage/test_optional_paramters_basic.vb
index d260246508de..39aeb62b27a4 100644
--- a/basic/qa/basic_coverage/test_optional_paramters_basic.vb
+++ b/basic/qa/basic_coverage/test_optional_paramters_basic.vb
@@ -27,57 +27,49 @@ Function verify_testOptionalsBasic() As String
' optionals with variant datatypes
TestLog_ASSERT TestOptVariant(), 0, "TestOptVariant()"
TestLog_ASSERT TestOptVariant(123), 123, "TestOptVariant(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariant(, 456), 456, "TestOptVariant(, 456)"
+ TestLog_ASSERT TestOptVariant(, 456), 456, "TestOptVariant(, 456)"
TestLog_ASSERT TestOptVariant(123, 456), 579, "TestOptVariant(123, 456)"
' optionals with variant datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptVariantByRefByVal(), 0, "TestOptVariantByRefByVal()"
TestLog_ASSERT TestOptVariantByRefByVal(123), 123, "TestOptVariantByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariantByRefByVal(, 456), 456, "TestOptVariantByRefByVal(, 456)"
+ TestLog_ASSERT TestOptVariantByRefByVal(, 456), 456, "TestOptVariantByRefByVal(, 456)"
TestLog_ASSERT TestOptVariantByRefByVal(123, 456), 579, "TestOptVariantByRefByVal(123, 456)"
' optionals with double datatypes
TestLog_ASSERT TestOptDouble(), 0, "TestOptDouble()"
TestLog_ASSERT TestOptDouble(123.4), 123.4, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDouble(, 567.8), 567.8, "TestOptDouble(, 567.8)"
+ TestLog_ASSERT TestOptDouble(, 567.8), 567.8, "TestOptDouble(, 567.8)"
TestLog_ASSERT Format(TestOptDouble(123.4, 567.8), "0.0"), 691.2, "TestOptDouble(123.4, 567.8)"
' optionals with double datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptDoubleByRefByVal(), 0, "TestOptDouble()"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4), 123.4, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), 567.8, "TestOptDoubleByRefByVal(, 567.8)"
+ TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), 567.8, "TestOptDoubleByRefByVal(, 567.8)"
TestLog_ASSERT Format(TestOptDoubleByRefByVal(123.4, 567.8), "0.0"), 691.2, "TestOptDoubleByRefByVal(123.4, 567.8)"
' optionals with integer datatypes
TestLog_ASSERT TestOptInteger(), 0, "TestOptInteger()"
TestLog_ASSERT TestOptInteger(123), 123, "TestOptInteger(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptInteger(, 456), 456, "TestOptInteger(, 456)"
+ TestLog_ASSERT TestOptInteger(, 456), 456, "TestOptInteger(, 456)"
TestLog_ASSERT TestOptInteger(123, 456), 579, "TestOptInteger(123, 456)"
' optionals with integer datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptIntegerByRefByVal(), 0, "TestOptIntegerByRefByVal()"
TestLog_ASSERT TestOptIntegerByRefByVal(123), 123, "TestOptIntegerByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptIntegerByRefByVal(, 456), 456, "TestOptIntegerByRefByVal(, 456)"
+ TestLog_ASSERT TestOptIntegerByRefByVal(, 456), 456, "TestOptIntegerByRefByVal(, 456)"
TestLog_ASSERT TestOptIntegerByRefByVal(123, 456), 579, "TestOptIntegerByRefByVal(123, 456)"
' optionals with string datatypes
TestLog_ASSERT TestOptString(), "", "TestOptString()"
TestLog_ASSERT TestOptString("123"), "123", "TestOptString(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptString(, "456"), "456", "TestOptString(, ""456"")"
+ TestLog_ASSERT TestOptString(, "456"), "456", "TestOptString(, ""456"")"
TestLog_ASSERT TestOptString("123", "456"), "123456", "TestOptString(""123"", ""456"")"
' optionals with string datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptStringByRefByVal(), "", "TestOptStringByRefByVal()"
TestLog_ASSERT TestOptStringByRefByVal("123"), "123", "TestOptStringByRefByVal(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptStringByRefByVal(, "456"), "456", "TestOptStringByRefByVal(, ""456"")"
+ TestLog_ASSERT TestOptStringByRefByVal(, "456"), "456", "TestOptStringByRefByVal(, ""456"")"
TestLog_ASSERT TestOptStringByRefByVal("123", "456"), "123456", "TestOptStringByRefByVal(""123"", ""456"")"
' optionals with object datatypes
@@ -89,15 +81,13 @@ Function verify_testOptionalsBasic() As String
cB.Add (567.8)
TestLog_ASSERT TestOptObject(), 0, "TestOptObject()"
TestLog_ASSERT TestOptObject(cA), 579, "TestOptObject(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT Format(TestOptObject(, cB), "0.0"), 691.2, "TestOptObject(, B)"
+ TestLog_ASSERT Format(TestOptObject(, cB), "0.0"), 691.2, "TestOptObject(, B)"
TestLog_ASSERT Format(TestOptObject(cA, cB), "0.0"), 1270.2, "TestOptObject(A, B)"
' optionals with object datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptObjectByRefByVal(), 0, "TestOptObjectByRefByVal()"
TestLog_ASSERT TestOptObjectByRefByVal(cA), 579, "TestOptObjectByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT Format(TestOptObjectByRefByVal(, cB), "0.0"), 691.2, "TestOptObjectByRefByVal(, B)"
+ TestLog_ASSERT Format(TestOptObjectByRefByVal(, cB), "0.0"), 691.2, "TestOptObjectByRefByVal(, B)"
TestLog_ASSERT Format(TestOptObjectByRefByVal(cA, cB), "0.0"), 1270.2, "TestOptObjectByRefByVal(A, B)"
' optionals with array datatypes
@@ -109,15 +99,13 @@ Function verify_testOptionalsBasic() As String
aB(1) = 567.8
TestLog_ASSERT TestOptArray(), 0, "TestOptArray()"
TestLog_ASSERT TestOptArray(aA), 579, "TestOptArray(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT Format(TestOptArray(, aB), "0.0"), 691.2, "TestOptArray(, B)"
+ TestLog_ASSERT Format(TestOptArray(, aB), "0.0"), 691.2, "TestOptArray(, B)"
TestLog_ASSERT Format(TestOptArray(aA, aB), "0.0"), 1270.2, "TestOptArray(A, B)"
' optionals with array datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptArrayByRefByVal(), 0, "TestOptArrayByRefByVal()"
TestLog_ASSERT TestOptArrayByRefByVal(aA), 579, "TestOptArrayByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT Format(TestOptArrayByRefByVal(, aB), "0.0"), 691.2, "TestOptArrayByRefByVal(, B)"
+ TestLog_ASSERT Format(TestOptArrayByRefByVal(, aB), "0.0"), 691.2, "TestOptArrayByRefByVal(, B)"
TestLog_ASSERT Format(TestOptArrayByRefByVal(aA, aB), "0.0"), 1270.2, "TestOptArrayByRefByVal(A, B)"
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
diff --git a/basic/qa/basic_coverage/test_optional_paramters_compatible.vb b/basic/qa/basic_coverage/test_optional_paramters_compatible.vb
index 5cbaeab258ad..15bfe77b827a 100644
--- a/basic/qa/basic_coverage/test_optional_paramters_compatible.vb
+++ b/basic/qa/basic_coverage/test_optional_paramters_compatible.vb
@@ -23,65 +23,57 @@ Function verify_testOptionalsCompatible() As String
failCount = 0
result = "Test Results" & Chr$(10) & "============" & Chr$(10)
- testName = "Test optionals (Basic)"
+ testName = "Test optionals (Compatible)"
On Error GoTo errorHandler
' optionals with variant datatypes
' TODO - New bug report? Scanner initializes variable as String. Function returns "123"
' TestLog_ASSERT TestOptVariant(), 123, "TestOptVariant()"
TestLog_ASSERT TestOptVariant(123), 246, "TestOptVariant(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariant(, 456), 456, "TestOptVariant(, 456)"
+ TestLog_ASSERT TestOptVariant(, 456), 456, "TestOptVariant(, 456)"
TestLog_ASSERT TestOptVariant(123, 456), 579, "TestOptVariant(123, 456)"
' optionals with variant datatypes (ByRef and ByVal)
' TODO - New bug report? Scanner initializes variable as String. Function returns "123"
' TestLog_ASSERT TestOptVariantByRefByVal(), 123, "TestOptVariantByRefByVal()"
TestLog_ASSERT TestOptVariantByRefByVal(123), 246, "TestOptVariantByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariantByRefByVal(, 456), 456, "TestOptVariantByRefByVal(, 456)"
+ TestLog_ASSERT TestOptVariantByRefByVal(, 456), 456, "TestOptVariantByRefByVal(, 456)"
TestLog_ASSERT TestOptVariantByRefByVal(123, 456), 579, "TestOptVariantByRefByVal(123, 456)"
' optionals with double datatypes
TestLog_ASSERT TestOptDouble(), 123.4, "TestOptDouble()"
TestLog_ASSERT TestOptDouble(123.4), 246.8, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDouble(, 567.8), 567.8, "TestOptDouble(, 567.8)"
+ TestLog_ASSERT TestOptDouble(, 567.8), 567.8, "TestOptDouble(, 567.8)"
TestLog_ASSERT Format(TestOptDouble(123.4, 567.8), "0.0"), 691.2, "TestOptDouble(123.4, 567.8)"
' optionals with double datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptDoubleByRefByVal(), 123.4, "TestOptDouble()"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4), 246.8, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), 567.8, "TestOptDoubleByRefByVal(, 567.8)"
+ TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), 567.8, "TestOptDoubleByRefByVal(, 567.8)"
TestLog_ASSERT Format(TestOptDoubleByRefByVal(123.4, 567.8), "0.0"), 691.2, "TestOptDoubleByRefByVal(123.4, 567.8)"
' optionals with integer datatypes
TestLog_ASSERT TestOptInteger(), 123, "TestOptInteger()"
TestLog_ASSERT TestOptInteger(123), 246, "TestOptInteger(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptInteger(, 456), 456, "TestOptInteger(, 456)"
+ TestLog_ASSERT TestOptInteger(, 456), 456, "TestOptInteger(, 456)"
TestLog_ASSERT TestOptInteger(123, 456), 579, "TestOptInteger(123, 456)"
' optionals with integer datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptIntegerByRefByVal(), 123, "TestOptIntegerByRefByVal()"
TestLog_ASSERT TestOptIntegerByRefByVal(123), 246, "TestOptIntegerByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptIntegerByRefByVal(, 456), 456, "TestOptIntegerByRefByVal(, 456)"
+ TestLog_ASSERT TestOptIntegerByRefByVal(, 456), 456, "TestOptIntegerByRefByVal(, 456)"
TestLog_ASSERT TestOptIntegerByRefByVal(123, 456), 579, "TestOptIntegerByRefByVal(123, 456)"
' optionals with string datatypes
TestLog_ASSERT TestOptString(), "123", "TestOptString()"
TestLog_ASSERT TestOptString("123"), "123123", "TestOptString(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptString(, "456"), "456", "TestOptString(, ""456"")"
+ TestLog_ASSERT TestOptString(, "456"), "456", "TestOptString(, ""456"")"
TestLog_ASSERT TestOptString("123", "456"), "123456", "TestOptString(""123"", ""456"")"
' optionals with string datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptStringByRefByVal(), "123", "TestOptStringByRefByVal()"
TestLog_ASSERT TestOptStringByRefByVal("123"), "123123", "TestOptStringByRefByVal(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptStringByRefByVal(, "456"), "456", "TestOptStringByRefByVal(, ""456"")"
+ TestLog_ASSERT TestOptStringByRefByVal(, "456"), "456", "TestOptStringByRefByVal(, ""456"")"
TestLog_ASSERT TestOptStringByRefByVal("123", "456"), "123456", "TestOptStringByRefByVal(""123"", ""456"")"
' optionals with object datatypes
@@ -93,15 +85,13 @@ Function verify_testOptionalsCompatible() As String
cB.Add (567.8)
TestLog_ASSERT TestOptObject(), 0, "TestOptObject()"
TestLog_ASSERT TestOptObject(cA), 579, "TestOptObject(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT Format(TestOptObject(, cB), "0.0"), 691.2, "TestOptObject(, B)"
+ TestLog_ASSERT Format(TestOptObject(, cB), "0.0"), 691.2, "TestOptObject(, B)"
TestLog_ASSERT Format(TestOptObject(cA, cB), "0.0"), 1270.2, "TestOptObject(A, B)"
' optionals with object datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptObjectByRefByVal(), 0, "TestOptObjectByRefByVal()"
TestLog_ASSERT TestOptObjectByRefByVal(cA), 579, "TestOptObjectByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT Format(TestOptObjectByRefByVal(, cB), "0.0"), 691.2, "TestOptObjectByRefByVal(, B)"
+ TestLog_ASSERT Format(TestOptObjectByRefByVal(, cB), "0.0"), 691.2, "TestOptObjectByRefByVal(, B)"
TestLog_ASSERT Format(TestOptObjectByRefByVal(cA, cB), "0.0"), 1270.2, "TestOptObjectByRefByVal(A, B)"
' optionals with array datatypes
@@ -113,15 +103,13 @@ Function verify_testOptionalsCompatible() As String
aB(1) = 567.8
TestLog_ASSERT TestOptArray(), 0, "TestOptArray()"
TestLog_ASSERT TestOptArray(aA), 579, "TestOptArray(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT Format(TestOptArray(, aB), "0.0"), 691.2, "TestOptArray(, B)"
+ TestLog_ASSERT Format(TestOptArray(, aB), "0.0"), 691.2, "TestOptArray(, B)"
TestLog_ASSERT Format(TestOptArray(aA, aB), "0.0"), 1270.2, "TestOptArray(A, B)"
' optionals with array datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptArrayByRefByVal(), 0, "TestOptArrayByRefByVal()"
TestLog_ASSERT TestOptArrayByRefByVal(aA), 579, "TestOptArrayByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- 'TestLog_ASSERT Format(TestOptArrayByRefByVal(, aB), "0.0"), 691.2, "TestOptArrayByRefByVal(, B)"
+ TestLog_ASSERT Format(TestOptArrayByRefByVal(, aB), "0.0"), 691.2, "TestOptArrayByRefByVal(, B)"
TestLog_ASSERT Format(TestOptArrayByRefByVal(aA, aB), "0.0"), 1270.2, "TestOptArrayByRefByVal(A, B)"
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
diff --git a/basic/qa/vba_tests/cverr.vb b/basic/qa/vba_tests/cverr.vb
index 11707ba2517c..4aa646ae87a8 100644
--- a/basic/qa/vba_tests/cverr.vb
+++ b/basic/qa/vba_tests/cverr.vb
@@ -59,6 +59,11 @@ Function verify_testCVErr() As String
date1 = CStr(CVErr(xlErrValue))
TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1
+ ' tdf#79426 - passing an error object to a function
+ TestLog_ASSERT TestCVErr( CVErr( 2 ) ) = 2
+ ' tdf#79426 - test with Error-Code 448 ( ERRCODE_BASIC_NAMED_NOT_FOUND )
+ TestLog_ASSERT TestCVErr( CVErr( 448 ) ) = 448
+
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
verify_testCVErr = result
@@ -67,6 +72,12 @@ errorHandler:
TestLog_ASSERT (False), testName & ": hit error handler"
End Function
+Function TestCVErr(vErr As Variant)
+ Dim nValue As Integer
+ nValue = vErr
+ TestCVErr = nValue
+End Function
+
Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String)
If assertion = True Then
diff --git a/basic/qa/vba_tests/ismissing.vb b/basic/qa/vba_tests/ismissing.vb
index 1adc73441c22..623c153d4d72 100644
--- a/basic/qa/vba_tests/ismissing.vb
+++ b/basic/qa/vba_tests/ismissing.vb
@@ -29,63 +29,55 @@ Function verify_testIsMissingVba() As String
failCount = 0
result = "Test Results" & Chr$(10) & "============" & Chr$(10)
- testName = "Test optionals (Basic)"
+ testName = "Test missing (VBA)"
On Error GoTo errorHandler
' optionals with variant datatypes
TestLog_ASSERT TestOptVariant(), IsMissingA, "TestOptVariant()"
TestLog_ASSERT TestOptVariant(123), IsMissingNone, "TestOptVariant(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariant(, 456), IsMissingNone, "TestOptVariant(, 456)"
+ TestLog_ASSERT TestOptVariant(, 456), IsMissingA, "TestOptVariant(, 456)"
TestLog_ASSERT TestOptVariant(123, 456), IsMissingNone, "TestOptVariant(123, 456)"
' optionals with variant datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptVariantByRefByVal(), IsMissingA, "TestOptVariantByRefByVal()"
TestLog_ASSERT TestOptVariantByRefByVal(123),IsMissingNone, "TestOptVariantByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariantByRefByVal(, 456), IsMissingNone, "TestOptVariantByRefByVal(, 456)"
+ TestLog_ASSERT TestOptVariantByRefByVal(, 456), IsMissingA, "TestOptVariantByRefByVal(, 456)"
TestLog_ASSERT TestOptVariantByRefByVal(123, 456), IsMissingNone, "TestOptVariantByRefByVal(123, 456)"
' optionals with double datatypes
TestLog_ASSERT TestOptDouble(), IsMissingNone, "TestOptDouble()"
TestLog_ASSERT TestOptDouble(123.4), IsMissingNone, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDouble(, 567.8), IsMissingNone, "TestOptDouble(, 567.8)"
+ TestLog_ASSERT TestOptDouble(, 567.8), IsMissingNone, "TestOptDouble(, 567.8)"
TestLog_ASSERT TestOptDouble(123.4, 567.8), IsMissingNone, "TestOptDouble(123.4, 567.8)"
' optionals with double datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptDoubleByRefByVal(), IsMissingNone, "TestOptDouble()"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4), IsMissingNone, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), IsMissingNone, "TestOptDoubleByRefByVal(, 567.8)"
+ TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), IsMissingNone, "TestOptDoubleByRefByVal(, 567.8)"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4, 567.8), IsMissingNone, "TestOptDoubleByRefByVal(123.4, 567.8)"
' optionals with integer datatypes
TestLog_ASSERT TestOptInteger(), IsMissingNone, "TestOptInteger()"
TestLog_ASSERT TestOptInteger(123), IsMissingNone, "TestOptInteger(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptInteger(, 456), IsMissingNone, "TestOptInteger(, 456)"
+ TestLog_ASSERT TestOptInteger(, 456), IsMissingNone, "TestOptInteger(, 456)"
TestLog_ASSERT TestOptInteger(123, 456), IsMissingNone, "TestOptInteger(123, 456)"
' optionals with integer datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptIntegerByRefByVal(), IsMissingNone, "TestOptIntegerByRefByVal()"
TestLog_ASSERT TestOptIntegerByRefByVal(123), IsMissingNone, "TestOptIntegerByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptIntegerByRefByVal(, 456), IsMissingNone, "TestOptIntegerByRefByVal(, 456)"
+ TestLog_ASSERT TestOptIntegerByRefByVal(, 456), IsMissingNone, "TestOptIntegerByRefByVal(, 456)"
TestLog_ASSERT TestOptIntegerByRefByVal(123, 456), IsMissingNone, "TestOptIntegerByRefByVal(123, 456)"
' optionals with string datatypes
TestLog_ASSERT TestOptString(), IsMissingNone, "TestOptString()"
TestLog_ASSERT TestOptString("123"), IsMissingNone, "TestOptString(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptString(, "456"), IsMissingNone, "TestOptString(, ""456"")"
+ TestLog_ASSERT TestOptString(, "456"), IsMissingNone, "TestOptString(, ""456"")"
TestLog_ASSERT TestOptString("123", "456"), IsMissingNone, "TestOptString(""123"", ""456"")"
' optionals with string datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptStringByRefByVal(), IsMissingNone, "TestOptStringByRefByVal()"
TestLog_ASSERT TestOptStringByRefByVal("123"), IsMissingNone, "TestOptStringByRefByVal(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptStringByRefByVal(, "456"), IsMissingNone, "TestOptStringByRefByVal(, ""456"")"
+ TestLog_ASSERT TestOptStringByRefByVal(, "456"), IsMissingNone, "TestOptStringByRefByVal(, ""456"")"
TestLog_ASSERT TestOptStringByRefByVal("123", "456"), IsMissingNone, "TestOptStringByRefByVal(""123"", ""456"")"
' optionals with object datatypes
@@ -97,15 +89,13 @@ Function verify_testIsMissingVba() As String
cB.Add (567.8)
TestLog_ASSERT TestOptObject(), IsMissingAB, "TestOptObject()"
TestLog_ASSERT TestOptObject(cA), IsMissingB, "TestOptObject(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptObject(, cB), IsMissingA, "TestOptObject(, B)"
+ TestLog_ASSERT TestOptObject(, cB), IsMissingA, "TestOptObject(, B)"
TestLog_ASSERT TestOptObject(cA, cB), IsMissingNone, "TestOptObject(A, B)"
' optionals with object datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptObjectByRefByVal(), IsMissingAB, "TestOptObjectByRefByVal()"
TestLog_ASSERT TestOptObjectByRefByVal(cA), IsMissingB, "TestOptObjectByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptObjectByRefByVal(, cB), IsMissingA, "TestOptObjectByRefByVal(, B)"
+ TestLog_ASSERT TestOptObjectByRefByVal(, cB), IsMissingA, "TestOptObjectByRefByVal(, B)"
TestLog_ASSERT TestOptObjectByRefByVal(cA, cB), IsMissingNone, "TestOptObjectByRefByVal(A, B)"
' optionals with array datatypes
@@ -118,8 +108,6 @@ Function verify_testIsMissingVba() As String
' TODO - New bug report? Scanner initializes variable not as an array
' TestLog_ASSERT TestOptArray(), IsMissingAB, "TestOptArray()"
' TestLog_ASSERT TestOptArray(aA), IsMissingB, "TestOptArray(A)"
-
- ' TODO - tdf#125180 for more details
' TestLog_ASSERT TestOptArray(, aB), IsMissingA, "TestOptArray(, B)"
TestLog_ASSERT TestOptArray(aA, aB), IsMissingNone, "TestOptArray(A, B)"
@@ -127,8 +115,6 @@ Function verify_testIsMissingVba() As String
' TODO - New bug report? Scanner initializes variable not as an array
' TestLog_ASSERT TestOptArrayByRefByVal(), IsMissingAB, "TestOptArrayByRefByVal()"
' TestLog_ASSERT TestOptArrayByRefByVal(aA), IsMissingB, "TestOptArrayByRefByVal(A)"
-
- ' TODO - tdf#125180 for more details
' TestLog_ASSERT TestOptArrayByRefByVal(, aB), IsMissingA, "TestOptArrayByRefByVal(, B)"
TestLog_ASSERT TestOptArrayByRefByVal(aA, aB), IsMissingNone, "TestOptArrayByRefByVal(A, B)"
diff --git a/basic/qa/vba_tests/optional_paramters.vb b/basic/qa/vba_tests/optional_paramters.vb
index eff8275d0e63..a8716c16c95e 100644
--- a/basic/qa/vba_tests/optional_paramters.vb
+++ b/basic/qa/vba_tests/optional_paramters.vb
@@ -24,65 +24,57 @@ Function verify_testOptionalsVba() As String
failCount = 0
result = "Test Results" & Chr$(10) & "============" & Chr$(10)
- testName = "Test optionals (Basic)"
+ testName = "Test optionals (VBA)"
On Error GoTo errorHandler
' optionals with variant datatypes
' TODO - New bug report? Scanner initializes variable as String. Function returns "123"
' TestLog_ASSERT TestOptVariant(), 123, "TestOptVariant()"
TestLog_ASSERT TestOptVariant(123), 246, "TestOptVariant(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariant(, 456), 456, "TestOptVariant(, 456)"
+ TestLog_ASSERT TestOptVariant(, 456), 456, "TestOptVariant(, 456)"
TestLog_ASSERT TestOptVariant(123, 456), 579, "TestOptVariant(123, 456)"
' optionals with variant datatypes (ByRef and ByVal)
' TODO - New bug report? Scanner initializes variable as String. Function returns "123"
' TestLog_ASSERT TestOptVariantByRefByVal(), 123, "TestOptVariantByRefByVal()"
TestLog_ASSERT TestOptVariantByRefByVal(123), 246, "TestOptVariantByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptVariantByRefByVal(, 456), 456, "TestOptVariantByRefByVal(, 456)"
+ TestLog_ASSERT TestOptVariantByRefByVal(, 456), 456, "TestOptVariantByRefByVal(, 456)"
TestLog_ASSERT TestOptVariantByRefByVal(123, 456), 579, "TestOptVariantByRefByVal(123, 456)"
' optionals with double datatypes
TestLog_ASSERT TestOptDouble(), 123.4, "TestOptDouble()"
TestLog_ASSERT TestOptDouble(123.4), 246.8, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDouble(, 567.8), 567.8, "TestOptDouble(, 567.8)"
+ TestLog_ASSERT TestOptDouble(, 567.8), 567.8, "TestOptDouble(, 567.8)"
TestLog_ASSERT Format(TestOptDouble(123.4, 567.8), "0.0"), 691.2, "TestOptDouble(123.4, 567.8)"
' optionals with double datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptDoubleByRefByVal(), 123.4, "TestOptDouble()"
TestLog_ASSERT TestOptDoubleByRefByVal(123.4), 246.8, "TestOptDouble(123.4)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), 567.8, "TestOptDoubleByRefByVal(, 567.8)"
+ TestLog_ASSERT TestOptDoubleByRefByVal(, 567.8), 567.8, "TestOptDoubleByRefByVal(, 567.8)"
TestLog_ASSERT Format(TestOptDoubleByRefByVal(123.4, 567.8), "0.0"), 691.2, "TestOptDoubleByRefByVal(123.4, 567.8)"
' optionals with integer datatypes
TestLog_ASSERT TestOptInteger(), 123, "TestOptInteger()"
TestLog_ASSERT TestOptInteger(123), 246, "TestOptInteger(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptInteger(, 456), 456, "TestOptInteger(, 456)"
+ TestLog_ASSERT TestOptInteger(, 456), 456, "TestOptInteger(, 456)"
TestLog_ASSERT TestOptInteger(123, 456), 579, "TestOptInteger(123, 456)"
' optionals with integer datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptIntegerByRefByVal(), 123, "TestOptIntegerByRefByVal()"
TestLog_ASSERT TestOptIntegerByRefByVal(123), 246, "TestOptIntegerByRefByVal(123)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptIntegerByRefByVal(, 456), 456, "TestOptIntegerByRefByVal(, 456)"
+ TestLog_ASSERT TestOptIntegerByRefByVal(, 456), 456, "TestOptIntegerByRefByVal(, 456)"
TestLog_ASSERT TestOptIntegerByRefByVal(123, 456), 579, "TestOptIntegerByRefByVal(123, 456)"
' optionals with string datatypes
TestLog_ASSERT TestOptString(), "123", "TestOptString()"
TestLog_ASSERT TestOptString("123"), "123123", "TestOptString(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptString(, "456"), "456", "TestOptString(, ""456"")"
+ TestLog_ASSERT TestOptString(, "456"), "456", "TestOptString(, ""456"")"
TestLog_ASSERT TestOptString("123", "456"), "123456", "TestOptString(""123"", ""456"")"
' optionals with string datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptStringByRefByVal(), "123", "TestOptStringByRefByVal()"
TestLog_ASSERT TestOptStringByRefByVal("123"), "123123", "TestOptStringByRefByVal(""123"")"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT TestOptStringByRefByVal(, "456"), "456", "TestOptStringByRefByVal(, ""456"")"
+ TestLog_ASSERT TestOptStringByRefByVal(, "456"), "456", "TestOptStringByRefByVal(, ""456"")"
TestLog_ASSERT TestOptStringByRefByVal("123", "456"), "123456", "TestOptStringByRefByVal(""123"", ""456"")"
' optionals with object datatypes
@@ -94,15 +86,13 @@ Function verify_testOptionalsVba() As String
cB.Add (567.8)
TestLog_ASSERT TestOptObject(), 0, "TestOptObject()"
TestLog_ASSERT TestOptObject(cA), 579, "TestOptObject(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT Format(TestOptObject(, cB), "0.0"), 691.2, "TestOptObject(, B)"
+ TestLog_ASSERT Format(TestOptObject(, cB), "0.0"), 691.2, "TestOptObject(, B)"
TestLog_ASSERT Format(TestOptObject(cA, cB), "0.0"), 1270.2, "TestOptObject(A, B)"
' optionals with object datatypes (ByRef and ByVal)
TestLog_ASSERT TestOptObjectByRefByVal(), 0, "TestOptObjectByRefByVal()"
TestLog_ASSERT TestOptObjectByRefByVal(cA), 579, "TestOptObjectByRefByVal(A)"
- ' TODO - tdf#125180 for more details
- ' TestLog_ASSERT Format(TestOptObjectByRefByVal(, cB), "0.0"), 691.2, "TestOptObjectByRefByVal(, B)"
+ TestLog_ASSERT Format(TestOptObjectByRefByVal(, cB), "0.0"), 691.2, "TestOptObjectByRefByVal(, B)"
TestLog_ASSERT Format(TestOptObjectByRefByVal(cA, cB), "0.0"), 1270.2, "TestOptObjectByRefByVal(A, B)"
' optionals with array datatypes
@@ -115,8 +105,6 @@ Function verify_testOptionalsVba() As String
' TODO - New bug report? Scanner initializes variable not as an array
' TestLog_ASSERT TestOptArray(), 0, "TestOptArray()"
' TestLog_ASSERT TestOptArray(aA), 579, "TestOptArray(A)"
-
- ' TODO - tdf#125180 for more details
' TestLog_ASSERT Format(TestOptArray(, aB), "0.0"), 691.2, "TestOptArray(, B)"
TestLog_ASSERT Format(TestOptArray(aA, aB), "0.0"), 1270.2, "TestOptArray(A, B)"
@@ -124,8 +112,6 @@ Function verify_testOptionalsVba() As String
' TODO - New bug report? Scanner initializes variable not as an array
' TestLog_ASSERT TestOptArrayByRefByVal(), 0, "TestOptArrayByRefByVal()"
' TestLog_ASSERT TestOptArrayByRefByVal(aA), 579, "TestOptArrayByRefByVal(A)"
-
- ' TODO - tdf#125180 for more details
' TestLog_ASSERT Format(TestOptArrayByRefByVal(, aB), "0.0"), 691.2, "TestOptArrayByRefByVal(, B)"
TestLog_ASSERT Format(TestOptArrayByRefByVal(aA, aB), "0.0"), 1270.2, "TestOptArrayByRefByVal(A, B)"
diff --git a/basic/source/inc/runtime.hxx b/basic/source/inc/runtime.hxx
index 1b0a3309367d..3b59a5b18341 100644
--- a/basic/source/inc/runtime.hxx
+++ b/basic/source/inc/runtime.hxx
@@ -348,6 +348,11 @@ public:
sal_Int32 nLine,nCol1,nCol2;
SbiRuntime* pNext; // Stack-Chain
+ // tdf#79426, tdf#125180 - adds the information about a missing parameter
+ static void SetIsMissing( SbxVariable* );
+ // tdf#79426, tdf#125180 - checks if a variable contains the information about a missing parameter
+ static bool IsMissing( SbxVariable*, sal_uInt16 );
+
SbiRuntime( SbModule*, SbMethod*, sal_uInt32 );
~SbiRuntime();
void Error( ErrCode, bool bVBATranslationAlreadyDone = false ); // set error if != 0
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index 15b45ec736a0..279f26f48971 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -621,6 +621,20 @@ void SbiRuntime::SetVBAEnabled(bool bEnabled )
}
}
+// tdf#79426, tdf#125180 - adds the information about a missing parameter
+void SbiRuntime::SetIsMissing( SbxVariable* pVar )
+{
+ SbxInfo* pInfo = pVar->GetInfo() ? pVar->GetInfo() : new SbxInfo();
+ pInfo->AddParam( pVar->GetName(), SbxMISSING, pVar->GetFlags() );
+ pVar->SetInfo( pInfo );
+}
+
+// tdf#79426, tdf#125180 - checks if a variable contains the information about a missing parameter
+bool SbiRuntime::IsMissing( SbxVariable* pVar, sal_uInt16 nIdx )
+{
+ return pVar->GetInfo() && pVar->GetInfo()->GetParam( nIdx ) && pVar->GetInfo()->GetParam( nIdx )->eType & SbxMISSING;
+}
+
// Construction of the parameter list. All ByRef-parameters are directly
// taken over; copies of ByVal-parameters are created. If a particular
// data type is requested, it is converted.
@@ -671,7 +685,11 @@ void SbiRuntime::SetParameters( SbxArray* pParams )
if( p )
{
bByVal |= ( p->eType & SbxBYREF ) == 0;
- t = static_cast<SbxDataType>( p->eType & 0x0FFF );
+ // tdf#79426, tdf#125180 - don't convert missing arguments to the requested parameter type
+ if ( t != SbxEMPTY && !IsMissing( v, 1 ) )
+ {
+ t = static_cast<SbxDataType>( p->eType & 0x0FFF );
+ }
if( !bByVal && t != SbxVARIANT &&
(!v->IsFixed() || static_cast<SbxDataType>(v->GetType() & 0x0FFF ) != t) )
@@ -683,18 +701,25 @@ void SbiRuntime::SetParameters( SbxArray* pParams )
}
if( bByVal )
{
- if( bTargetTypeIsArray )
+ // tdf#79426, tdf#125180 - don't convert missing arguments to the requested parameter type
+ if( bTargetTypeIsArray && !IsMissing( v, 1 ) )
{
t = SbxOBJECT;
}
SbxVariable* v2 = new SbxVariable( t );
v2->SetFlag( SbxFlagBits::ReadWrite );
+ // tdf#79426, tdf#125180 - if parameter was missing, readd additional information about a missing parameter
+ if ( IsMissing( v, 1 ) )
+ {
+ SetIsMissing( v2 );
+ }
*v2 = *v;
refParams->Put32( v2, i );
}
else
{
- if( t != SbxVARIANT && t != ( v->GetType() & 0x0FFF ) )
+ // tdf#79426, tdf#125180 - don't convert missing arguments to the requested parameter type
+ if( t != SbxVARIANT && !IsMissing( v, 1 ) && t != ( v->GetType() & 0x0FFF ) )
{
if( p && (p->eType & SbxARRAY) )
{
@@ -2749,6 +2774,8 @@ void SbiRuntime::StepEMPTY()
// to simplify matters.
SbxVariableRef xVar = new SbxVariable( SbxVARIANT );
xVar->PutErr( 448 );
+ // tdf#79426, tdf#125180 - add additional information about a missing parameter
+ SetIsMissing( xVar.get() );
PushVar( xVar.get() );
}
@@ -4047,13 +4074,16 @@ void SbiRuntime::StepPARAM( sal_uInt32 nOp1, sal_uInt32 nOp2 )
{
pVar = new SbxVariable();
pVar->PutErr( 448 ); // like in VB: Error-Code 448 (ERRCODE_BASIC_NAMED_NOT_FOUND)
+ // tdf#79426, tdf#125180 - add additional information about a missing parameter
+ SetIsMissing( pVar );
refParams->Put32( pVar, iLoop );
iLoop--;
}
}
pVar = refParams->Get32( nIdx );
- if( pVar->GetType() == SbxERROR && nIdx )
+ // tdf#79426, tdf#125180 - check for optionals only if the parameter is actually missing
+ if( pVar->GetType() == SbxERROR && IsMissing( pVar, 1 ) && nIdx )
{
// if there's a parameter missing, it can be OPTIONAL
bool bOpt = false;
diff --git a/include/basic/sbxdef.hxx b/include/basic/sbxdef.hxx
index 2acbac0c98be..6c7a5a8c0bd1 100644
--- a/include/basic/sbxdef.hxx
+++ b/include/basic/sbxdef.hxx
@@ -78,6 +78,9 @@ enum SbxDataType {
SbxVECTOR = 0x1000, // simple counted array
SbxARRAY = 0x2000, // array
SbxBYREF = 0x4000, // access by reference
+
+ // tdf#79426, tdf#125180
+ SbxMISSING = 0x8000, // Parameter is missing
};
const sal_uInt32 SBX_TYPE_WITH_EVENTS_FLAG = 0x10000;