Probably a trivial question regarding version identifier and unittest

Steven Schveighoffer schveiguy at gmail.com
Tue May 12 02:10:36 UTC 2020


On 5/11/20 9:54 PM, WhatMeWorry wrote:
> 
> I'm trying to study Adam Ruppe's terminal.d sub-package and I see the 
> following code segment:
> 
> version(demos) unittest
> {
>      import arsd.terminal;
> 
>      void main()
>      {
>          // . . .
>      }
> 
>      main; // exclude from docs
> }
> 
> Looks like a good baby step to take, so in the command line I use:
> 
> C:\dub\path\to\arsdpackage\arsd-official>dmd terminal.d -unittest 
> -version=demos
> OPTLINK (R) for Win32  Release 8.00.17
> Copyright (C) Digital Mars 1989-2013  All rights reserved.
> http://www.digitalmars.com/ctg/optlink.html
> OPTLINK : Warning 134: No Start Address
> 
> 
> Shouldn't the version identifier demos and the unittest option activate 
> the test block and therefore defines main() which then give the "Start 
> Address"?

That is not a global main, it is inside a unittest block. A unittest 
block is actually a function. So the main there is a nested function, 
and not the one that D declares as the entry point.

> Also, what is the isolated main; command right after the main function?

It's calling the inner function. But I'm sure you would realize that if 
you knew that it's not the true main function.

-Steve


More information about the Digitalmars-d-learn mailing list