Running 64-bit Linux
```
dmd --version
DMD64 D Compiler v2.098.0-beta.2

dub --version
DUB version 1.27.0-beta.2, built on Sep  7 2021
```

the following code 'compiles' in one project.

```d
unittest
{
gasdindgaslkdgansklnasgdlknaglkgansklsdg;
}

void main(){} // compiles, links, and 'runs unit tests'
```

dub
[shows compiling, linking, then runs]

dub test

```
Running dfile-test-library
All unit tests have been run successfully.
```

Which made no sense whatsoever until I placed it into a second, different DUB project and catches it immediately using the same commands and test.

In a separate dub project I get the error message:

```
widescreen ~main: building configuration "application"...
source/app.d(4,1): Error: undefined identifier `gasdindgaslkdgansklnasgdlknaglkgansklsdg`
/usr/bin/dmd failed with exit code 1.
```


I'm not doing anything special with DUB and made both projects within a couple weeks of each other. I tried dub clean, dub, dub test. Still broken.



dub.json for broken project
```json
{
        "authors": [
                "chris"
        ],
        "copyright": "Copyright © 2021, chris",
        "dependencies": {
                "crypto": "~>0.2.16"
        },
        "description": "A minimal D application.",
        "license": "proprietary",
        "name": "dfile"
}
```

dub.json for working project
```json
{
        "authors": [
                "chris"
        ],
        "copyright": "Copyright © 2021, chris",
        "description": "A minimal D application.",
        "license": "proprietary",
        "name": "widescreen"
}
```

dub.json.selections (for broken project only)
```json
{
        "fileVersion": 1,
        "versions": {
                "crypto": "0.2.16",
                "intel-intrinsics": "1.6.1"
        }
}
```

Other than unit testing being broken, everything seems to work fine. I even deleted 99.9% of my code and left only the bad unittest code and a main, and it still compiles.


Could it be a bug where the previous unit test (at some point) was valid, and it's caching and still running that one? I have a /.dub/code/ d file I found:

```d
module dub_test_root;
import std.typetuple;
static import notes;
alias allModules = TypeTuple!(notes);

                                                import std.stdio;
                                                import core.runtime;

void main() { writeln("All unit tests have been run successfully."); }
                                                shared static this() {
                                                        version (Have_tested) {
                                                                import tested;
                                                                import 
core.runtime;
                                                                import 
std.exception;
                                                                
Runtime.moduleUnitTester = () => true;
enforce(runUnitTests!allModules(new ConsoleTestResultWriter), "Unit tests failed.");
                                                        }
                                                }
```

Which doesn't appear in the "correct, not compiling" project directory which appears just empty. Possibly because it never successfully compiled a unit test suite.

Reply via email to