Files
libreoffice/basic/qa/basic_coverage/test_tdf160321_gosub_goto.bas
Andreas Heinisch 84e8758d42 tdf#160321 - Don't execute jump statement if the expression is out of range
Don't execute On expression GoSub Statement; On expression GoTo
Statement if the expression lies out of range.

Change-Id: I5c1de25918b5e812d7ec82034f8d56351374d56a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165960
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2024-06-10 13:52:00 +02:00

44 lines
1.1 KiB
QBasic

'
' 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/.
'
Option Explicit
Function doUnitTest() As String
TestUtil.TestInit
verify_GoSub_GoTo
doUnitTest = TestUtil.GetResult()
End Function
Sub verify_GoSub_GoTo
On Error GoTo errorHandler
Dim iVar As Integer
' tdf#160321 - don't execute the GoSub statement if the expression is 0
On 0 GoSub Sub1, Sub2
iVar = iVar + 1
TestUtil.AssertEqual(iVar, 1, "iVar incremented incorrectly")
' tdf#160321 - check the correct functionality of the GoTo statement
On 1 GoTo Sub1, Sub2
iVar = iVar + 1
Exit Sub
Sub1:
TestUtil.AssertEqual(iVar, 1, "iVar incremented incorrectly")
On 2 GoTo Sub1, Sub2
iVar = iVar + 1
Exit Sub
Sub2:
TestUtil.AssertEqual(iVar, 1, "iVar incremented incorrectly")
Exit Sub
errorHandler:
TestUtil.ReportErrorHandler("verify_GoSub_GoTo", Err, Error$, Erl)
Exit Sub
End Sub