Author Topic: FPCUnit on MacOS (/Catalina)  (Read 511 times)

Grahame Grieve

  • Full Member
  • ***
  • Posts: 154
FPCUnit on MacOS (/Catalina)
« 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]

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]


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?


  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1213
  • Former Delphi 1-7, 10.2 User
Re: FPCUnit on MacOS (/Catalina)
« Reply #1 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. That link will also direct you to details on how and where to store your ini file on macOS.
o Lazarus 2.1 r64368 FPC 3.3.1 r48100 macOS 10.14.6 Xcode 11.3.1
o Lazarus 2.1 r64392 3.3.1 Jan 13 21:24 macOS 11.1 aarch64 Xcode 12.3
o Lazarus 2.1 r61574 3.3.1 r42318 FreeBSD 12.1 amd64 VMware VM
o Lazarus 2.1 r61574 3.0.4 Ubuntu 20.04 Parallels VM
o Lazarus 2.0.10 3.2.0 Win10 Parallels VM


  • Hero Member
  • *****
  • Posts: 1165
    • formatio reticularis
Re: FPCUnit on MacOS (/Catalina)
« Reply #2 on: October 20, 2020, 07:57:10 am »
function GetRandomNumber: integer; //
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.

Lazarus 2.0.10 | FPC 3.2.0 | PPC, Intel, ARM | macOS, Windows, Linux

Grahame Grieve

  • Full Member
  • ***
  • Posts: 154
Re: FPCUnit on MacOS (/Catalina)
« Reply #3 on: October 24, 2020, 03:04:24 am »
it's not a fixed issue though ;-(


TinyPortal © 2005-2018