diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2014-09-19 12:23:46 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2014-09-19 15:31:06 +0100 |
commit | 19ee058a21747efd36a91a5aaa2231fefe1e7fa4 (patch) | |
tree | a9de0e82924d31a022bab190163b3d9375cae465 /basic/qa | |
parent | 24d1a89285caeaaa0289a06c6be909160ee57583 (diff) |
vba: initial impl. of compatibility methods.
Change-Id: Iebc25f1730766e96d2ad6921a8b4d2ea880c63f3
Diffstat (limited to 'basic/qa')
-rw-r--r-- | basic/qa/cppunit/test_vba.cxx | 3 | ||||
-rw-r--r-- | basic/qa/vba_tests/cdec.vb | 4 | ||||
-rw-r--r-- | basic/qa/vba_tests/datevalue.vb | 8 | ||||
-rw-r--r-- | basic/qa/vba_tests/win32compat.vb | 86 |
4 files changed, 94 insertions, 7 deletions
diff --git a/basic/qa/cppunit/test_vba.cxx b/basic/qa/cppunit/test_vba.cxx index 87c6512c9449..739e96a88b22 100644 --- a/basic/qa/cppunit/test_vba.cxx +++ b/basic/qa/cppunit/test_vba.cxx @@ -50,7 +50,8 @@ void VBATest::testMiscVBAFunctions() "dateserial.vb", "format.vb", "replace.vb", - "stringplusdouble.vb" + "stringplusdouble.vb", + "win32compat.vb" }; OUString sMacroPathURL = getURLFromSrc("/basic/qa/vba_tests/"); // Some test data expects the uk locale diff --git a/basic/qa/vba_tests/cdec.vb b/basic/qa/vba_tests/cdec.vb index 3ed82b33ac90..56166cae5a4e 100644 --- a/basic/qa/vba_tests/cdec.vb +++ b/basic/qa/vba_tests/cdec.vb @@ -23,7 +23,7 @@ Function verify_testCDec() as String Dim ret As Double testName = "Test CDec function" On Error GoTo errorHandler - + ret = CDec("") TestLog_ASSERT ret = 0, "Empty string test:" & ret @@ -82,5 +82,5 @@ Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional tes result = result & Chr$(10) & " Failed: " & testMsg failCount = failCount + 1 End If - + End Sub diff --git a/basic/qa/vba_tests/datevalue.vb b/basic/qa/vba_tests/datevalue.vb index 20aac6416345..6ac6fe73d47e 100644 --- a/basic/qa/vba_tests/datevalue.vb +++ b/basic/qa/vba_tests/datevalue.vb @@ -28,12 +28,12 @@ Function verify_testDateValue() as String Dim date1, date2 As Date testName = "Test DateValue function" date2 = 25246 - + On Error GoTo errorHandler - + date1 = DateValue("February 12, 1969") '2/12/1969 TestLog_ASSERT date1 = date2, "the return date is: " & date1 - + date2 = 39468 date1 = DateValue("21/01/2008") '1/21/2008 TestLog_ASSERT date1 = date2, "the return date is: " & date1 @@ -61,5 +61,5 @@ Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional tes result = result & Chr$(10) & " Failed: " & testMsg failCount = failCount + 1 End If - + End Sub diff --git a/basic/qa/vba_tests/win32compat.vb b/basic/qa/vba_tests/win32compat.vb new file mode 100644 index 000000000000..7697648ddc93 --- /dev/null +++ b/basic/qa/vba_tests/win32compat.vb @@ -0,0 +1,86 @@ +Option VBASupport 1 +Option Explicit + +' +' This file is part of the LibreOffice project. +' +' This Source Code Form is subject to the terms of the Mozilla Public +' License, v. 2.0. If a copy of the MPL was not distributed with this +' file, You can obtain one at http://mozilla.org/MPL/2.0/. +' +' +' Test built-in compatibility versions of methods whose absence +' is really felt in VBA, and large numbers of macros import from +' the system. +' + +Dim passCount As Integer +Dim failCount As Integer +Dim result As String + +Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long +Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long + +' FIXME: all this cut/paste should be factored out ! + +Function doUnitTest() As String + result = verify_win32compat() + If failCount <> 0 Then + doUnitTest = result + Else + doUnitTest = "OK" + End If +End Function + + +Function verify_win32compat() as String + passCount = 0 + failCount = 0 + + result = "Test Results" & Chr$(10) & "================" & Chr$(10) + + Dim freq As Currency + Dim count_a As Currency + Dim count_b As Currency + Dim success As Long + + On Error GoTo errorHandler + + success = QueryPerformanceFrequency(freq) + TestLog_ASSERT success <> 0, "fetching perf. frequency" + TestLog_ASSERT freq > 0, "perf. frequency is incorrect " & freq + + success = QueryPerformanceCounter(count_a) + TestLog_ASSERT success <> 0, "fetching performance count" + + success = QueryPerformanceCounter(count_b) + TestLog_ASSERT success <> 0, "fetching performance count" + TestLog_ASSERT count_a < count_b, "count mismatch " & count_a & " is > " & count_b + + verify_win32compat = "OK" + Exit Function + +errorHandler: + TestLog_ASSERT (False), "hit error handler" + verify_win32compat = result + +End Function + +Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String) + + If assertion = True Then + passCount = passCount + 1 + Else + Dim testMsg As String + If Not IsMissing(testId) Then + testMsg = testMsg + " : " + testId + End If + If Not IsMissing(testComment) And Not (testComment = "") Then + testMsg = testMsg + " (" + testComment + ")" + End If + + result = result & Chr$(10) & " Failed: " & testMsg + failCount = failCount + 1 + End If + +End Sub |