File system and registry

This chapter is about the usage Squish Coco makes of the file system to store permanent settings.

Location of the installed files

The location of the installed files varies according to the platform.

Microsoft Windows

The location of the programs can be chosen at installation time. The installer creates and environment variable SQUISHCOCO that contains the path to the installation directory. By default it is either C:\Program Files\squishcoco or C:\Program Files (x86)\squishcoco, depending on the platform. In this documentation we use the expression <Windows Coco> to refer to it.

This directory contains the following files and directories:

  • The standard Squish Coco executables, like CoverageBrowser, cmcsexeimport, etc.
  • The documentation.
  • The prefix versions of the wrapper programs and their configuration files. The prefix version of a compiler wrapper is a file that begins with "cs", like cscl.exe as wrapper for cl.exe. The configuration file for this program is then cl.cspro.
  • Directories with specific versions of the compiler wrappers.

    An example are the directories visualstudio and visualstudio_x64 which contain the wrappers for Microsoft® Visual Studio®. These directories often contain compiler wrappers without a cs prefix: There is e.g. a program cl.exe in the directory visualstudio that wraps the program cl.exe of Microsoft® Visual Studio®.

  • Directories with tutorial and example programs, like parser, textedit and tutorial.

Linux

The location can be chosen at installation time; its default value is /opt/SquishCoco/. The directory has the following subdirectories:

  • bin/, lib/: The Squish Coco binaries, including the prefix versions of the compiler wrappers and their profile files.
  • wrapper/bin/: The compiler wrappers as files without the cs prefix.
  • doc/: Documentation files.
  • samples/: Example programs and files for the tutorials.

macOS

The programs are installed at /Applications/SquishCoco.

This directory contains the Squish Coco binaries, including the prefixed versions of the compiler wrappers and their profile files. It also contains the documentation. It has the following subdirectories:

  • wrapper/: The compiler wrappers as files without the cs prefix.
  • samples/: Example programs and files for the tutorials.

Location of the license

The professional and the non-commercial edition of Squish Coco use different naming schemes to locate the files and registry keys that contain information about the license. In the following description, the professional edition is primarily described, with the values that change in the noncommercial edition following in parentheses.

Node-locked licenses

When searching for a license, Squish Coco first tries to find a node-locked license.

  1. If the environment variable SQUISHCOCO_LICENSEKEY_DIR is set, Squish Coco treats the content as a directory name and tries to find there the license file. The license file is named .squishcoco-3-license.
  2. It then searches for a license file in the home directory (described below).
  3. If Squish Coco runs under Microsoft® Windows, it searches instead in the registry under HKEY_CURRENT_USER\Software\squishcoco\LicenseKey.

It is possible that a license is present but that it has been deactivated. If Squish Coco finds such a license, it stops searching for another node-locked license and tries to find a license server instead.

Note: Setting SQUISHCOCO_LICENSEKEY_DIR globally for all users is not recommended. It would force all users to use the same license, but each license key is specific to user and host.

Address of the license server

If no node-locked license is found, Squish Coco will try to find the location of a license server.

  1. First it tries to read the specification of a license server from the environment variable SQUISHCOCO_LICENSE_SERVER, if such a variable is present and its value is not the empty string.
  2. If Squish Coco runs under Microsoft® Windows, then it searches in the registry under HKEY_CURRENT_USER\Software\squishcoco\LicenseServer for a specification.
  3. It then tries to read the specification from a file .squishcoco-3-licserver, which is located in the home directory (see below).
  4. It then tries to read the specification from the system file /etc/squishcoco-3-licserver on Unix or %windir%\system32\drivers\etc\squishcoco-3-licserver on Windows.

The specification of the license server consists of a host name or an IP address, possibly followed by a colon and a port number, like 'myserver.com:49344'.

The home directory

When searching for the home directory, Squish Coco evaluates the following environment variables and takes the first one which is set.

  1. The content of the variable HOMEPATH.
  2. Under Microsoft® Windows, if HOMEPATH is set, either:
    • If HOMEDRIVE is set, the value of HOMEDRIVE + HOMEPATH.
    • Otherwise the content of HOMEPATH.
  3. The content of HOME.
  4. Under Microsoft® Windows, the content of USERPROFILE.

Location of the temporary files

During compilation, the CoverageScanner creates some temporary files, which it usually deletes automatically after use.

By default, the temporary files are created in the system temporary files directory. This is /tmp on UNIX® systems, and the directory given by the environment variable %TEMP% on Microsoft® Windows. It is possible to change this location by setting the environment variable SQUISHCOCO_TEMP_DIR to the path of another directory. This directory must already exist when the files are written, it is not created automatically.

The automatic deletion of temporary files can be switched off with the command line option --cs-keep-instrumentation-files (see Debugging).

Location of the program settings

If a program has other permanent settings that must be stored in a file, that file is located in the following directory:

  • On Windows: %APPDATA%\ squishcoco
  • On Linux: $HOME/.config/squishcoco

Location of the installation log file

The Windows installer produces a log file at %TEMP%\SquishCoco_logfile\vsaddin.log. It can be consulted after installation problems.

© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.