Lazarus

Installation => macOS / Mac OS X => Topic started by: Grahame Grieve on October 16, 2020, 02:15:37 pm

Title: FPCUnit on MacOS (/Catalina)
Post by: Grahame Grieve on October 16, 2020, 02:15:37 pm
I run my FPCUnit tests using the GuiTestRunner on OSC, and when I click on go, I get an error:

[Debugger Exception Notification]


[Break]
Project MarkdownTestProgram raised exception class 'EFCreateError' with message:
Unable to create file \"MarkdownTestProgram.fpcunit.ini\": Read-only file system

 At address 1000173E0


[Ignore this exception type]

[Continue]

I'm compiling to the application bundle - I don't seem to have any choice about that? (I can't find any other way that it works).

The problem occurs at this line of code:

  FConfStore := TIniFile.Create(ExtractFileNameOnly(ParamStr(0)) + '.fpcunit.ini'); // Prevent ini file names conflict if tests are embedded in application

in GuiTestRunner. I don't have any control over the ini file, and I don't seem to have any options to make that location writeable (finder says that I have read/write access to the folder, but apparently not in practice.

Has anyone else run into this, and figured out what to do?
Title: Re: FPCUnit on MacOS (/Catalina)
Post by: trev on October 20, 2020, 01:42:00 am
It sounds like you are trying to write to the system volume which is read-only (since Catalina), hence the error "Read-only file system".

Using ParamStr(0) is not advised under any UNIX operating system for a whole host of reasons best summarised in the Multiplatform Programming Guide (https://wiki.freepascal.org/Multiplatform_Programming_Guide#macOS_2). That link will also direct you to details on how and where to store your ini file on macOS.
Title: Re: FPCUnit on MacOS (/Catalina)
Post by: jwdietrich on October 20, 2020, 07:57:10 am
This is an old issue, see https://bugs.freepascal.org/view.php?id=29283 (https://bugs.freepascal.org/view.php?id=29283).
Title: Re: FPCUnit on MacOS (/Catalina)
Post by: Grahame Grieve on October 24, 2020, 03:04:24 am
it's not a fixed issue though ;-(
TinyPortal © 2005-2018