Coder Social home page Coder Social logo

sonar-golang's People

Contributors

bobintornado avatar danielleberre avatar dthagard avatar kernle32dll avatar linesmerrill avatar maclav3 avatar mariusstaicu avatar reubent avatar thibaultfalque avatar tvli avatar znerd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sonar-golang's Issues

Find a nice way to prevent sonar to analyze third party xml reports

Description

The plugin uses xml files produced by third party tools to feed sonar.

By default, those xml files will be analyzed by sonar xml plugin.

It would be nice to find a way to prevent that easily (i.e. without further action from the end-user).

Potential solutions

  1. add the xml files programmatically in the exclusion list of sonar (is it even possible?)
  2. name the files in such a way that they are discarded automatically (i.e. start with ".")
  3. add a sonar.exclusions line with the default report names in the documentation (easy but not robust)

It is not clear to me what is the best option so far.

It would be nice to get some feedback from the users.

Both coverage and unit test reports are not importing into sonarqube

Description

report.xml, coverage.xml, test.xml have been generated by sonar-golang git wiki (https://github.com/uartois/sonar-golang). But coverage and unit test reports are not importing into sonarqube. I could see below error for coverage report in scanner logs. But no details about unit test.

====================================
17:15:42.849 INFO: Analyse for /home/bldadm/test/dca-analytics-cobridge/src/github.com/IMS/dca-analytics-cobridge.git/cohandler/coverage.xml
[Fatal Error] coverage-03.dtd:1:3: The markup declarations contained or pointed to by the document type declaration must be well-formed.
17:15:43.121 ERROR: Exception:
org.xml.sax.SAXParseException: The markup declarations contained or pointed to by the document type declaration must be well-formed.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)

Content of your sonar-project.properties

sonar.projectKey=go-test
sonar.projectName=go-test
sonar.projectVersion=1.2
sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.test.reportPath=test.xml
sonar.sources=./

Versions

Versions of your sonar installation (server, sonar-scanner), gometalinter, go and OS.

Sonarqube - 6.3.1
Sonar-scanner - sonar-scanner-3.0.2.768-linux
OS - RHEL 7.1
go version go1.8.3 linux/amd64
gometalinter V1
sonar-golang-plugin-1.2.2

Additional Information

Sample reports may be necessary to reproduce the issue. Please attach if possible reports files (report.xml, coverage.xml, test.xml) corresponding to the feature which is not working as expected.

Which release supports sonarqube v5.6 ?

Description

We have sonarqube v5.6.6 and trying to install the plugin but noticing that the plugin needs v6+.
Since upgrading is not in our immediate plans, can you please let me know the version of the plugin that will work with sonarqube v5.6.6 ?

Shadowed variables support

hello all,
May I ask you to include the support of shadowed variables errors?

GoMetaLinter found this error:

<error column="0" line="165" message="declaration of "configuration" shadows declaration at line.go:142" severity="warning" source="vetshadow"/>

IMHO, this is a very critical issue in the code.

Untested files are ignored for code coverage

Description

I noticed that files which are not tested at all do not decrease the code coverage. E.g. a project with two files, with one being 100% tested and the other not at all, code coverage in total will still be 100%.

Steps to Reproduce

  1. Create a project with two files to test (e.g. main.go and test.go)
  2. Write code and tests for test.go
  3. Coverage will only depend on test.go, not on main.go

Additional Information

If coverage for untested files should be ignored or set to 0 is a choice of preference. Thus, it should be settable via sonar-project.properties.

Getting Warnings on Importing Unknown Linting Errors

Description

When running the sonar-golang plugin and importing the report.xml created by gometalinter using the ineffassign and gas linters, I receive the following warnings in the output:

WARN: This description "ineffectual assignment to err" is not usable
WARN: The key for the message ineffectual assignment to err is null, issue not saved
WARN: This description "file is not goimported" is not usable
WARN: The key for the message file is not goimported is null, issue not saved
WARN: This description "Errors unhandled.,LOW,HIGH" is not usable
WARN: The key for the message Errors unhandled.,LOW,HIGH is null, issue not saved
WARN: This description "Errors unhandled.,LOW,HIGH" is not usable
WARN: The key for the message Errors unhandled.,LOW,HIGH is null, issue not saved
WARN: This description "Errors unhandled.,LOW,HIGH" is not usable
WARN: The key for the message Errors unhandled.,LOW,HIGH is null, issue not saved
WARN: This description "Errors unhandled.,LOW,HIGH" is not usable
WARN: The key for the message Errors unhandled.,LOW,HIGH is null, issue not saved

Steps to Reproduce

  1. Create a golang based project that creates warnings when running the ineffassign and/or gas linters.
  2. Run gometalinter with the ineffassign and gas linters enabled in the gometalinter.json and set the output to export to report.xml
  3. Run the sonar-scanner while importing the report.xml output from gometalinter.
  4. Profit.

Content of your sonar-project.properties

sonar.host.url=https://sonarqube<REDACTED>
sonar.sourceEncoding=UTF-8
sonar.bitbucket.buildStatusEnabled=false
sonar.bitbucket.teamName=<REDACTED>
sonar.bitbucket.accountName=<REDACTED>
sonar.bitbucket.repoSlug=<REDACTED>
sonar.bitbucket.branchName=<REDACTED>
sonar.projectKey=<REDACTED>
sonar.sources="functions/pipelines_ecr_credentials/"
sonar.analysis.mode=issues
sonar.exclusions="vendor"
sonar.bitbucket.oauthClientKey=<REDACTED>
sonar.bitbucket.oauthClientSecret=<REDACTED>
sonar.login=<REDACTED>
sonar.password=<REDACTED>
sonar.projectVersion=<REDACTED>
sonar.language=go

Log of sonar-scanner related to the plugin

Not provided.

Versions

INFO: SonarQube Scanner 3.0.3.778
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Linux 4.9.24-coreos amd64
...
INFO: Download sonar-python-plugin-1.8.0.1496.jar
INFO: Download sonar-css-plugin-3.1.jar
INFO: Download qualinsight-sonarqube-smell-plugin-4.0.0.jar
INFO: Download sonar-auth-googleoauth-plugin-1.6.1.jar
INFO: Download sonar-golang-plugin-1.2.7.jar
INFO: Download sonar-bitbucket-plugin-1.2.0.jar
INFO: Download sonar-sonargraph-plugin-3.5.jar
INFO: Download sonar-javascript-plugin-3.0.0.4962.jar
INFO: Download sonar-java-plugin-4.10.0.10260.jar
INFO: Download sonar-web-plugin-2.5.0.476.jar
INFO: Download sonar-scm-git-plugin-1.2.jar
INFO: Download sonar-rci-plugin-1.0.1.jar
INFO: Download checkstyle-sonar-plugin-3.7.jar
INFO: Download cks-slack-notifier-2.0.jar
INFO: SonarQube server 6.4.0

Additional Information

report.xml.txt

Question: Single vs Multiple coverage.xml files

Description

In the README I noticed the following section:

You must end-up with one coverage file per directory:

pkg1/coverage.xml
pkg2/coverage.xml
pkg3/coverage.xml
...

Currently I'm able to generate a single coverage.xml file for an entire project with multiple packages within the same project. And cobertura within Jenkins is able to read and process the file and show all of the packages.

Example single coverage.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-03.dtd">
<coverage line-rate="0" branch-rate="0" version="" timestamp="1506622955562">
	<sources>
		<source>/usr/local/go/src</source>
		<source>/go/src</source>
		<source>/authlib/src</source>
	</sources>
	<packages>
		<package name="gitscm.cisco.com/ccdev/authlib/authz" line-rate="0" branch-rate="0" complexity="0">
			<classes>
				<class name="-" filename="gitscm.cisco.com/ccdev/authlib/authz/context.go" line-rate="0" branch-rate="0" complexity="0">
					<methods>
						<method name="key" signature="" line-rate="0" branch-rate="0">
							<lines>
								<line number="11" hits="11"></line>
							</lines>
						</method>
						<method name="GetUsername" signature="" line-rate="0" branch-rate="0">
							<lines>
								<line number="16" hits="6"></line>
								<line number="17" hits="5"></line>
								<line number="19" hits="1"></line>
							</lines>
						</method>
						<method name="SetUsername" signature="" line-rate="0" branch-rate="0">
							<lines>
								<line number="24" hits="5"></line>
							</lines>
						</method>
					</methods>
					<lines>
						<line number="11" hits="11"></line>
						<line number="16" hits="6"></line>
						<line number="17" hits="5"></line>
						<line number="19" hits="1"></line>
						<line number="24" hits="5"></line>
					</lines>
				</class>
			</classes>
		</package>
		<package name="gitscm.cisco.com/ccdev/authlib/authz/casbin" line-rate="0" branch-rate="0" complexity="0">
			<classes>
				<class name="-" filename="gitscm.cisco.com/ccdev/authlib/authz/casbin/ldap_role_manager.go" line-rate="0" branch-rate="0" complexity="0">
					<methods>
						<method name="CheckLdapEnv" signature="" line-rate="0" branch-rate="0">
							<lines>
								<line number="32" hits="4"></line>
								<line number="33" hits="1"></line>
								<line number="35" hits="3"></line>
								<line number="36" hits="1"></line>
								<line number="38" hits="2"></line>
								<line number="39" hits="1"></line>
								<line number="41" hits="1"></line>
							</lines>
						</method>
						<method name="LDAPRoleManager" signature="" line-rate="0" branch-rate="0">
							<lines>
								<line number="46" hits="1"></line>
							</lines>
						</method>
						<method name="@46:9" signature="" line-rate="0" branch-rate="0">
							<lines>
								<line number="47" hits="1"></line>
								<line number="48" hits="1"></line>
								<line number="49" hits="1"></line>
								<line number="50" hits="1"></line>
								<line number="53" hits="1"></line>
								<line number="54" hits="1"></line>
								<line number="56" hits="1"></line>
							</lines>
						</method>
						<method name="NewLdapRoleManager" signature="" line-rate="0" branch-rate="0">
							<lines>
								<line number="62" hits="2"></line>
								<line number="70" hits="2"></line>
								<line number="71" hits="2"></line>
								<line number="72" hits="1"></line>
								<line number="74" hits="1"></line>
								<line number="78" hits="1"></line>
							</lines>
						</method>
					</methods>
					<lines>
						<line number="32" hits="4"></line>
						<line number="33" hits="1"></line>
						<line number="35" hits="3"></line>
						<line number="36" hits="1"></line>
						<line number="38" hits="2"></line>
						<line number="39" hits="1"></line>
						<line number="41" hits="1"></line>
						<line number="46" hits="1"></line>
						<line number="47" hits="1"></line>
						<line number="48" hits="1"></line>
						<line number="49" hits="1"></line>
						<line number="50" hits="1"></line>
						<line number="53" hits="1"></line>
						<line number="54" hits="1"></line>
						<line number="56" hits="1"></line>
						<line number="62" hits="2"></line>
						<line number="70" hits="2"></line>
						<line number="71" hits="2"></line>
						<line number="72" hits="1"></line>
						<line number="74" hits="1"></line>
						<line number="78" hits="1"></line>
					</lines>
				</class>
			</classes>
		</package>
	</packages>
</coverage>
  1. Is there a technical limitation within SonarQube that requires the coverage to be done as one coverage.xml per package? Or is this rule imposed by the plugin?

  2. As a follow up, does the coverage.xml have to be in the same directory as the code? Or is it possible to leverage a cover directory that has a directory for each package and the coverage.xml file exists within that directory?

Example Directory structure for coverage:

cover/
    github.com/org/repo/pkg1/coverage.xml
    github.com/org/repo/pkg2/coverage.xml
    github.com/org/repo/pkg3/coverage.xml
    ...

Readme: link a demo

Description

To better understand the plugin and what it offers it might be helpful to show a demo analysis. Or just link an existing one.

Thx.

Getting Issues Report in Preview Mode

Actually this is not an issue but more like a question. I'm trying to running an analysis in preview mode but somehow I didn't get anything. Is preview mode not supported yet?

Thanks

Coverage metrics not being imported, using latest jar v1.2.11-rc8

Description

I am using the latest sonar-golang jar v1.2.11-rc8 but still I'm unable to get the Coverage metrics on the Sonar Dashboard.

Steps to Reproduce

I'm running SonarQube server 6.7.1 locally and I have added the latest sonar-golang jar(sonar-golang-plugin-1.2.11-rc8.jar) to it's plugins. Using latest versions for go, gometalinter.v1, etc. Running SonarQube Scanner 3.0.3.778 to scan.Also, the coverage.xml file gets created properly, but it's not imported to the Sonar dashboard for some reason.

Content of your sonar-project.properties

sonar.projectKey=deid
sonar.projectName=deid
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.coverage.dtdVerification=false
sonar.test.reportPath=test.xml
sonar.sources=./

Log of sonar-scanner related to the plugin

sonar-scanner -X
Logs: https://gist.github.com/BharadwajKk/d31e583759adc1b666c017aefcf99d2e

Versions

go version go1.9.2 linux/amd
SonarQube server 6.7.1
SonarQube Scanner 3.0.3.778
Java 1.8.0_121 Oracle Corporation (64-bit)
Linux 3.10.0-327.el7.x86_64 amd64

Additional Information

coverage.xml, report.xml: https://gist.github.com/BharadwajKk/b90e16d8fa7e1d1cc90c2e55e1d944c6

Not reporting Golint errors

Description

created report.xml using gometalinter. Ran sonar-scanner and the log says
"Analysis report generated and Analysis report uploaded".
I logged into my dashboard to see the results and it says Bugs 0, codesmells 0 and vulnerabilities 0 for my project, which is not true. I have activated most of the Golint rules in my dashboard .

Steps to Reproduce

  1. gometalinter.v1 ./... --checkstyle > report.xml. (created report.xml . which i placed in my test-reports folder)
  2. Ran sonar-scanner
  3. Logged into dashboard and saw Bugs 0, codesmells 0 and vulnerabilities 0. It didn't catch any GOlint errors

Versions

Versions of your sonar installation, gometalinter and go.
sonarQube version - sonarqube-6.3.1
sonar-scanner version - sonar-scanner-3.0.3.778-linux
gometalinterversion - v1
go version - 1.6.2

Capture coverage failing when using docker

Description

When attempting to publish coverage.xml, report.xml, and test.xml to SonarQube after generating the individual xml files, I'm seeing the following happen.

  1. The coverage is not honoring the sonar.exclusions entry, as all the files in my .glide/** and vendor/** are being processed.
  2. unable to create InputFile object: gitscm.cisco.com/ccdev/cicdtest/version/info.go
  3. java.lang.StringIndexOutOfBoundsException: String index out of range: -1

Steps to Reproduce

  1. Build Dockerfile for running SonarQube locally
FROM sonarqube:6.5-alpine

RUN wget -O "$SONARQUBE_HOME/extensions/plugins/sonar-golang-plugin-1.2.11-rc3.jar" \
      https://github.com/uartois/sonar-golang/releases/download/v1.2.11-rc3/sonar-golang-plugin-1.2.11-rc3.jar
docker build -t cicdtest_sonar -f Dockerfile.cd .
  1. Start SonarQube
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 cicdtest_sonar
  1. Run sonar-scanner
sonar-scanner -X \
  -Dsonar.host.url=http://localhost:9000 \
  -Dsonar.login=534221ba8db9121b9afe15a322a5fa1f17d3c9df

Content of your sonar-project.properties

https://gist.github.com/kenjones-cisco/8b5f55f4f5197d3ddfba66142aeefbc1#file-sonar-project-properties

It will help us to check how you configured the plugin.

Log of sonar-scanner related to the plugin

https://gist.github.com/kenjones-cisco/8b5f55f4f5197d3ddfba66142aeefbc1#file-scanner-log

The plugin logs major events, including which report files have been found and analyzed.

Versions

SonarQube Server

            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin",
                "LANG=C.UTF-8",
                "JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk",
                "JAVA_VERSION=8u131",
                "JAVA_ALPINE_VERSION=8.131.11-r2",
                "SONAR_VERSION=6.5",
                "SONARQUBE_HOME=/opt/sonarqube",
                "SONARQUBE_JDBC_USERNAME=sonar",
                "SONARQUBE_JDBC_PASSWORD=sonar",
                "SONARQUBE_JDBC_URL="
            ],

sonar-scanner

INFO: Scanner configuration file: C:\Users\kenjones\.local\bin\sonar-scanner-3.0.3.778\bin\..\conf\sonar-scanner.properties
INFO: Project root configuration file: C:\Users\kenjones\projects\examples\cicdtest\sonar-project.properties
INFO: SonarQube Scanner 3.0.3.778
INFO: Java 1.8.0_131 Oracle Corporation (64-bit)
INFO: Windows 10 10.0 amd64

go version
go version go1.9 linux/amd64

gometalinter
c039b9f1fbff9a38595e19e9d97474ed57270cb8 Last commit as of yesterday

OS

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

All go, gometalinter, etc. are run inside of Docker containers

Versions of your sonar installation (server, sonar-scanner), gometalinter, go and OS.

Additional Information

All *.xml are in the same gist as the other files:
https://gist.github.com/kenjones-cisco/8b5f55f4f5197d3ddfba66142aeefbc1

Seems similar to #14

Sample reports may be necessary to reproduce the issue. Please attach if possible reports files (report.xml, coverage.xml, test.xml) corresponding to the feature which is not working as expected.

Same file scanned twice

This issue was discovered in #43.
Version is 1.2.11-rc7.

Here is the output log of sonar-scanner -X:

Click to expand
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
16:08:06.038 INFO: Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
16:08:06.042 INFO: Project root configuration file: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/sonar-project.properties
16:08:06.057 INFO: SonarQube Scanner 3.0.3.778
16:08:06.057 INFO: Java 1.8.0_144 Oracle Corporation (64-bit)
16:08:06.057 INFO: Linux 4.13.12-1-ARCH amd64
16:08:06.170 DEBUG: keyStore is : 
16:08:06.170 DEBUG: keyStore type is : jks
16:08:06.170 DEBUG: keyStore provider is : 
16:08:06.170 DEBUG: init keystore
16:08:06.171 DEBUG: init keymanager of type SunX509
16:08:06.235 INFO: User cache: /home/jcampion/.sonar/cache
16:08:06.238 DEBUG: Extract sonar-scanner-api-batch in temp...
16:08:06.244 DEBUG: Get bootstrap index...
16:08:06.245 DEBUG: Download: https://sonar.humanrevolt.com/batch/index
16:08:06.523 DEBUG: Get bootstrap completed
16:08:06.524 DEBUG: Create isolated classloader...
16:08:06.530 DEBUG: Start temp cleaning...
16:08:06.537 DEBUG: Temp cleaning done
16:08:06.537 DEBUG: Execution getVersion
16:08:06.541 DEBUG: Execution start
16:08:06.681 INFO: Publish mode
16:08:06.773 INFO: Load global settings
16:08:06.967 DEBUG: GET 200 https://sonar.humanrevolt.com/api/settings/values.protobuf | time=189ms
16:08:06.982 INFO: Load global settings (done) | time=210ms
16:08:06.990 INFO: Server id: AWACFaQxFVNn6Ukd92QS
16:08:06.996 INFO: User cache: /home/jcampion/.sonar/cache
16:08:07.380 INFO: Load plugins index
16:08:07.416 DEBUG: GET 200 https://sonar.humanrevolt.com/api/plugins/installed | time=36ms
16:08:07.445 INFO: Load plugins index (done) | time=65ms
16:08:07.445 DEBUG: Load plugins
16:08:07.454 DEBUG: Load plugins (done) | time=9ms
16:08:07.466 DEBUG: API compatibility mode is enabled on plugin Android [android] (built with API lower than 5.2)
16:08:07.535 DEBUG: Plugins:
16:08:07.535 DEBUG:   * SonarC# 6.5.0.3766 (csharp)
16:08:07.535 DEBUG:   * SonarJava 4.15.0.12310 (java)
16:08:07.536 DEBUG:   * SonarQube :: Plugins :: SCM :: Git 1.3.0.869 (scmgit)
16:08:07.536 DEBUG:   * Android 1.1 (android)
16:08:07.536 DEBUG:   * Golang 1.2.11-rc7 (golang)
16:08:07.537 DEBUG:   * Swift (Backelite) 0.3.5 (backelitesonarswiftplugin)
16:08:07.537 DEBUG:   * SonarQube :: Plugins :: SCM :: SVN 1.6.0.860 (scmsvn)
16:08:07.549 DEBUG: Execution getVersion
16:08:07.549 INFO: SonarQube server 6.7.0
16:08:07.549 INFO: Default locale: "en_US", source code encoding: "UTF-8" (analysis is platform dependent)
16:08:07.550 DEBUG: Work directory: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/.scannerwork
16:08:07.550 DEBUG: Execution getVersion
16:08:07.550 DEBUG: Execution execute
16:08:07.916 INFO: Process project properties
16:08:07.924 DEBUG: Process project properties (done) | time=8ms
16:08:07.943 INFO: Load project repositories
16:08:07.998 DEBUG: GET 200 https://sonar.humanrevolt.com/batch/project.protobuf?key=hrserver | time=55ms
16:08:08.045 INFO: Load project repositories (done) | time=102ms
16:08:08.221 DEBUG: Available languages:
16:08:08.221 DEBUG:   * C# => "cs"
16:08:08.221 DEBUG:   * Java => "java"
16:08:08.222 DEBUG:   * GO => "go"
16:08:08.222 DEBUG:   * Swift => "swift"
16:08:08.238 INFO: Load quality profiles
16:08:08.342 DEBUG: GET 200 https://sonar.humanrevolt.com/api/qualityprofiles/search.protobuf?projectKey=hrserver | time=103ms
16:08:08.351 INFO: Load quality profiles (done) | time=113ms
16:08:08.361 INFO: Load active rules
16:08:08.616 DEBUG: GET 200 https://sonar.humanrevolt.com/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AWACFp2UFVNn6Ukd92qr&p=1&ps=500 | time=254ms
16:08:08.821 DEBUG: GET 200 https://sonar.humanrevolt.com/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AWADVVbjlUGcHqZjPvX6&p=1&ps=500 | time=148ms
16:08:09.742 DEBUG: GET 200 https://sonar.humanrevolt.com/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AWACFqVWFVNn6Ukd92yL&p=1&ps=500 | time=905ms
16:08:09.919 DEBUG: GET 200 https://sonar.humanrevolt.com/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AWADSXehNcq2skh99x9k&p=1&ps=500 | time=140ms
16:08:09.941 INFO: Load active rules (done) | time=1580ms
16:08:09.945 INFO: Load metrics repository
16:08:09.998 DEBUG: GET 200 https://sonar.humanrevolt.com/api/metrics/search?f=name,description,direction,qualitative,custom&ps=500&p=1 | time=52ms
16:08:10.013 INFO: Load metrics repository (done) | time=68ms
16:08:10.040 INFO: Project key: hrserver
16:08:10.041 DEBUG: Start recursive analysis of project modules
16:08:10.041 INFO: -------------  Scan hrserver
16:08:10.103 INFO: Load server rules
16:08:10.187 DEBUG: GET 200 https://sonar.humanrevolt.com/api/rules/list.protobuf | time=84ms
16:08:10.204 INFO: Load server rules (done) | time=101ms
16:08:10.229 INFO: Base dir: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver
16:08:10.230 INFO: Working dir: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/.scannerwork
16:08:10.231 INFO: Source paths: .
16:08:10.231 INFO: Source encoding: UTF-8, default locale: en_US
16:08:10.286 DEBUG: Declared extensions of language C# were converted to sonar.lang.patterns.cs : **/*.cs
16:08:10.287 DEBUG: Declared extensions of language Java were converted to sonar.lang.patterns.java : **/*.java,**/*.jav
16:08:10.287 DEBUG: Declared extensions of language GO were converted to sonar.lang.patterns.go : **/*.go
16:08:10.287 DEBUG: Declared extensions of language Swift were converted to sonar.lang.patterns.swift : **/*.swift
16:08:10.287 INFO: Language is forced to go
16:08:10.291 DEBUG: Initializers : 
16:08:10.293 INFO: Index files
16:08:10.307 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/report.xml' is ignored because it doesn't belong to the forced language 'go'
16:08:10.312 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/README.md' is ignored because it doesn't belong to the forced language 'go'
16:08:10.304 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/test.xml' is ignored because it doesn't belong to the forced language 'go'
16:08:10.316 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/sonar-project.properties' is ignored because it doesn't belong to the forced language 'go'
16:08:10.317 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/hugoconf.toml.example' is ignored because it doesn't belong to the forced language 'go'
16:08:10.328 DEBUG: 'inventory/inventory.go' indexed with language 'go'
16:08:10.330 DEBUG: 'db/fortress.go' indexed with language 'go'
16:08:10.330 DEBUG: 'db/token.go' indexed with language 'go'
16:08:10.331 DEBUG: 'db/poll.go' indexed with language 'go'
16:08:10.331 DEBUG: 'db/interestaction.go' indexed with language 'go'16:08:10.331 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/cover.out' is ignored because it doesn't belong to the forced language 'go'

16:08:10.335 DEBUG: 'db/db_test.go' indexed with language 'go'
16:08:10.335 DEBUG: 'db/user.go' indexed with language 'go'
16:08:10.335 DEBUG: 'db/interest.go' indexed with language 'go'
16:08:10.336 DEBUG: 'db/db.go' indexed with language 'go'
16:08:10.336 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/coverage.xml' is ignored because it doesn't belong to the forced language 'go'
16:08:10.337 DEBUG: 'db/config.go' indexed with language 'go'
16:08:10.337 DEBUG: 'db/location.go' indexed with language 'go'
16:08:10.331 DEBUG: 'db/scavenging.go' indexed with language 'go'
16:08:10.331 DEBUG: 'db/futureinterest.go' indexed with language 'go'
16:08:10.339 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/report.txt' is ignored because it doesn't belong to the forced language 'go'
16:08:10.340 DEBUG: 'hrserver.go' indexed with language 'go'
16:08:10.340 DEBUG: 'config.go' indexed with language 'go'
16:08:10.341 DEBUG: 'api/fortress.go' indexed with language 'go'
16:08:10.341 DEBUG: 'api/scavenging.go' indexed with language 'go'
16:08:10.341 DEBUG: 'api/api.go' indexed with language 'go'
16:08:10.342 DEBUG: 'api/poll.go' indexed with language 'go'
16:08:10.342 DEBUG: 'api/daemon.go' indexed with language 'go'
16:08:10.342 DEBUG: 'api/delete_user.go' indexed with language 'go'
16:08:10.342 DEBUG: 'api/inventory.go' indexed with language 'go'
16:08:10.343 DEBUG: 'api/middleware.go' indexed with language 'go'
16:08:10.343 DEBUG: 'api/user.go' indexed with language 'go'
16:08:10.344 DEBUG: 'api/interest.go' indexed with language 'go'
16:08:10.344 DEBUG: 'api/config.go' indexed with language 'go'
16:08:10.344 DEBUG: 'api/vision.go' indexed with language 'go'
16:08:10.344 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/spec.yaml' is ignored because it doesn't belong to the forced language 'go'
16:08:10.345 WARN: File '/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/conf.toml' is ignored because it doesn't belong to the forced language 'go'
16:08:10.347 INFO: 27 files indexed
16:08:10.351 INFO: Quality profile for go: Golint Rules
16:08:10.436 DEBUG: 'Generic Coverage Report' skipped because one of the required properties is missing
16:08:10.437 DEBUG: 'Generic Test Executions Report' skipped because one of the required properties is missing
16:08:10.438 DEBUG: 'C#' skipped because there is no related file in current project
16:08:10.441 DEBUG: 'C# Tests Coverage Report Import' skipped because there is no related file in current project
16:08:10.442 DEBUG: '[Deprecated] C# Integration Tests Coverage Report Import' skipped because there is no related file in current project
16:08:10.443 DEBUG: 'C# Unit Test Results Import' skipped because there is no related file in current project
16:08:10.443 DEBUG: 'SurefireSensor' skipped because there is no related file in current project
16:08:10.445 DEBUG: 'JaCoCoSensor' skipped because there is no related file in current project
16:08:10.446 DEBUG: 'JavaSquidSensor' skipped because there is no related file in current project
16:08:10.452 DEBUG: 'Generic Coverage Report' skipped because one of the required properties is missing
16:08:10.453 DEBUG: 'Generic Test Executions Report' skipped because one of the required properties is missing
16:08:10.453 DEBUG: 'C#' skipped because there is no related file in current project
16:08:10.455 DEBUG: 'C# Tests Coverage Report Import' skipped because there is no related file in current project
16:08:10.457 DEBUG: '[Deprecated] C# Integration Tests Coverage Report Import' skipped because there is no related file in current project
16:08:10.457 DEBUG: 'C# Unit Test Results Import' skipped because there is no related file in current project
16:08:10.458 DEBUG: 'SurefireSensor' skipped because there is no related file in current project
16:08:10.458 DEBUG: 'JaCoCoSensor' skipped because there is no related file in current project
16:08:10.459 DEBUG: 'JavaSquidSensor' skipped because there is no related file in current project
16:08:10.464 DEBUG: Sensors : Swift Surefire Sensor -> SonarJavaXmlFileSensor -> GoMetaLinter issues loader sensor -> Go Coverage -> Go test JUnit loader sensor -> Go Highlighter Sensor -> Go Metrics Sensor -> Zero Coverage Sensor -> CPD Block Indexer
16:08:10.464 INFO: Sensor Swift Surefire Sensor [backelitesonarswiftplugin]
16:08:10.465 INFO: Processing test reports in /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/sonar-reports
16:08:10.465 WARN: JUnit report directory not found at /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/sonar-reports
16:08:10.465 INFO: Sensor Swift Surefire Sensor [backelitesonarswiftplugin] (done) | time=1ms
16:08:10.465 INFO: Sensor SonarJavaXmlFileSensor [java]
16:08:10.468 INFO: Sensor SonarJavaXmlFileSensor [java] (done) | time=3ms
16:08:10.470 INFO: Sensor GoMetaLinter issues loader sensor [golang]
16:08:10.482 INFO: Parsing the file report.xml
16:08:10.482 INFO: Parsing 'GoMetaLinter' Analysis Results
16:08:10.483 DEBUG: Parsing file /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/report.xml
16:08:10.504 DEBUG: violation found for the file hrserver.go
16:08:10.507 INFO: Load /key.properties
16:08:10.509 INFO: loaded 51
16:08:10.512 WARN: This description "could not import flag (/usr/lib/go/pkg/linux_amd64/flag.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.512 WARN: The key for the message could not import flag (/usr/lib/go/pkg/linux_amd64/flag.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.514 WARN: This description "could not import fmt (/usr/lib/go/pkg/linux_amd64/fmt.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.515 WARN: The key for the message could not import fmt (/usr/lib/go/pkg/linux_amd64/fmt.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.517 WARN: This description "could not import io/ioutil (/usr/lib/go/pkg/linux_amd64/io/ioutil.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.517 WARN: The key for the message could not import io/ioutil (/usr/lib/go/pkg/linux_amd64/io/ioutil.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.519 WARN: This description "could not import log (/usr/lib/go/pkg/linux_amd64/log.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.519 WARN: The key for the message could not import log (/usr/lib/go/pkg/linux_amd64/log.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.521 WARN: This description "could not import net/http (/usr/lib/go/pkg/linux_amd64/net/http.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.521 WARN: The key for the message could not import net/http (/usr/lib/go/pkg/linux_amd64/net/http.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.524 WARN: This description "could not import os (/usr/lib/go/pkg/linux_amd64/os.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.524 WARN: The key for the message could not import os (/usr/lib/go/pkg/linux_amd64/os.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.526 WARN: This description "could not import strconv (/usr/lib/go/pkg/linux_amd64/strconv.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.526 WARN: The key for the message could not import strconv (/usr/lib/go/pkg/linux_amd64/strconv.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.529 WARN: This description "could not import strings (/usr/lib/go/pkg/linux_amd64/strings.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.535 WARN: The key for the message could not import strings (/usr/lib/go/pkg/linux_amd64/strings.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.536 WARN: This description "could not import github.com/BurntSushi/toml (/home/jcampion/work/go/pkg/linux_amd64/github.com/BurntSushi/toml.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.538 WARN: The key for the message could not import github.com/BurntSushi/toml (/home/jcampion/work/go/pkg/linux_amd64/github.com/BurntSushi/toml.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.538 WARN: This description "could not import github.com/gorilla/handlers (/home/jcampion/work/go/pkg/linux_amd64/github.com/gorilla/handlers.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.539 WARN: The key for the message could not import github.com/gorilla/handlers (/home/jcampion/work/go/pkg/linux_amd64/github.com/gorilla/handlers.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.539 WARN: This description "could not import regexp (/usr/lib/go/pkg/linux_amd64/regexp.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.540 WARN: The key for the message could not import regexp (/usr/lib/go/pkg/linux_amd64/regexp.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.541 WARN: This description "could not import gitlab.com/HumanRevolt/hrserver/api (/home/jcampion/work/go/pkg/linux_amd64/gitlab.com/HumanRevolt/hrserver/api.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.542 WARN: The key for the message could not import gitlab.com/HumanRevolt/hrserver/api (/home/jcampion/work/go/pkg/linux_amd64/gitlab.com/HumanRevolt/hrserver/api.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.543 WARN: This description "could not import gitlab.com/HumanRevolt/hrserver/db (/home/jcampion/work/go/pkg/linux_amd64/gitlab.com/HumanRevolt/hrserver/db.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package)" is not usable
16:08:10.543 WARN: The key for the message could not import gitlab.com/HumanRevolt/hrserver/db (/home/jcampion/work/go/pkg/linux_amd64/gitlab.com/HumanRevolt/hrserver/db.a: cannot import, possibly version skew (unknown export format version 5 ("version 5")) - reinstall package) is null, issue not saved
16:08:10.544 WARN: This description "undeclared name: regexp" is not usable
16:08:10.544 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: regexp
16:08:10.545 WARN: This description "undeclared name: strings" is not usable
16:08:10.545 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: strings
16:08:10.546 WARN: This description "undeclared name: fmt" is not usable
16:08:10.546 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: fmt
16:08:10.547 WARN: This description "undeclared name: os" is not usable
16:08:10.548 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.548 WARN: This description "undeclared name: os" is not usable
16:08:10.549 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.550 WARN: This description "undeclared name: fmt" is not usable
16:08:10.550 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: fmt
16:08:10.551 WARN: This description "undeclared name: os" is not usable
16:08:10.552 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.553 WARN: This description "undeclared name: fmt" is not usable
16:08:10.553 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: fmt
16:08:10.554 WARN: This description "undeclared name: os" is not usable
16:08:10.554 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.555 WARN: This description "undeclared name: fmt" is not usable
16:08:10.557 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: fmt
16:08:10.559 WARN: This description "undeclared name: os" is not usable
16:08:10.559 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.560 WARN: This description "undeclared name: flag" is not usable
16:08:10.560 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.561 WARN: This description "undeclared name: flag" is not usable
16:08:10.561 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.562 WARN: This description "undeclared name: flag" is not usable
16:08:10.562 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.563 WARN: This description "undeclared name: flag" is not usable
16:08:10.563 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.564 WARN: This description "undeclared name: flag" is not usable
16:08:10.564 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.565 WARN: This description "undeclared name: flag" is not usable
16:08:10.565 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.566 WARN: This description "undeclared name: os" is not usable
16:08:10.566 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.567 WARN: This description "undeclared name: flag" is not usable
16:08:10.567 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.568 WARN: This description "undeclared name: flag" is not usable
16:08:10.568 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.569 WARN: This description "invalid operation: f (variable of type *invalid type) has no field or method Name" is not usable
16:08:10.569 WARN: The key for the message invalid operation: f (variable of type *invalid type) has no field or method Name is null, issue not saved
16:08:10.570 WARN: This description "undeclared name: ioutil" is not usable
16:08:10.570 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: ioutil
16:08:10.571 WARN: This description "undeclared name: toml" is not usable
16:08:10.571 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: toml
16:08:10.572 WARN: This description "undeclared name: db" is not usable
16:08:10.574 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: db
16:08:10.575 WARN: This description "undeclared name: flag" is not usable
16:08:10.575 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.576 WARN: This description "undeclared name: api" is not usable
16:08:10.576 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: api
16:08:10.577 WARN: This description "undeclared name: handlers" is not usable
16:08:10.577 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.578 WARN: This description "undeclared name: handlers" is not usable
16:08:10.578 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.579 WARN: This description "undeclared name: handlers" is not usable
16:08:10.579 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.580 WARN: This description "undeclared name: handlers" is not usable
16:08:10.580 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.581 WARN: This description "undeclared name: handlers" is not usable
16:08:10.581 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.582 WARN: This description "undeclared name: handlers" is not usable
16:08:10.582 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.583 WARN: This description "undeclared name: http" is not usable
16:08:10.583 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: http
16:08:10.583 WARN: This description "undeclared name: api" is not usable
16:08:10.584 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: api
16:08:10.584 WARN: This description "undeclared name: handlers" is not usable
16:08:10.584 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.585 WARN: This description "undeclared name: os" is not usable
16:08:10.585 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.586 WARN: This description "undeclared name: handlers" is not usable
16:08:10.586 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handlers
16:08:10.587 WARN: This description "undeclared name: http" is not usable
16:08:10.587 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: http
16:08:10.588 WARN: This description "undeclared name: strconv" is not usable
16:08:10.588 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: strconv
16:08:10.589 WARN: This description "undeclared name: log" is not usable
16:08:10.589 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: log
16:08:10.591 WARN: This description "undeclared name: api" is not usable
16:08:10.592 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: api
16:08:10.592 WARN: This description "undeclared name: flag" is not usable
16:08:10.593 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: flag
16:08:10.593 WARN: This description "undeclared name: os" is not usable
16:08:10.594 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: os
16:08:10.595 WARN: This description "should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (S1007)" is not usable
16:08:10.595 WARN: The key for the message should use raw string (`...`) with regexp.MustCompile to avoid having to escape twice (S1007) is null, issue not saved
16:08:10.595 INFO: Sensor GoMetaLinter issues loader sensor [golang] (done) | time=126ms
16:08:10.596 INFO: Sensor Go Coverage [golang]
16:08:10.602 DEBUG: global execlud path null
16:08:10.602 DEBUG: global execlud path null
16:08:10.604 DEBUG: global execlud path null
16:08:10.604 DEBUG: global execlud path null
16:08:10.604 DEBUG: global execlud path null
16:08:10.605 DEBUG: global execlud path null
16:08:10.605 DEBUG: global execlud path null
16:08:10.655 DEBUG: global execlud path null
16:08:10.661 DEBUG: global execlud path null
16:08:10.661 DEBUG: global execlud path null
16:08:10.661 DEBUG: global execlud path null
16:08:10.661 DEBUG: global execlud path null
16:08:10.661 DEBUG: global execlud path null
16:08:10.662 DEBUG: global execlud path null
16:08:10.662 DEBUG: global execlud path null
16:08:10.662 DEBUG: global execlud path null
16:08:10.662 DEBUG: global execlud path null
16:08:10.663 DEBUG: global execlud path null
16:08:10.663 DEBUG: global execlud path null
16:08:10.663 DEBUG: global execlud path null
16:08:10.663 DEBUG: global execlud path null
16:08:10.663 DEBUG: global execlud path null
16:08:10.663 DEBUG: global execlud path null
16:08:10.664 DEBUG: global execlud path null
16:08:10.666 DEBUG: global execlud path null
16:08:10.666 DEBUG: global execlud path null
16:08:10.667 DEBUG: global execlud path null
16:08:10.667 DEBUG: global execlud path null
16:08:10.667 DEBUG: global execlud path null
16:08:10.667 DEBUG: global execlud path null
16:08:10.667 DEBUG: global execlud path null
16:08:10.667 DEBUG: global execlud path null
16:08:10.668 DEBUG: global execlud path null
16:08:10.668 DEBUG: global execlud path null
16:08:10.668 DEBUG: global execlud path null
16:08:10.668 DEBUG: global execlud path null
16:08:10.668 DEBUG: global execlud path null
16:08:10.668 DEBUG: global execlud path null
16:08:10.668 DEBUG: global execlud path null
16:08:10.669 DEBUG: global execlud path null
16:08:10.669 DEBUG: global execlud path null
16:08:10.669 INFO: Sensor Go Coverage [golang] (done) | time=73ms
16:08:10.669 INFO: Sensor Go test JUnit loader sensor [golang]
16:08:10.706 INFO: search test function in /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go
16:08:10.709 WARN: This function name is not correct: package db
16:08:10.710 WARN: This function name is not correct: 
16:08:10.710 WARN: This function name is not correct: import (
16:08:10.713 WARN: This function name is not correct: 	"io/ioutil"
16:08:10.716 WARN: This function name is not correct: 	"os"
16:08:10.716 WARN: This function name is not correct: 	"testing"
16:08:10.717 WARN: This function name is not correct: 
16:08:10.717 WARN: This function name is not correct: 	"time"
16:08:10.719 WARN: This function name is not correct: 
16:08:10.719 WARN: This function name is not correct: 	mgo "gopkg.in/mgo.v2"
16:08:10.719 WARN: This function name is not correct: 	"gopkg.in/mgo.v2/bson"
16:08:10.719 WARN: This function name is not correct: 	"gopkg.in/mgo.v2/dbtest"
16:08:10.719 WARN: This function name is not correct: )
16:08:10.719 WARN: This function name is not correct: 
16:08:10.719 WARN: This function name is not correct: var dbAccess *mgo.Database
16:08:10.720 WARN: This function name is not correct: 
16:08:10.720 INFO: Create the key db_test.go#TestMain
16:08:10.720 WARN: This function name is not correct: 	dir, dirErr := ioutil.TempDir("", "")
16:08:10.720 WARN: This function name is not correct: 	if dirErr != nil {
16:08:10.720 WARN: This function name is not correct: 		panic(dirErr)
16:08:10.720 WARN: This function name is not correct: 	}
16:08:10.720 WARN: This function name is not correct: 	server := dbtest.DBServer{}
16:08:10.721 WARN: This function name is not correct: 	server.SetPath(dir)
16:08:10.721 WARN: This function name is not correct: 	session := server.Session()
16:08:10.721 WARN: This function name is not correct: 	dbAccess = session.DB("revolt")
16:08:10.721 WARN: This function name is not correct: 	code := m.Run()
16:08:10.721 WARN: This function name is not correct: 	session.Close()
16:08:10.721 WARN: This function name is not correct: 	server.Stop()
16:08:10.721 WARN: This function name is not correct: 	if err := os.RemoveAll(dir); err != nil {
16:08:10.721 WARN: This function name is not correct: 		panic(err)
16:08:10.721 WARN: This function name is not correct: 	}
16:08:10.722 WARN: This function name is not correct: 	os.Exit(code)
16:08:10.722 WARN: This function name is not correct: }
16:08:10.722 WARN: This function name is not correct: 
16:08:10.722 INFO: Create the key db_test.go#TestFortressCreation
16:08:10.722 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.722 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.722 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.722 WARN: This function name is not correct: 	}
16:08:10.723 WARN: This function name is not correct: 	fortress, fortressErr := db.CreateFortress("Elliot", 1, 2)
16:08:10.723 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.723 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.CreateFortress: %v\n", fortressErr)
16:08:10.725 WARN: This function name is not correct: 	}
16:08:10.725 WARN: This function name is not correct: 	if fortress.ID == bson.ObjectId("") {
16:08:10.725 WARN: This function name is not correct: 		t.Error("Expected fortress.ID to not be empty")
16:08:10.726 WARN: This function name is not correct: 	}
16:08:10.726 WARN: This function name is not correct: 	if fortress.Name != "Elliot" {
16:08:10.726 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Name to be Elliot, got %v\n", fortress.Name)
16:08:10.726 WARN: This function name is not correct: 	}
16:08:10.727 WARN: This function name is not correct: 	if fortress.Loc.Lat != 1 {
16:08:10.727 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Loc.Lat to be 1, got %v\n", fortress.Loc.Lat)
16:08:10.727 WARN: This function name is not correct: 	}
16:08:10.727 WARN: This function name is not correct: 	if fortress.Loc.Lon != 2 {
16:08:10.728 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Loc.Lon to be 2, got %v\n", fortress.Loc.Lon)
16:08:10.728 WARN: This function name is not correct: 	}
16:08:10.728 WARN: This function name is not correct: }
16:08:10.728 WARN: This function name is not correct: 
16:08:10.728 INFO: Create the key db_test.go#TestFortressRetrievalWithID
16:08:10.728 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.728 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.728 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.729 WARN: This function name is not correct: 	}
16:08:10.729 WARN: This function name is not correct: 	fortress, fortressErr := db.CreateFortress("Elliot", 1, 2)
16:08:10.729 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.729 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.CreateFortress: %v\n", fortressErr)
16:08:10.729 WARN: This function name is not correct: 	}
16:08:10.733 WARN: This function name is not correct: 	id := fortress.ID
16:08:10.735 WARN: This function name is not correct: 	fortress, fortressErr = db.GetFortressWithID(id.Hex())
16:08:10.738 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.738 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.GetFortressWithID: %v\n", fortressErr)
16:08:10.738 WARN: This function name is not correct: 	}
16:08:10.738 WARN: This function name is not correct: 	if fortress.ID != id {
16:08:10.738 WARN: This function name is not correct: 		t.Errorf("Expected fortress.ID to be %v, got %v\n", id, fortress.ID)
16:08:10.738 WARN: This function name is not correct: 	}
16:08:10.738 WARN: This function name is not correct: 	if fortress.Name != "Elliot" {
16:08:10.738 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Name to be Elliot, got %v\n", fortress.Name)
16:08:10.739 WARN: This function name is not correct: 	}
16:08:10.739 WARN: This function name is not correct: 	if fortress.Loc.Lat != 1 {
16:08:10.739 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Loc.Lat to be 1, got %v\n", fortress.Loc.Lat)
16:08:10.739 WARN: This function name is not correct: 	}
16:08:10.739 WARN: This function name is not correct: 	if fortress.Loc.Lon != 2 {
16:08:10.739 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Loc.Lon to be 2, got %v\n", fortress.Loc.Lon)
16:08:10.739 WARN: This function name is not correct: 	}
16:08:10.739 WARN: This function name is not correct: }
16:08:10.739 WARN: This function name is not correct: 
16:08:10.739 INFO: Create the key db_test.go#TestFortressRetrievalWithLocation
16:08:10.741 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.741 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.741 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.741 WARN: This function name is not correct: 	}
16:08:10.741 WARN: This function name is not correct: 	fortress, fortressErr := db.CreateFortress("Paprika", 42, 42)
16:08:10.741 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.741 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.CreateFortress: %v\n", fortressErr)
16:08:10.742 WARN: This function name is not correct: 	}
16:08:10.742 WARN: This function name is not correct: 	id := fortress.ID
16:08:10.742 WARN: This function name is not correct: 	fortresses, fortressErr := db.GetFortressesWithLocation(Location{41.9999999, 41.9999999}, 10)
16:08:10.742 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.742 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.GetFortressWithLocation: %v\n", fortressErr)
16:08:10.742 WARN: This function name is not correct: 	}
16:08:10.742 WARN: This function name is not correct: 	if len(fortresses) != 1 {
16:08:10.742 WARN: This function name is not correct: 		t.Fatalf("Expected to find one fortress, got %v\n", len(fortresses))
16:08:10.743 WARN: This function name is not correct: 	}
16:08:10.743 WARN: This function name is not correct: 	fortress = fortresses[0]
16:08:10.743 WARN: This function name is not correct: 	if fortress.ID != id {
16:08:10.743 WARN: This function name is not correct: 		t.Errorf("Expected fortress.ID to be %v, got %v\n", id, fortress.ID)
16:08:10.743 WARN: This function name is not correct: 	}
16:08:10.743 WARN: This function name is not correct: }
16:08:10.743 WARN: This function name is not correct: 
16:08:10.743 INFO: Create the key db_test.go#TestFortressUpdate
16:08:10.743 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.744 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.744 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.744 WARN: This function name is not correct: 	}
16:08:10.744 WARN: This function name is not correct: 	fortress, fortressErr := db.CreateFortress("Parika", 1, 2)
16:08:10.744 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.744 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.CreateFortress: %v\n", fortressErr)
16:08:10.744 WARN: This function name is not correct: 	}
16:08:10.744 WARN: This function name is not correct: 	id := fortress.ID
16:08:10.744 WARN: This function name is not correct: 	fortress.Name = "Paprika"
16:08:10.745 WARN: This function name is not correct: 	fortress.Loc.Lat = 42
16:08:10.745 WARN: This function name is not correct: 	fortress.Loc.Lon = 24
16:08:10.745 WARN: This function name is not correct: 	fortressErr = db.UpdateFortress(fortress)
16:08:10.745 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.745 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.UpdateFortress: %v\n", fortressErr)
16:08:10.745 WARN: This function name is not correct: 	}
16:08:10.745 WARN: This function name is not correct: 	fortress, fortressErr = db.GetFortressWithID(id.Hex())
16:08:10.745 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.746 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.GetFortressWithID: %v\n", fortressErr)
16:08:10.746 WARN: This function name is not correct: 	}
16:08:10.746 WARN: This function name is not correct: 	if fortress.ID != id {
16:08:10.746 WARN: This function name is not correct: 		t.Errorf("Expected fortress.ID to be %v, got %v\n", id, fortress.ID)
16:08:10.746 WARN: This function name is not correct: 	}
16:08:10.746 WARN: This function name is not correct: 	if fortress.Name != "Paprika" {
16:08:10.746 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Name to be Paprika, got %v\n", fortress.Name)
16:08:10.746 WARN: This function name is not correct: 	}
16:08:10.746 WARN: This function name is not correct: 	if fortress.Loc.Lat != 42 {
16:08:10.746 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Loc.Lat to be 42, got %v\n", fortress.Loc.Lat)
16:08:10.747 WARN: This function name is not correct: 	}
16:08:10.747 WARN: This function name is not correct: 	if fortress.Loc.Lon != 24 {
16:08:10.747 WARN: This function name is not correct: 		t.Errorf("Expected fortress.Loc.Lon to be 24, got %v\n", fortress.Loc.Lon)
16:08:10.747 WARN: This function name is not correct: 	}
16:08:10.747 WARN: This function name is not correct: }
16:08:10.747 WARN: This function name is not correct: 
16:08:10.747 INFO: Create the key db_test.go#TestFortressDeletion
16:08:10.747 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.747 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.748 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.748 WARN: This function name is not correct: 	}
16:08:10.748 WARN: This function name is not correct: 	fortress, fortressErr := db.CreateFortress("Paprika", 1, 2)
16:08:10.748 WARN: This function name is not correct: 	if fortressErr != nil {
16:08:10.748 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.CreateFortress: %v\n", fortressErr)
16:08:10.748 WARN: This function name is not correct: 	}
16:08:10.748 WARN: This function name is not correct: 	id := fortress.ID
16:08:10.748 WARN: This function name is not correct: 	err := db.DeleteFortress(fortress)
16:08:10.748 WARN: This function name is not correct: 	if err != nil {
16:08:10.748 WARN: This function name is not correct: 		t.Fatalf("Error while calling db.DeleteFortress: %v\n", err)
16:08:10.749 WARN: This function name is not correct: 	}
16:08:10.749 WARN: This function name is not correct: 	fortress, fortressErr = db.GetFortressWithID(id.Hex())
16:08:10.749 WARN: This function name is not correct: 	if fortressErr != ErrNotFound {
16:08:10.749 WARN: This function name is not correct: 		t.Errorf("GetFortressBy ID did not return ErrNotFound: %v\n", fortressErr)
16:08:10.749 WARN: This function name is not correct: 	}
16:08:10.749 WARN: This function name is not correct: }
16:08:10.749 WARN: This function name is not correct: 
16:08:10.749 INFO: Create the key db_test.go#TestUserCreation
16:08:10.749 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.749 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.749 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.749 WARN: This function name is not correct: 	}
16:08:10.749 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.749 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.749 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.749 WARN: This function name is not correct: 	}
16:08:10.749 WARN: This function name is not correct: 	if user.ID == bson.ObjectId("") {
16:08:10.749 WARN: This function name is not correct: 		t.Error("Expected user.ID to not be empty")
16:08:10.749 WARN: This function name is not correct: 	}
16:08:10.749 WARN: This function name is not correct: 	if user.Username != "Rainbow-Dash" {
16:08:10.749 WARN: This function name is not correct: 		t.Errorf("Expected user.Userame to be Rainbow-Dash, got %v\n", user.Username)
16:08:10.749 WARN: This function name is not correct: 	}
16:08:10.750 WARN: This function name is not correct: 	if user.Email != "[email protected]" {
16:08:10.750 WARN: This function name is not correct: 		t.Errorf("Expected user.Email to be [email protected], got %v\n", user.Email)
16:08:10.750 WARN: This function name is not correct: 	}
16:08:10.750 WARN: This function name is not correct: }
16:08:10.750 WARN: This function name is not correct: 
16:08:10.750 INFO: Create the key db_test.go#TestUserGetWithCredentials
16:08:10.750 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.750 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.750 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.750 WARN: This function name is not correct: 	}
16:08:10.750 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.750 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.750 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.750 WARN: This function name is not correct: 	}
16:08:10.750 WARN: This function name is not correct: 	id := user.ID
16:08:10.750 WARN: This function name is not correct: 	password := user.Password
16:08:10.750 WARN: This function name is not correct: 	user, userErr = db.GetUserWithCredentials("[email protected]", "wonderbolts123")
16:08:10.751 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.751 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetUserWithCredentials: %v\n", userErr)
16:08:10.751 WARN: This function name is not correct: 	}
16:08:10.751 WARN: This function name is not correct: 	if id != user.ID {
16:08:10.751 WARN: This function name is not correct: 		t.Errorf("Expected user.ID to be %v, got %v\n", id, user.ID)
16:08:10.751 WARN: This function name is not correct: 	}
16:08:10.751 WARN: This function name is not correct: 	if user.Username != "Rainbow-Dash" {
16:08:10.751 WARN: This function name is not correct: 		t.Errorf("Expected user.Username to be Rainbow-Dash, got %v\n", user.Username)
16:08:10.751 WARN: This function name is not correct: 	}
16:08:10.751 WARN: This function name is not correct: 	if user.Email != "[email protected]" {
16:08:10.751 WARN: This function name is not correct: 		t.Errorf("Expected user.Email to be [email protected], got %v\n", user.Email)
16:08:10.751 WARN: This function name is not correct: 	}
16:08:10.751 WARN: This function name is not correct: 	if string(password) != string(user.Password) {
16:08:10.751 WARN: This function name is not correct: 		t.Errorf("Expected user.Password to be %v, got %v\n", string(password), string(user.Password))
16:08:10.751 WARN: This function name is not correct: 	}
16:08:10.751 WARN: This function name is not correct: }
16:08:10.751 WARN: This function name is not correct: 
16:08:10.752 INFO: Create the key db_test.go#TestUserGetWithEmail
16:08:10.752 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.752 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.752 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.752 WARN: This function name is not correct: 	}
16:08:10.752 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.752 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.752 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.752 WARN: This function name is not correct: 	}
16:08:10.752 WARN: This function name is not correct: 	id := user.ID
16:08:10.752 WARN: This function name is not correct: 	password := user.Password
16:08:10.752 WARN: This function name is not correct: 	user, userErr = db.GetUserWithEmail("[email protected]")
16:08:10.752 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.752 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetUserWithEmail: %v\n", userErr)
16:08:10.752 WARN: This function name is not correct: 	}
16:08:10.752 WARN: This function name is not correct: 	if id != user.ID {
16:08:10.752 WARN: This function name is not correct: 		t.Errorf("Expected user.ID to be %v, got %v\n", id, user.ID)
16:08:10.752 WARN: This function name is not correct: 	}
16:08:10.752 WARN: This function name is not correct: 	if user.Username != "Rainbow-Dash" {
16:08:10.752 WARN: This function name is not correct: 		t.Errorf("Expected user.Username to be Rainbow-Dash, got %v\n", user.Username)
16:08:10.752 WARN: This function name is not correct: 	}
16:08:10.753 WARN: This function name is not correct: 	if user.Email != "[email protected]" {
16:08:10.753 WARN: This function name is not correct: 		t.Errorf("Expected user.Email to be [email protected], got %v\n", user.Email)
16:08:10.753 WARN: This function name is not correct: 	}
16:08:10.753 WARN: This function name is not correct: 	if string(password) != string(user.Password) {
16:08:10.753 WARN: This function name is not correct: 		t.Errorf("Expected user.Password to be %v, got %v\n", string(password), string(user.Password))
16:08:10.753 WARN: This function name is not correct: 	}
16:08:10.753 WARN: This function name is not correct: }
16:08:10.753 WARN: This function name is not correct: 
16:08:10.753 INFO: Create the key db_test.go#TestUserGetWithName
16:08:10.753 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.753 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.753 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.753 WARN: This function name is not correct: 	}
16:08:10.753 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.753 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.753 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.753 WARN: This function name is not correct: 	}
16:08:10.753 WARN: This function name is not correct: 	id := user.ID
16:08:10.753 WARN: This function name is not correct: 	password := user.Password
16:08:10.753 WARN: This function name is not correct: 	user, userErr = db.GetUserWithName("Rainbow-Dash")
16:08:10.753 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.753 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetUserWithName: %v\n", userErr)
16:08:10.753 WARN: This function name is not correct: 	}
16:08:10.753 WARN: This function name is not correct: 	if id != user.ID {
16:08:10.753 WARN: This function name is not correct: 		t.Errorf("Expected user.ID to be %v, got %v\n", id, user.ID)
16:08:10.753 WARN: This function name is not correct: 	}
16:08:10.753 WARN: This function name is not correct: 	if user.Username != "Rainbow-Dash" {
16:08:10.754 WARN: This function name is not correct: 		t.Errorf("Expected user.Username to be Rainbow-Dash, got %v\n", user.Username)
16:08:10.754 WARN: This function name is not correct: 	}
16:08:10.754 WARN: This function name is not correct: 	if user.Email != "[email protected]" {
16:08:10.754 WARN: This function name is not correct: 		t.Errorf("Expected user.Email to be [email protected], got %v\n", user.Email)
16:08:10.754 WARN: This function name is not correct: 	}
16:08:10.754 WARN: This function name is not correct: 	if string(password) != string(user.Password) {
16:08:10.754 WARN: This function name is not correct: 		t.Errorf("Expected user.Password to be %v, got %v\n", string(password), string(user.Password))
16:08:10.754 WARN: This function name is not correct: 	}
16:08:10.754 WARN: This function name is not correct: }
16:08:10.754 WARN: This function name is not correct: 
16:08:10.754 INFO: Create the key db_test.go#TestUserGetWithToken
16:08:10.754 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.754 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.754 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.754 WARN: This function name is not correct: 	}
16:08:10.754 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.754 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.755 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.755 WARN: This function name is not correct: 	}
16:08:10.755 WARN: This function name is not correct: 	id := user.ID
16:08:10.755 WARN: This function name is not correct: 	password := user.Password
16:08:10.755 WARN: This function name is not correct: 	token, tokenError := db.CreateToken(user)
16:08:10.755 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.755 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateToken: %v\n", tokenError)
16:08:10.755 WARN: This function name is not correct: 	}
16:08:10.755 WARN: This function name is not correct: 	user, userErr = db.GetUserWithToken(token)
16:08:10.755 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.755 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetUserWithName: %v\n", userErr)
16:08:10.755 WARN: This function name is not correct: 	}
16:08:10.755 WARN: This function name is not correct: 	if id != user.ID {
16:08:10.755 WARN: This function name is not correct: 		t.Errorf("Expected user.ID to be %v, got %v\n", id, user.ID)
16:08:10.755 WARN: This function name is not correct: 	}
16:08:10.755 WARN: This function name is not correct: 	if user.Username != "Rainbow-Dash" {
16:08:10.755 WARN: This function name is not correct: 		t.Errorf("Expected user.Username to be Rainbow-Dash, got %v\n", user.Username)
16:08:10.755 WARN: This function name is not correct: 	}
16:08:10.755 WARN: This function name is not correct: 	if user.Email != "[email protected]" {
16:08:10.755 WARN: This function name is not correct: 		t.Errorf("Expected user.Email to be [email protected], got %v\n", user.Email)
16:08:10.755 WARN: This function name is not correct: 	}
16:08:10.755 WARN: This function name is not correct: 	if string(password) != string(user.Password) {
16:08:10.755 WARN: This function name is not correct: 		t.Errorf("Expected user.Password to be %v, got %v\n", string(password), string(user.Password))
16:08:10.755 WARN: This function name is not correct: 	}
16:08:10.756 WARN: This function name is not correct: }
16:08:10.756 WARN: This function name is not correct: 
16:08:10.756 INFO: Create the key db_test.go#TestUserGetByID
16:08:10.756 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.756 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.756 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.756 WARN: This function name is not correct: 	}
16:08:10.756 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.756 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.756 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.756 WARN: This function name is not correct: 	}
16:08:10.756 WARN: This function name is not correct: 	id := user.ID
16:08:10.756 WARN: This function name is not correct: 	password := user.Password
16:08:10.756 WARN: This function name is not correct: 	user, userErr = db.getUserWithID(id)
16:08:10.756 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.756 WARN: This function name is not correct: 		t.Fatalf("Error while calling getUserWithID: %v\n", userErr)
16:08:10.756 WARN: This function name is not correct: 	}
16:08:10.756 WARN: This function name is not correct: 	if id != user.ID {
16:08:10.756 WARN: This function name is not correct: 		t.Errorf("Expected user.ID to be %v, got %v\n", id, user.ID)
16:08:10.756 WARN: This function name is not correct: 	}
16:08:10.756 WARN: This function name is not correct: 	if user.Username != "Rainbow-Dash" {
16:08:10.756 WARN: This function name is not correct: 		t.Errorf("Expected user.Username to be Rainbow-Dash, got %v\n", user.Username)
16:08:10.756 WARN: This function name is not correct: 	}
16:08:10.756 WARN: This function name is not correct: 	if user.Email != "[email protected]" {
16:08:10.756 WARN: This function name is not correct: 		t.Errorf("Expected user.Email to be [email protected], got %v\n", user.Email)
16:08:10.756 WARN: This function name is not correct: 	}
16:08:10.756 WARN: This function name is not correct: 	if string(password) != string(user.Password) {
16:08:10.756 WARN: This function name is not correct: 		t.Errorf("Expected user.Password to be %v, got %v\n", string(password), string(user.Password))
16:08:10.757 WARN: This function name is not correct: 	}
16:08:10.757 WARN: This function name is not correct: }
16:08:10.757 WARN: This function name is not correct: 
16:08:10.757 INFO: Create the key db_test.go#TestUserGetWithFortress
16:08:10.757 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.757 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.757 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.757 WARN: This function name is not correct: 	}
16:08:10.757 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.757 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.757 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.757 WARN: This function name is not correct: 	}
16:08:10.757 WARN: This function name is not correct: 	id := user.ID
16:08:10.757 WARN: This function name is not correct: 	password := user.Password
16:08:10.757 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.757 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.757 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.757 WARN: This function name is not correct: 	}
16:08:10.757 WARN: This function name is not correct: 	user.Fortress = fortress.ID
16:08:10.757 WARN: This function name is not correct: 	userErr = db.UpdateUser(user)
16:08:10.757 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.757 WARN: This function name is not correct: 		t.Fatalf("Error while calling UpdateUser: %v\n", userErr)
16:08:10.757 WARN: This function name is not correct: 	}
16:08:10.757 WARN: This function name is not correct: 	users, userErr := db.GetUsersWithFortress(fortress.ID.Hex())
16:08:10.758 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.758 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetUsersFromFortress: %v\n", userErr)
16:08:10.758 WARN: This function name is not correct: 	}
16:08:10.758 WARN: This function name is not correct: 	if len(users) != 1 {
16:08:10.758 WARN: This function name is not correct: 		t.Fatalf("Expected to find one user, got %v\n", len(users))
16:08:10.758 WARN: This function name is not correct: 	}
16:08:10.758 WARN: This function name is not correct: 	user = users[0]
16:08:10.758 WARN: This function name is not correct: 	if id != user.ID {
16:08:10.758 WARN: This function name is not correct: 		t.Errorf("Expected user.ID to be %v, got %v\n", id, user.ID)
16:08:10.758 WARN: This function name is not correct: 	}
16:08:10.758 WARN: This function name is not correct: 	if user.Username != "Rainbow-Dash" {
16:08:10.758 WARN: This function name is not correct: 		t.Errorf("Expected user.Username to be Rainbow-Dash, got %v\n", user.Username)
16:08:10.758 WARN: This function name is not correct: 	}
16:08:10.758 WARN: This function name is not correct: 	if user.Email != "[email protected]" {
16:08:10.758 WARN: This function name is not correct: 		t.Errorf("Expected user.Email to be [email protected], got %v\n", user.Email)
16:08:10.758 WARN: This function name is not correct: 	}
16:08:10.758 WARN: This function name is not correct: 	if string(password) != string(user.Password) {
16:08:10.758 WARN: This function name is not correct: 		t.Errorf("Expected user.Password to be %v, got %v\n", string(password), string(user.Password))
16:08:10.758 WARN: This function name is not correct: 	}
16:08:10.759 WARN: This function name is not correct: }
16:08:10.759 WARN: This function name is not correct: 
16:08:10.759 INFO: Create the key db_test.go#TestTokenCreate
16:08:10.759 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.759 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.759 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.759 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.759 WARN: This function name is not correct: 	}
16:08:10.759 WARN: This function name is not correct: 	token, tokenError := db.CreateToken(user)
16:08:10.759 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.759 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateToken: %v\n", tokenError)
16:08:10.759 WARN: This function name is not correct: 	}
16:08:10.759 WARN: This function name is not correct: 	if token.UserID != user.ID {
16:08:10.759 WARN: This function name is not correct: 		t.Errorf("Expected token.UserID to be %v, got %v\n", user.ID, token.UserID)
16:08:10.759 WARN: This function name is not correct: 	}
16:08:10.759 WARN: This function name is not correct: }
16:08:10.759 WARN: This function name is not correct: 
16:08:10.759 INFO: Create the key db_test.go#TestTokenGetWithValue
16:08:10.759 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.759 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.759 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.759 WARN: This function name is not correct: 	}
16:08:10.759 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.759 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.759 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.760 WARN: This function name is not correct: 	}
16:08:10.760 WARN: This function name is not correct: 	token, tokenError := db.CreateToken(user)
16:08:10.760 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.760 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateToken: %v\n", tokenError)
16:08:10.760 WARN: This function name is not correct: 	}
16:08:10.760 WARN: This function name is not correct: 	tokenValue := token.Value
16:08:10.760 WARN: This function name is not correct: 	id := token.UserID
16:08:10.760 WARN: This function name is not correct: 	token, tokenError = db.GetTokenWithValue(tokenValue)
16:08:10.760 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.760 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetTokenWithValue: %v\n", tokenError)
16:08:10.760 WARN: This function name is not correct: 	}
16:08:10.760 WARN: This function name is not correct: 	if token.Value != tokenValue {
16:08:10.760 WARN: This function name is not correct: 		t.Errorf("Expected token.Value to be %v, got %v\n", tokenValue, token.Value)
16:08:10.760 WARN: This function name is not correct: 	}
16:08:10.760 WARN: This function name is not correct: 	if token.UserID != id {
16:08:10.760 WARN: This function name is not correct: 		t.Errorf("Expected token.UserID to be %v, got %v\n", user.ID, token.UserID)
16:08:10.760 WARN: This function name is not correct: 	}
16:08:10.760 WARN: This function name is not correct: }
16:08:10.760 WARN: This function name is not correct: 
16:08:10.760 INFO: Create the key db_test.go#TestTokenGetWithUser
16:08:10.760 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.760 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.760 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.760 WARN: This function name is not correct: 	}
16:08:10.760 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.760 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.760 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.760 WARN: This function name is not correct: 	}
16:08:10.761 WARN: This function name is not correct: 	token, tokenError := db.CreateToken(user)
16:08:10.761 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.761 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateToken: %v\n", tokenError)
16:08:10.761 WARN: This function name is not correct: 	}
16:08:10.761 WARN: This function name is not correct: 	tokenValue := token.Value
16:08:10.761 WARN: This function name is not correct: 	id := token.UserID
16:08:10.761 WARN: This function name is not correct: 	tokens, tokenError := db.GetTokensWithUser(user)
16:08:10.761 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.761 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateToken: %v\n", tokenError)
16:08:10.761 WARN: This function name is not correct: 	}
16:08:10.761 WARN: This function name is not correct: 	if len(tokens) != 1 {
16:08:10.761 WARN: This function name is not correct: 		t.Fatalf("Expected to find one token, got %v\n", len(tokens))
16:08:10.761 WARN: This function name is not correct: 	}
16:08:10.761 WARN: This function name is not correct: 	token = tokens[0]
16:08:10.761 WARN: This function name is not correct: 	if token.Value != tokenValue {
16:08:10.761 WARN: This function name is not correct: 		t.Errorf("Expected token.Value to be %v, got %v\n", tokenValue, token.Value)
16:08:10.761 WARN: This function name is not correct: 	}
16:08:10.761 WARN: This function name is not correct: 	if token.UserID != id {
16:08:10.761 WARN: This function name is not correct: 		t.Errorf("Expected token.UserID to be %v, got %v\n", id, token.UserID)
16:08:10.761 WARN: This function name is not correct: 	}
16:08:10.761 WARN: This function name is not correct: }
16:08:10.761 WARN: This function name is not correct: 
16:08:10.761 INFO: Create the key db_test.go#TestTokenDelete
16:08:10.761 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.761 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.761 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.761 WARN: This function name is not correct: 	}
16:08:10.761 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.762 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.762 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.762 WARN: This function name is not correct: 	}
16:08:10.762 WARN: This function name is not correct: 	token, tokenError := db.CreateToken(user)
16:08:10.762 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.762 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateToken: %v\n", tokenError)
16:08:10.762 WARN: This function name is not correct: 	}
16:08:10.762 WARN: This function name is not correct: 	tokenValue := token.Value
16:08:10.762 WARN: This function name is not correct: 	tokenError = db.DeleteToken(token)
16:08:10.762 WARN: This function name is not correct: 	if tokenError != nil {
16:08:10.762 WARN: This function name is not correct: 		t.Fatalf("Error while calling DeleteToken: %v\n", tokenError)
16:08:10.762 WARN: This function name is not correct: 	}
16:08:10.762 WARN: This function name is not correct: 	token, tokenError = db.GetTokenWithValue(tokenValue)
16:08:10.762 WARN: This function name is not correct: 	if tokenError != ErrNotFound {
16:08:10.762 WARN: This function name is not correct: 		t.Errorf("GetTokenWithValue did not return ErrNotFound: %v\n", tokenError)
16:08:10.762 WARN: This function name is not correct: 	}
16:08:10.762 WARN: This function name is not correct: }
16:08:10.762 WARN: This function name is not correct: 
16:08:10.762 INFO: Create the key db_test.go#TestScavengingCreate
16:08:10.762 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.762 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.762 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.762 WARN: This function name is not correct: 	}
16:08:10.762 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.762 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.762 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.762 WARN: This function name is not correct: 	}
16:08:10.762 WARN: This function name is not correct: 	scav, scavError := db.CreateScavenging(user)
16:08:10.762 WARN: This function name is not correct: 	if scavError != nil {
16:08:10.762 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateScavenging: %v\n", scavError)
16:08:10.762 WARN: This function name is not correct: 	}
16:08:10.763 WARN: This function name is not correct: 	if scav.UserID != user.ID {
16:08:10.763 WARN: This function name is not correct: 		t.Errorf("Expected scav.UserID to be %v, got %v\n", user.ID, scav.ID)
16:08:10.763 WARN: This function name is not correct: 	}
16:08:10.763 WARN: This function name is not correct: }
16:08:10.763 WARN: This function name is not correct: 
16:08:10.763 INFO: Create the key db_test.go#TestScavengingGetWithUser
16:08:10.763 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.763 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.763 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.763 WARN: This function name is not correct: 	}
16:08:10.763 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.763 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.763 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.763 WARN: This function name is not correct: 	}
16:08:10.763 WARN: This function name is not correct: 	scav, scavError := db.CreateScavenging(user)
16:08:10.763 WARN: This function name is not correct: 	if scavError != nil {
16:08:10.763 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateScavenging: %v\n", scavError)
16:08:10.763 WARN: This function name is not correct: 	}
16:08:10.763 WARN: This function name is not correct: 	scavId := scav.ID
16:08:10.763 WARN: This function name is not correct: 	uId := scav.UserID
16:08:10.763 WARN: This function name is not correct: 	energy := scav.Energy
16:08:10.763 WARN: This function name is not correct: 	scav, scavError = db.GetScavengingWithUser(user)
16:08:10.763 WARN: This function name is not correct: 	if scavError != nil {
16:08:10.763 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetScavengingWithUser: %v\n", scavError)
16:08:10.763 WARN: This function name is not correct: 	}
16:08:10.763 WARN: This function name is not correct: 	if scav.ID != scavId {
16:08:10.763 WARN: This function name is not correct: 		t.Errorf("Expected scav.ID to be %v, got %v\n", scavId, scav.ID)
16:08:10.763 WARN: This function name is not correct: 	}
16:08:10.763 WARN: This function name is not correct: 	if scav.UserID != uId {
16:08:10.763 WARN: This function name is not correct: 		t.Errorf("Expected scav.UserID to be %v, got %v\n", uId, scav.UserID)
16:08:10.764 WARN: This function name is not correct: 	}
16:08:10.764 WARN: This function name is not correct: 	if scav.Energy != energy {
16:08:10.764 WARN: This function name is not correct: 		t.Errorf("Expected scva.Energy to be %v, got %v\n", energy, scav.Energy)
16:08:10.764 WARN: This function name is not correct: 	}
16:08:10.764 WARN: This function name is not correct: }
16:08:10.764 WARN: This function name is not correct: 
16:08:10.764 INFO: Create the key db_test.go#TestScavengingUpdate
16:08:10.764 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.764 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.764 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.764 WARN: This function name is not correct: 	}
16:08:10.764 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.764 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.764 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.764 WARN: This function name is not correct: 	}
16:08:10.764 WARN: This function name is not correct: 	scav, scavError := db.CreateScavenging(user)
16:08:10.764 WARN: This function name is not correct: 	if scavError != nil {
16:08:10.764 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateScavenging: %v\n", scavError)
16:08:10.765 WARN: This function name is not correct: 	}
16:08:10.765 WARN: This function name is not correct: 	scavId := scav.ID
16:08:10.765 WARN: This function name is not correct: 	uId := scav.UserID
16:08:10.765 WARN: This function name is not correct: 	scav.Energy = 42
16:08:10.765 WARN: This function name is not correct: 	scavError = db.UpdateScavenging(scav)
16:08:10.765 WARN: This function name is not correct: 	if scavError != nil {
16:08:10.766 WARN: This function name is not correct: 		t.Fatalf("Error while calling UpdateScavenging: %v\n", scavError)
16:08:10.767 WARN: This function name is not correct: 	}
16:08:10.769 WARN: This function name is not correct: 	if scavId != scav.ID {
16:08:10.769 WARN: This function name is not correct: 		t.Errorf("Expected scav.ID to be %v, got %v\n", scavId, scav.ID)
16:08:10.769 WARN: This function name is not correct: 	}
16:08:10.769 WARN: This function name is not correct: 	if scav.UserID != uId {
16:08:10.769 WARN: This function name is not correct: 		t.Errorf("Expected scav.UserID to be %v, got %v\n", uId, scav.UserID)
16:08:10.769 WARN: This function name is not correct: 	}
16:08:10.769 WARN: This function name is not correct: 	if scav.Energy != 42 {
16:08:10.769 WARN: This function name is not correct: 		t.Errorf("Exepected scav.Energy to be 42, got %v\n", scav.Energy)
16:08:10.769 WARN: This function name is not correct: 	}
16:08:10.769 WARN: This function name is not correct: }
16:08:10.769 WARN: This function name is not correct: 
16:08:10.769 INFO: Create the key db_test.go#TestScavengingDelete
16:08:10.769 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.769 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.769 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.769 WARN: This function name is not correct: 	}
16:08:10.769 WARN: This function name is not correct: 	user, userErr := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.769 WARN: This function name is not correct: 	if userErr != nil {
16:08:10.769 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userErr)
16:08:10.769 WARN: This function name is not correct: 	}
16:08:10.769 WARN: This function name is not correct: 	scav, scavError := db.CreateScavenging(user)
16:08:10.769 WARN: This function name is not correct: 	if scavError != nil {
16:08:10.769 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateScavenging: %v\n", scavError)
16:08:10.769 WARN: This function name is not correct: 	}
16:08:10.769 WARN: This function name is not correct: 	scavError = db.DeleteScavenging(scav)
16:08:10.770 WARN: This function name is not correct: 	if scavError != nil {
16:08:10.770 WARN: This function name is not correct: 		t.Fatalf("Error while calling DeleteScavenging: %v\n", scavError)
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: 	_, scavError = db.GetScavengingWithUser(user)
16:08:10.770 WARN: This function name is not correct: 	if scavError != ErrNotFound {
16:08:10.770 WARN: This function name is not correct: 		t.Fatalf("Unexpected error while calling GetScavengingWithUser: %v\n", scavError)
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: 	if scavError == nil {
16:08:10.770 WARN: This function name is not correct: 		t.Errorf("GetScavengingWithUser did not return ErrNotFound\n")
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: }
16:08:10.770 WARN: This function name is not correct: 
16:08:10.770 INFO: Create the key db_test.go#TestInterestCreate
16:08:10.770 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.770 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.770 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.770 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.770 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.770 WARN: This function name is not correct: 	if interError != nil {
16:08:10.770 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: 	if inter.Loc.Lon != 42 {
16:08:10.770 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lon to be 42, got %v\n", inter.Loc.Lon)
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: 	if inter.Loc.Lat != 42 {
16:08:10.770 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lat to be 42, got %v\n", inter.Loc.Lon)
16:08:10.770 WARN: This function name is not correct: 	}
16:08:10.770 WARN: This function name is not correct: 	if inter.Fortress != fortress.ID {
16:08:10.771 WARN: This function name is not correct: 		t.Errorf("Expected inter.Fortress to be %v, got %v\n", fortress.ID, inter.Fortress)
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: 	if inter.Game != "Cloud-Kicking" {
16:08:10.771 WARN: This function name is not correct: 		t.Errorf("Expected inter.Game to be Cloud-Kicking, got %v\n", inter.Game)
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: 	if inter.HP != 42 {
16:08:10.771 WARN: This function name is not correct: 		t.Errorf("Expected inter.HP to be 42, got %v", inter.HP)
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: }
16:08:10.771 WARN: This function name is not correct: 
16:08:10.771 INFO: Create the key db_test.go#TestInterestGetWithLocation
16:08:10.771 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.771 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.771 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.771 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.771 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.771 WARN: This function name is not correct: 	if interError != nil {
16:08:10.771 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: 	interId := inter.ID
16:08:10.771 WARN: This function name is not correct: 	inters, interError := db.GetInterestsWithLocation(Location{41.9999999, 41.9999999}, 1)
16:08:10.771 WARN: This function name is not correct: 	if interError != nil {
16:08:10.771 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetInterestWithLocation: %v\n", interError)
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: 	if len(inters) != 1 {
16:08:10.771 WARN: This function name is not correct: 		t.Fatalf("Expected to find one fortress, got %v\n", len(inters))
16:08:10.771 WARN: This function name is not correct: 	}
16:08:10.771 WARN: This function name is not correct: 	inter = inters[0]
16:08:10.772 WARN: This function name is not correct: 	if interId != inter.ID {
16:08:10.772 WARN: This function name is not correct: 		t.Errorf("Expected inter.ID to be %v, got %v\n", interId, inter.ID)
16:08:10.772 WARN: This function name is not correct: 	}
16:08:10.772 WARN: This function name is not correct: 	if inter.Loc.Lon != 42 {
16:08:10.772 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lon to be 42, got %v\n", inter.Loc.Lon)
16:08:10.772 WARN: This function name is not correct: 	}
16:08:10.772 WARN: This function name is not correct: 	if inter.Loc.Lat != 42 {
16:08:10.772 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lat to be 42, got %v\n", inter.Loc.Lon)
16:08:10.772 WARN: This function name is not correct: 	}
16:08:10.772 WARN: This function name is not correct: 	if inter.Fortress != fortress.ID {
16:08:10.772 WARN: This function name is not correct: 		t.Errorf("Expected inter.Fortress to be %v, got %v\n", fortress.ID, inter.Fortress)
16:08:10.772 WARN: This function name is not correct: 	}
16:08:10.772 WARN: This function name is not correct: 	if inter.Game != "Cloud-Kicking" {
16:08:10.772 WARN: This function name is not correct: 		t.Errorf("Expected inter.Game to be Cloud-Kicking, got %v\n", inter.Game)
16:08:10.772 WARN: This function name is not correct: 	}
16:08:10.772 WARN: This function name is not correct: 	if inter.HP != 42 {
16:08:10.772 WARN: This function name is not correct: 		t.Errorf("Expected inter.HP to be 42, got %v", inter.HP)
16:08:10.772 WARN: This function name is not correct: 	}
16:08:10.772 WARN: This function name is not correct: }
16:08:10.772 WARN: This function name is not correct: 
16:08:10.772 INFO: Create the key db_test.go#TestInterestGetWithFortress
16:08:10.772 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.772 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.772 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.772 WARN: This function name is not correct: 	}
16:08:10.772 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.772 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.772 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.773 WARN: This function name is not correct: 	if interError != nil {
16:08:10.773 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	interId := inter.ID
16:08:10.773 WARN: This function name is not correct: 	inters, interError := db.GetInterestsWithFortress(fortress.ID.Hex())
16:08:10.773 WARN: This function name is not correct: 	if interError != nil {
16:08:10.773 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetInterestWithLocation: %v\n", interError)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	if len(inters) != 1 {
16:08:10.773 WARN: This function name is not correct: 		t.Fatalf("Expected to find one fortress, got %v\n", len(inters))
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	inter = inters[0]
16:08:10.773 WARN: This function name is not correct: 	if interId != inter.ID {
16:08:10.773 WARN: This function name is not correct: 		t.Errorf("Expected inter.ID to be %v, got %v\n", interId, inter.ID)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	if inter.Loc.Lon != 42 {
16:08:10.773 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lon to be 42, got %v\n", inter.Loc.Lon)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	if inter.Loc.Lat != 42 {
16:08:10.773 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lat to be 42, got %v\n", inter.Loc.Lon)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	if inter.Fortress != fortress.ID {
16:08:10.773 WARN: This function name is not correct: 		t.Errorf("Expected inter.Fortress to be %v, got %v\n", fortress.ID, inter.Fortress)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	if inter.Game != "Cloud-Kicking" {
16:08:10.773 WARN: This function name is not correct: 		t.Errorf("Expected inter.Game to be Cloud-Kicking, got %v\n", inter.Game)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: 	if inter.HP != 42 {
16:08:10.773 WARN: This function name is not correct: 		t.Errorf("Expected inter.HP to be 42, got %v", inter.HP)
16:08:10.773 WARN: This function name is not correct: 	}
16:08:10.773 WARN: This function name is not correct: }
16:08:10.773 WARN: This function name is not correct: 
16:08:10.773 INFO: Create the key db_test.go#TestInterestGetWithId
16:08:10.773 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.773 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.774 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.774 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.774 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.774 WARN: This function name is not correct: 	if interError != nil {
16:08:10.774 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: 	interId := inter.ID
16:08:10.774 WARN: This function name is not correct: 	inter, interError = db.GetInterestWithID(interId.Hex())
16:08:10.774 WARN: This function name is not correct: 	if inter.Loc.Lon != 42 {
16:08:10.774 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lon to be 42, got %v\n", inter.Loc.Lon)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: 	if inter.Loc.Lat != 42 {
16:08:10.774 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lat to be 42, got %v\n", inter.Loc.Lon)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: 	if inter.Fortress != fortress.ID {
16:08:10.774 WARN: This function name is not correct: 		t.Errorf("Expected inter.Fortress to be %v, got %v\n", fortress.ID, inter.Fortress)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: 	if inter.Game != "Cloud-Kicking" {
16:08:10.774 WARN: This function name is not correct: 		t.Errorf("Expected inter.Game to be Cloud-Kicking, got %v\n", inter.Game)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: 	if inter.HP != 42 {
16:08:10.774 WARN: This function name is not correct: 		t.Errorf("Expected inter.HP to be 42, got %v", inter.HP)
16:08:10.774 WARN: This function name is not correct: 	}
16:08:10.774 WARN: This function name is not correct: }
16:08:10.774 WARN: This function name is not correct: 
16:08:10.774 INFO: Create the key db_test.go#TestInterestUpdate
16:08:10.774 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.774 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.774 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.775 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.775 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.775 WARN: This function name is not correct: 	if interError != nil {
16:08:10.775 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	interId := inter.ID
16:08:10.775 WARN: This function name is not correct: 	inter.Game = "Cloud-Busting"
16:08:10.775 WARN: This function name is not correct: 	interError = db.UpdateInterest(inter)
16:08:10.775 WARN: This function name is not correct: 	if interError != nil {
16:08:10.775 WARN: This function name is not correct: 		t.Fatalf("Error while calling UpdateInterest: %v\n", interError)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	inter, interError = db.GetInterestWithID(interId.Hex())
16:08:10.775 WARN: This function name is not correct: 	if inter.Loc.Lon != 42 {
16:08:10.775 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lon to be 42, got %v\n", inter.Loc.Lon)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	if inter.Loc.Lat != 42 {
16:08:10.775 WARN: This function name is not correct: 		t.Errorf("Expected inter.Loc.Lat to be 42, got %v\n", inter.Loc.Lon)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	if inter.Fortress != fortress.ID {
16:08:10.775 WARN: This function name is not correct: 		t.Errorf("Expected inter.Fortress to be %v, got %v\n", fortress.ID, inter.Fortress)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	if inter.Game != "Cloud-Busting" {
16:08:10.775 WARN: This function name is not correct: 		t.Errorf("Expected inter.Game to be Cloud-Busting, got %v\n", inter.Game)
16:08:10.775 WARN: This function name is not correct: 	}
16:08:10.775 WARN: This function name is not correct: 	if inter.HP != 42 {
16:08:10.776 WARN: This function name is not correct: 		t.Errorf("Expected inter.HP to be 42, got %v", inter.HP)
16:08:10.776 WARN: This function name is not correct: 	}
16:08:10.776 WARN: This function name is not correct: }
16:08:10.776 WARN: This function name is not correct: 
16:08:10.776 INFO: Create the key db_test.go#TestInterestDelete
16:08:10.776 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.776 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.776 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.776 WARN: This function name is not correct: 	}
16:08:10.776 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.776 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.776 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.776 WARN: This function name is not correct: 	}
16:08:10.776 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.776 WARN: This function name is not correct: 	if interError != nil {
16:08:10.776 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.776 WARN: This function name is not correct: 	}
16:08:10.776 WARN: This function name is not correct: 	interId := inter.ID
16:08:10.776 WARN: This function name is not correct: 	interError = db.DeleteInterest(inter)
16:08:10.776 WARN: This function name is not correct: 	if interError != nil {
16:08:10.776 WARN: This function name is not correct: 		t.Fatalf("Error while calling DeleteScavenging: %v\n", interError)
16:08:10.776 WARN: This function name is not correct: 	}
16:08:10.776 WARN: This function name is not correct: 	_, interError = db.GetInterestWithID(interId.Hex())
16:08:10.776 WARN: This function name is not correct: 	if interError != ErrNotFound {
16:08:10.777 WARN: This function name is not correct: 		t.Fatalf("Unexpected error while calling GetInterestWithID: %v\n", interError)
16:08:10.777 WARN: This function name is not correct: 	}
16:08:10.777 WARN: This function name is not correct: 	if interError == nil {
16:08:10.777 WARN: This function name is not correct: 		t.Errorf("GetScavengingWithUser did not return ErrNotFound\n")
16:08:10.777 WARN: This function name is not correct: 	}
16:08:10.777 WARN: This function name is not correct: }
16:08:10.777 WARN: This function name is not correct: 
16:08:10.777 INFO: Create the key db_test.go#TestInterestActonCreate
16:08:10.777 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.777 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.777 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.777 WARN: This function name is not correct: 	}
16:08:10.777 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.777 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.777 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.777 WARN: This function name is not correct: 	}
16:08:10.777 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.777 WARN: This function name is not correct: 	if interError != nil {
16:08:10.777 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.777 WARN: This function name is not correct: 	}
16:08:10.777 WARN: This function name is not correct: 	user, userError := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.777 WARN: This function name is not correct: 	if userError != nil {
16:08:10.777 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userError)
16:08:10.777 WARN: This function name is not correct: 	}
16:08:10.777 WARN: This function name is not correct: 	timestamp := time.Now().Truncate(time.Millisecond)
16:08:10.777 WARN: This function name is not correct: 	interAction, interActionError := db.CreateInterestAction(user, inter, timestamp)
16:08:10.777 WARN: This function name is not correct: 	if interActionError != nil {
16:08:10.778 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterestAction: %v\n", interActionError)
16:08:10.778 WARN: This function name is not correct: 	}
16:08:10.778 WARN: This function name is not correct: 	if interAction.User != user.ID {
16:08:10.778 WARN: This function name is not correct: 		t.Errorf("Expected interAction.User to be %v, got %v", user.ID, interAction.ID)
16:08:10.778 WARN: This function name is not correct: 	}
16:08:10.778 WARN: This function name is not correct: 	if interAction.Interest != inter.ID {
16:08:10.778 WARN: This function name is not correct: 		t.Errorf("Expected interAction.Interest to be %v, got %v", inter.ID, interAction.Interest)
16:08:10.778 WARN: This function name is not correct: 	}
16:08:10.778 WARN: This function name is not correct: 	if interAction.Time != timestamp {
16:08:10.778 WARN: This function name is not correct: 		t.Errorf("Expected interAction.Time to be %v, got %v", timestamp, interAction.Time)
16:08:10.778 WARN: This function name is not correct: 	}
16:08:10.778 WARN: This function name is not correct: }
16:08:10.778 WARN: This function name is not correct: 
16:08:10.778 INFO: Create the key db_test.go#TestInterestActionGetWithUserAndInterest
16:08:10.778 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.778 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.779 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.779 WARN: This function name is not correct: 	}
16:08:10.779 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.779 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.779 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.779 WARN: This function name is not correct: 	}
16:08:10.779 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.779 WARN: This function name is not correct: 	if interError != nil {
16:08:10.779 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.779 WARN: This function name is not correct: 	}
16:08:10.779 WARN: This function name is not correct: 	user, userError := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.779 WARN: This function name is not correct: 	if userError != nil {
16:08:10.779 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userError)
16:08:10.779 WARN: This function name is not correct: 	}
16:08:10.779 WARN: This function name is not correct: 	timestamp := time.Now().Truncate(time.Millisecond)
16:08:10.779 WARN: This function name is not correct: 	interAction, interActionError := db.CreateInterestAction(user, inter, timestamp)
16:08:10.779 WARN: This function name is not correct: 	if interActionError != nil {
16:08:10.779 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterestAction: %v\n", interActionError)
16:08:10.779 WARN: This function name is not correct: 	}
16:08:10.779 WARN: This function name is not correct: 	interAction, interActionError = db.GetInterestActionWithUserAndInterest(user.ID.Hex(), inter.ID.Hex())
16:08:10.779 WARN: This function name is not correct: 	if interActionError != nil {
16:08:10.779 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetInterestActionWithUserAndInterest: %v\n", interActionError)
16:08:10.779 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	if interAction.User != user.ID {
16:08:10.780 WARN: This function name is not correct: 		t.Errorf("Expected interAction.User to be %v, got %v", user.ID, interAction.ID)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	if interAction.Interest != inter.ID {
16:08:10.780 WARN: This function name is not correct: 		t.Errorf("Expected interAction.Interest to be %v, got %v", inter.ID, interAction.Interest)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	if interAction.Time != timestamp {
16:08:10.780 WARN: This function name is not correct: 		t.Errorf("Expected interAction.Time to be %v, got %v", timestamp, interAction.Time)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: }
16:08:10.780 WARN: This function name is not correct: 
16:08:10.780 INFO: Create the key db_test.go#TestInterestActionGetWithInterest
16:08:10.780 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.780 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.780 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.780 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.780 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.780 WARN: This function name is not correct: 	if interError != nil {
16:08:10.780 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	user, userError := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.780 WARN: This function name is not correct: 	if userError != nil {
16:08:10.780 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userError)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	timestamp := time.Now().Truncate(time.Millisecond)
16:08:10.780 WARN: This function name is not correct: 	interAction, interActionError := db.CreateInterestAction(user, inter, timestamp)
16:08:10.780 WARN: This function name is not correct: 	if interActionError != nil {
16:08:10.780 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterestAction: %v\n", interActionError)
16:08:10.780 WARN: This function name is not correct: 	}
16:08:10.780 WARN: This function name is not correct: 	interActions, interActionError := db.GetInterestActionsWithInterest(inter.ID.Hex())
16:08:10.780 WARN: This function name is not correct: 	if interActionError != nil {
16:08:10.781 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetInterestActionsWithInterest: %v\n", interActionError)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	if len(interActions) != 1 {
16:08:10.781 WARN: This function name is not correct: 		t.Fatalf("Expected to find one interest action, got %v\n", len(interActions))
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	interAction = interActions[0]
16:08:10.781 WARN: This function name is not correct: 	if interAction.User != user.ID {
16:08:10.781 WARN: This function name is not correct: 		t.Errorf("Expected interAction.User to be %v, got %v", user.ID, interAction.ID)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	if interAction.Interest != inter.ID {
16:08:10.781 WARN: This function name is not correct: 		t.Errorf("Expected interAction.Interest to be %v, got %v", inter.ID, interAction.Interest)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	if interAction.Time != timestamp {
16:08:10.781 WARN: This function name is not correct: 		t.Errorf("Expected interAction.Time to be %v, got %v", timestamp, interAction.Time)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: }
16:08:10.781 WARN: This function name is not correct: 
16:08:10.781 INFO: Create the key db_test.go#TestInterestActionDelete
16:08:10.781 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.781 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.781 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.781 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.781 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	inter, interError := db.CreateInterest(fortress, Location{42, 42}, 42, "Cloud-Kicking")
16:08:10.781 WARN: This function name is not correct: 	if interError != nil {
16:08:10.781 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterest: %v\n", interError)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	user, userError := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.781 WARN: This function name is not correct: 	if userError != nil {
16:08:10.781 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userError)
16:08:10.781 WARN: This function name is not correct: 	}
16:08:10.781 WARN: This function name is not correct: 	timestamp := time.Now().Truncate(time.Millisecond)
16:08:10.781 WARN: This function name is not correct: 	interAction, interActionError := db.CreateInterestAction(user, inter, timestamp)
16:08:10.781 WARN: This function name is not correct: 	if interActionError != nil {
16:08:10.781 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateInterestAction: %v\n", interActionError)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: 	interActionError = db.DeleteInterestAction(interAction)
16:08:10.782 WARN: This function name is not correct: 	if interActionError != nil {
16:08:10.782 WARN: This function name is not correct: 		t.Fatalf("Error while calling DeleteInterestAction: %v\n", interActionError)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: 	_, interActionError = db.GetInterestActionWithUserAndInterest(user.ID.Hex(), inter.ID.Hex())
16:08:10.782 WARN: This function name is not correct: 	if interActionError != ErrNotFound {
16:08:10.782 WARN: This function name is not correct: 		t.Fatalf("Unexpected error while calling GetInterestActionWithUserAndInterest: %v\n", interActionError)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: 	if interActionError == nil {
16:08:10.782 WARN: This function name is not correct: 		t.Errorf("GetInterestWithID did not return ErrNotFound\n")
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: }
16:08:10.782 WARN: This function name is not correct: 
16:08:10.782 INFO: Create the key db_test.go#TestPollCreate
16:08:10.782 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.782 WARN: This function name is not correct: 	timer := time.Now()
16:08:10.782 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.782 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.782 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: 	poll, pollErr := db.CreatePoll("Is Rainbow-Dash best pony ?", fortress.ID.Hex(), timer)
16:08:10.782 WARN: This function name is not correct: 	if pollErr != nil {
16:08:10.782 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreatePoll: %v\n", pollErr)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: 	if poll.Question != "Is Rainbow-Dash best pony ?" {
16:08:10.782 WARN: This function name is not correct: 		t.Errorf("Expected poll.Question to be %v, got %v", "", poll.Question)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: 	if poll.Fortress != fortress.ID.Hex() {
16:08:10.782 WARN: This function name is not correct: 		t.Errorf("Expected poll.Fortress to be %v, got %v", fortress.ID.Hex(), poll.Fortress)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: 	if poll.CloseTime != timer {
16:08:10.782 WARN: This function name is not correct: 		t.Errorf("Expected poll.CloseTime to be %v, got %v", timer, poll.CloseTime)
16:08:10.782 WARN: This function name is not correct: 	}
16:08:10.782 WARN: This function name is not correct: }
16:08:10.782 WARN: This function name is not correct: 
16:08:10.782 INFO: Create the key db_test.go#TestPollGetById
16:08:10.782 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.783 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.783 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: 	timer := time.Now().Truncate(time.Millisecond)
16:08:10.783 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.783 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.783 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: 	poll, pollErr := db.CreatePoll("Is Rainbow-Dash best pony ?", fortress.ID.Hex(), timer)
16:08:10.783 WARN: This function name is not correct: 	if pollErr != nil {
16:08:10.783 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreatePoll: %v\n", pollErr)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: 	id := poll.ID
16:08:10.783 WARN: This function name is not correct: 	poll, pollErr = db.GetPollById(id.Hex())
16:08:10.783 WARN: This function name is not correct: 	if pollErr != nil {
16:08:10.783 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetPollById: %v\n", pollErr)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: 	if poll.ID != id {
16:08:10.783 WARN: This function name is not correct: 		t.Errorf("Expected poll.ID to be %v, got %v", id, poll.ID)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: 	if poll.Question != "Is Rainbow-Dash best pony ?" {
16:08:10.783 WARN: This function name is not correct: 		t.Errorf("Expected poll.Question to be %v, got %v", "Is Rainbow-Dash best pony ?", poll.Question)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: 	if poll.Fortress != fortress.ID.Hex() {
16:08:10.783 WARN: This function name is not correct: 		t.Errorf("Expected poll.Fortress to be %v, got %v", fortress.ID.Hex(), poll.Fortress)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: 	if poll.CloseTime != timer {
16:08:10.783 WARN: This function name is not correct: 		t.Errorf("Expected poll.CloseTime to be %v, got %v", timer, poll.CloseTime)
16:08:10.783 WARN: This function name is not correct: 	}
16:08:10.783 WARN: This function name is not correct: }
16:08:10.783 WARN: This function name is not correct: 
16:08:10.783 INFO: Create the key db_test.go#TestPollDelete
16:08:10.784 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.784 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.784 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.784 WARN: This function name is not correct: 	}
16:08:10.784 WARN: This function name is not correct: 	timer := time.Now().Truncate(time.Millisecond)
16:08:10.784 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.784 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.784 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.784 WARN: This function name is not correct: 	}
16:08:10.784 WARN: This function name is not correct: 	poll, pollErr := db.CreatePoll("Is Rainbow-Dash best pony ?", fortress.ID.Hex(), timer)
16:08:10.784 WARN: This function name is not correct: 	if pollErr != nil {
16:08:10.784 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreatePoll: %v\n", pollErr)
16:08:10.784 WARN: This function name is not correct: 	}
16:08:10.784 WARN: This function name is not correct: 	pollErr = db.DeletePollId(poll.ID.Hex())
16:08:10.784 WARN: This function name is not correct: 	if pollErr != ErrNotFound {
16:08:10.784 WARN: This function name is not correct: 		t.Fatalf("Unexpected error while calling DeletePollId: %v\n", pollErr)
16:08:10.784 WARN: This function name is not correct: 	}
16:08:10.784 WARN: This function name is not correct: }
16:08:10.784 INFO: Create the key db_test.go#TestPollVote
16:08:10.784 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.784 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.784 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.784 WARN: This function name is not correct: 	}
16:08:10.784 WARN: This function name is not correct: 	timer := time.Now().Truncate(time.Millisecond).Add(time.Hour * 48)
16:08:10.785 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.785 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.785 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.785 WARN: This function name is not correct: 	}
16:08:10.785 WARN: This function name is not correct: 	poll, pollErr := db.CreatePoll("Is Rainbow-Dash best pony ?", fortress.ID.Hex(), timer)
16:08:10.785 WARN: This function name is not correct: 	if pollErr != nil {
16:08:10.785 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreatePoll: %v\n", pollErr)
16:08:10.785 WARN: This function name is not correct: 	}
16:08:10.785 WARN: This function name is not correct: 	user, userError := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.785 WARN: This function name is not correct: 	if userError != nil {
16:08:10.785 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userError)
16:08:10.785 WARN: This function name is not correct: 	}
16:08:10.785 WARN: This function name is not correct: 	user.Fortress = fortress.ID
16:08:10.785 WARN: This function name is not correct: 	userError = db.UpdateUser(user)
16:08:10.785 WARN: This function name is not correct: 	if userError != nil {
16:08:10.785 WARN: This function name is not correct: 		t.Fatalf("Error while calling UpdateUser: %v\n", userError)
16:08:10.785 WARN: This function name is not correct: 	}
16:08:10.785 WARN: This function name is not correct: 	voteErr := db.PollAddUserVote(poll.ID.Hex(), user.ID.Hex(), true)
16:08:10.785 WARN: This function name is not correct: 	if voteErr != nil {
16:08:10.785 WARN: This function name is not correct: 		t.Fatalf("Error while calling PollAddUserVote: %v\n", voteErr)
16:08:10.785 WARN: This function name is not correct: 	}
16:08:10.785 WARN: This function name is not correct: 	poll, pollErr = db.GetPollById(poll.ID.Hex())
16:08:10.785 WARN: This function name is not correct: 	if pollErr != nil {
16:08:10.785 WARN: This function name is not correct: 		t.Fatalf("Error while calling GetPollById: %v\n", pollErr)
16:08:10.785 WARN: This function name is not correct: 	}
16:08:10.785 WARN: This function name is not correct: 	if poll.YesVote != 1 {
16:08:10.785 WARN: This function name is not correct: 		t.Errorf("Expected poll.YesVote to be 1, got %v\n", poll.YesVote)
16:08:10.785 WARN: This function name is not correct: 	}
16:08:10.785 WARN: This function name is not correct: }
16:08:10.785 WARN: This function name is not correct: 
16:08:10.785 INFO: Create the key db_test.go#TestPollCheckUserAlreadyVoted
16:08:10.786 WARN: This function name is not correct: 	db := Db{dbAccess}
16:08:10.786 WARN: This function name is not correct: 	if err := db.Wipe(); err != nil {
16:08:10.786 WARN: This function name is not correct: 		t.Fatal(err)
16:08:10.786 WARN: This function name is not correct: 	}
16:08:10.786 WARN: This function name is not correct: 	timer := time.Now().Truncate(time.Millisecond).Add(time.Hour * 48)
16:08:10.786 WARN: This function name is not correct: 	fortress, fortressError := db.CreateFortress("Rainbow-Falls", 42, 42)
16:08:10.786 WARN: This function name is not correct: 	if fortressError != nil {
16:08:10.786 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateFortress: %v\n", fortressError)
16:08:10.786 WARN: This function name is not correct: 	}
16:08:10.786 WARN: This function name is not correct: 	poll, pollErr := db.CreatePoll("Is Rainbow-Dash best pony ?", fortress.ID.Hex(), timer)
16:08:10.786 WARN: This function name is not correct: 	if pollErr != nil {
16:08:10.786 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreatePoll: %v\n", pollErr)
16:08:10.786 WARN: This function name is not correct: 	}
16:08:10.786 WARN: This function name is not correct: 	user, userError := db.CreateUser("Rainbow-Dash", "[email protected]", "wonderbolts123")
16:08:10.786 WARN: This function name is not correct: 	if userError != nil {
16:08:10.786 WARN: This function name is not correct: 		t.Fatalf("Error while calling CreateUser: %v\n", userError)
16:08:10.786 WARN: This function name is not correct: 	}
16:08:10.786 WARN: This function name is not correct: 	user.Fortress = fortress.ID
16:08:10.786 WARN: This function name is not correct: 	userError = db.UpdateUser(user)
16:08:10.786 WARN: This function name is not correct: 	if userError != nil {
16:08:10.786 WARN: This function name is not correct: 		t.Fatalf("Error while calling UpdateUser: %v\n", userError)
16:08:10.786 WARN: This function name is not correct: 	}
16:08:10.786 WARN: This function name is not correct: 	voteErr := db.PollAddUserVote(poll.ID.Hex(), user.ID.Hex(), true)
16:08:10.786 WARN: This function name is not correct: 	if voteErr != nil {
16:08:10.786 WARN: This function name is not correct: 		t.Fatalf("Error while calling PollAddUserVote: %v\n", voteErr)
16:08:10.786 WARN: This function name is not correct: 	}
16:08:10.786 WARN: This function name is not correct: 	res, checkErr := db.PollCheckUserAlreadyVoted(poll.ID.Hex(), user.ID.Hex())
16:08:10.786 WARN: This function name is not correct: 	if checkErr != nil {
16:08:10.786 WARN: This function name is not correct: 		t.Fatalf("Error while calling PollCheckUserAlreadyVoted: %v\n", userError)
16:08:10.786 WARN: This function name is not correct: 	}
16:08:10.786 WARN: This function name is not correct: 	if res != true {
16:08:10.787 WARN: This function name is not correct: 		t.Error("Expected res to be true, got false\n")
16:08:10.787 WARN: This function name is not correct: 	}
16:08:10.787 WARN: This function name is not correct: }
16:08:10.787 DEBUG: {db_test.go#TestFortressCreation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestGetWithFortress=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenGetWithUser=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollVote=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActionDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingGetWithUser=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressDeletion=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollGetById=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressUpdate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithEmail=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollCheckUserAlreadyVoted=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserCreation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestUpdate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActionGetWithUserAndInterest=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActionGetWithInterest=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetByID=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressRetrievalWithID=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenGetWithValue=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingUpdate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithToken=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestGetWithId=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithName=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestMain=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithFortress=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestGetWithLocation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActonCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressRetrievalWithLocation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithCredentials=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go}
16:08:10.787 DEBUG: {db_test.go#TestFortressCreation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestGetWithFortress=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenGetWithUser=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollVote=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActionDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingGetWithUser=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressDeletion=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollGetById=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressUpdate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithEmail=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollCheckUserAlreadyVoted=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserCreation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestUpdate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActionGetWithUserAndInterest=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActionGetWithInterest=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetByID=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressRetrievalWithID=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenGetWithValue=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingUpdate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestPollDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithToken=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestGetWithId=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithName=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestMain=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithFortress=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestScavengingDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestGetWithLocation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestInterestActonCreate=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestFortressRetrievalWithLocation=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestUserGetWithCredentials=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go, db_test.go#TestTokenDelete=/home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go}
16:08:10.802 WARN: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go
16:08:10.803 WARN: Metric[id=<null>,key=skipped_tests,description=Number of skipped unit tests,type=INT,direction=-1,domain=Coverage,name=Skipped Unit Tests,qualitative=true,userManaged=false,enabled=true,worstValue=<null>,bestValue=0.0,optimizedBestValue=true,hidden=false,deleteHistoricalData=false,decimalScale=<null>]
16:08:10.820 WARN: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go
16:08:10.820 WARN: Metric[id=<null>,key=tests,description=Number of unit tests,type=INT,direction=-1,domain=Coverage,name=Unit Tests,qualitative=false,userManaged=false,enabled=true,worstValue=<null>,bestValue=<null>,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale=<null>]
16:08:10.821 WARN: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go
16:08:10.821 WARN: Metric[id=<null>,key=test_failures,description=Number of unit test failures,type=INT,direction=-1,domain=Coverage,name=Unit Test Failures,qualitative=true,userManaged=false,enabled=true,worstValue=<null>,bestValue=0.0,optimizedBestValue=true,hidden=false,deleteHistoricalData=false,decimalScale=<null>]
16:08:10.821 WARN: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go
16:08:10.821 WARN: Metric[id=<null>,key=test_execution_time,description=Execution duration of unit tests,type=MILLISEC,direction=-1,domain=Coverage,name=Unit Test Duration,qualitative=false,userManaged=false,enabled=true,worstValue=<null>,bestValue=<null>,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale=<null>]
16:08:10.821 WARN: /home/jcampion/work/go/src/gitlab.com/HumanRevolt/hrserver/db/db_test.go
16:08:10.822 WARN: Metric[id=<null>,key=skipped_tests,description=Number of skipped unit tests,type=INT,direction=-1,domain=Coverage,name=Skipped Unit Tests,qualitative=true,userManaged=false,enabled=true,worstValue=<null>,bestValue=0.0,optimizedBestValue=true,hidden=false,deleteHistoricalData=false,decimalScale=<null>]
16:08:10.830 INFO: ------------------------------------------------------------------------
16:08:10.830 INFO: EXECUTION FAILURE
16:08:10.830 INFO: ------------------------------------------------------------------------
16:08:10.830 INFO: Total time: 4.809s
16:08:10.951 INFO: Final Memory: 44M/139M
16:08:10.952 INFO: ------------------------------------------------------------------------
16:08:10.952 ERROR: Error during SonarQube Scanner execution
java.lang.UnsupportedOperationException: Can not add the same measure twice on db/db_test.go: DefaultMeasure[component=db/db_test.go,metric=Metric[id=<null>,key=skipped_tests,description=Number of skipped unit tests,type=INT,direction=-1,domain=Coverage,name=Skipped Unit Tests,qualitative=true,userManaged=false,enabled=true,worstValue=<null>,bestValue=0.0,optimizedBestValue=true,hidden=false,deleteHistoricalData=false,decimalScale=<null>],value=0,fromCore=false]
	at org.sonar.scanner.sensor.DefaultSensorStorage.saveMeasure(DefaultSensorStorage.java:268)
	at org.sonar.scanner.sensor.DefaultSensorStorage.store(DefaultSensorStorage.java:212)
	at org.sonar.api.batch.sensor.measure.internal.DefaultMeasure.doSave(DefaultMeasure.java:95)
	at org.sonar.api.batch.sensor.internal.DefaultStorable.save(DefaultStorable.java:45)
	at fr.univartois.sonargo.gotest.GoTestReportSaver.saveMeasure(GoTestReportSaver.java:67)
	at fr.univartois.sonargo.gotest.GoTestReportSaver.saveMeasure(GoTestReportSaver.java:57)
	at fr.univartois.sonargo.gotest.GoTestReportSaver.save(GoTestReportSaver.java:49)
	at fr.univartois.sonargo.gotest.GoTestSensor.execute(GoTestSensor.java:69)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)
	at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:111)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy0.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
	at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
	at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)
16:08:10.953 DEBUG: Execution getVersion
16:08:10.953 DEBUG: Execution stop

Highlighting problem on save

SonarQube Version 6.5 (build 27846) and sonar-golang Version 1.2.11-rc2.

java.lang.IllegalStateException: Cannot register highlighting rule for characters at Range[from [line=225, lineOffset=13] to [line=225, lineOffset=19]] as it overlaps at least one existing rule
	at org.sonar.api.batch.sensor.highlighting.internal.DefaultHighlighting.checkOverlappingBoudaries(DefaultHighlighting.java:60)
	at org.sonar.api.batch.sensor.highlighting.internal.DefaultHighlighting.doSave(DefaultHighlighting.java:120)
	at org.sonar.api.batch.sensor.internal.DefaultStorable.save(DefaultStorable.java:45)
	at fr.univartois.sonargo.highlighter.Colorizer.colorize(Colorizer.java:48)
	at fr.univartois.sonargo.highlighter.HighlighterSensor.lambda$execute$1(HighlighterSensor.java:42)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at fr.univartois.sonargo.highlighter.HighlighterSensor.execute(HighlighterSensor.java:42)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:179)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:261)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:256)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:245)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:119)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:76)
	at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
	at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
	at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
	at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
	at org.sonar.runner.api.Runner.execute(Runner.java:100)
	at org.sonar.runner.Main.executeTask(Main.java:70)
	at org.sonar.runner.Main.execute(Main.java:59)
	at org.sonar.runner.Main.main(Main.java:53)

Errors importing xml entries

Hello all,
when I run SonarScanner I got many of those WARNINGS:

WARN: The key for the message should omit type []byte from declaration of var readBuffer; it will be inferred from the right-hand side is null, issue not saved

What are they? Thank you

Coverage information not correct displayed in sonarqube

Description

The displayed coverage information is not the same as localy generated via go test, intellij go coverage or goconvey. All of these methods display 100% but sonarqube often doesn't reaches that percent value.

The problematic test file are internal tests:

  • example filename => example_internal_test.go
  • example package name => not example_test , its just example i have access to private functions

Explained with simple example:

If I run any of the above mentioned coverage methods on my example package, the one I use to create the coverage.xml, I get 100% coverage
go test -v -covermode=count -coverprofile=profile_tmp.cov

PASS
coverage: 100.0% of statements
ok        project/internal/example 0.004s

The coverage information for all packages get merge like this:

packages="\
     project/internal/example \
     project/internal/example2 \
     project/internal/example3 \
     "

echo "mode: count" > cover.out

for pkg in $packages
do
    go test -v -covermode=count -coverprofile=profile_tmp.cov $pkg || ERROR="Error testing $pkg"
    tail -n +2 profile_tmp.cov >> cover.out || die "Unable to append coverage for $pkg"
done

In the coverage.xml, generated this way:

gocov convert cover.out | gocov-xml > reports/coverage.xml

The "uncovered" line is even listed:

<line number="36" hits="2"></line>

Curiosum:
In Intellij the "uncovered" line is covered with 1 hit and not as written in the coverage.xml with 2 hits.

Content of your sonar-project.properties

sonar.projectKey=******
sonar.projectName=******
sonar.projectVersion=******

sonar.sources=./
sonar.exclusions=vendor/**

sonar.login=runner
sonar.password=runner

sonar.test.reportPath=reports/test.xml
sonar.golint.reportPath=reports/linter.xml
sonar.coverage.reportPath=reports/coverage.xml
sonar.coverage.dtdVerification=false 

Versions

sonar-golang version: v1.2.10-rc2 Fix #15
sonar-qube version: 6.3.1.21392

The number of executable lines in not-tested source file is no correctly computed

Description

A not-tested source file will over-decrease the code coverage, even if the definitions are all calculated.

Steps to Reproduce

  1. Create a project with two source files(e.g. a.go and b.go)
  2. Write test for a.go(i.e. a_test.go)
  3. Run the calculation, and you will find the coverage is not expected. Each lines in the b.go are calculated in the total lines.

Versions

Versions of your sonar installation (server, sonar-scanner), gometalinter, go and OS.

Sonar Server: 6.5(build 27846)
Sonar-golang Plugin: 1.2.11-rc10
GO: go1.9.2

File null error

Description

Hello folks and thank you for the work you've done on integrating golang in sonarqube. Its been a few days now I encounter an issue:

here is my stack trace

15:58:57.376 DEBUG: file null

15:58:57.393 INFO: ------------------------------------------------------------------------

15:58:57.394 INFO: EXECUTION FAILURE

15:58:57.394 INFO: ------------------------------------------------------------------------

15:58:57.394 INFO: Total time: 17.462s

15:58:58.276 INFO: Final Memory: 48M/385M

15:58:58.276 INFO: ------------------------------------------------------------------------

15:58:58.276 ERROR: Error during SonarQube Scanner execution

java.lang.NullPointerException

	at java.io.File.<init>(File.java:277)

	at org.sonar.api.batch.fs.internal.AbsolutePathPredicate.get(AbsolutePathPredicate.java:52)

	at org.sonar.api.batch.fs.internal.DefaultFileSystem.inputFiles(DefaultFileSystem.java:149)

	at org.sonar.api.batch.fs.internal.DefaultFileSystem.inputFile(DefaultFileSystem.java:115)

	at fr.univartois.sonargo.gotest.GoTestReportSaver.save(GoTestReportSaver.java:47)

	at fr.univartois.sonargo.gotest.GoTestSensor.execute(GoTestSensor.java:66)

	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)

	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)

	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)

	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)

	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)

	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)

	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)

	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)

	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)

	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)

	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)

	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)

	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)

	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)

	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)

	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)

	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)

	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)

	at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)

	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:111)

	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:498)

	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)

	at com.sun.proxy.$Pr[Description of the issue]
oxy0.execute(Unknown Source)

	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)

	at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)

	at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)

	at org.sonarsource.scanner.cli.Main.execute(Main.java:77)

	at org.sonarsource.scanner.cli.Main.main(Main.java:61)

15:58:58.289 DEBUG: Execution getVersion

15:58:58.290 DEBUG: Execution stop

script returned exit code 1

Steps to Reproduce

  1. run a pipeline with an empty error from linter (I think but I'm not sure)

Content of your sonar-project.properties

It will help us to check how you configured the plugin.

Log of sonar-scanner related to the plugin

The plugin logs major events, including which report files have been found and analyzed.

Versions

sonar server => Version 6.7.1 (build 35068)
gometalinter version => master

Additional Information

report.xml

<?xml version="1.0" encoding="UTF-8"?>

<testsuites>

	<testsuite tests="15" failures="0" time="3.104" name="code.int.be.continental.cloud/tlss/entry/internal/models">

		<properties>

			<property name="go.version" value="go1.9.4"></property>

		</properties>

		<testcase classname="models" name="TestAccountCreation" time="0.880"></testcase>

		<testcase classname="models" name="TestAccountValidationError" time="0.000"></testcase>

		<testcase classname="models" name="TestAccountPasswordPolicy" time="0.650"></testcase>

		<testcase classname="models" name="TestAccountPasswordVerifier" time="0.530"></testcase>

		<testcase classname="models" name="TestAccountPasswordHasher" time="0.030"></testcase>

		<testcase classname="models" name="TestApplicationCreation" time="0.000"></testcase>

		<testcase classname="models" name="TestApplicationCreationInvalidTenantID" time="0.000"></testcase>

		<testcase classname="models" name="TestApplicationCreationInvalidLabel" time="0.000"></testcase>

		<testcase classname="models" name="TestProfileCreation" time="0.000"></testcase>

		<testcase classname="models" name="TestProfileValidationError" time="0.000"></testcase>

		<testcase classname="models" name="TestProfileSecurityAnswers" time="0.000"></testcase>

		<testcase classname="models" name="TestProfileAge" time="0.000"></testcase>

		<testcase classname="models" name="TestTenantCreation" time="0.000"></testcase>

		<testcase classname="models" name="TestTenantValidationError" time="0.000"></testcase>

		<testcase classname="models" name="TestTenantActiveTenant" time="0.000"></testcase>

	</testsuite>

	<testsuite tests="2" failures="0" time="2.456" name="code.int.be.continental.cloud/tlss/entry/internal/services/authenticator">

		<properties>

			<property name="go.version" value="go1.9.4"></property>

		</properties>

		<testcase classname="authenticator" name="TestValidAuthentication" time="0.910"></testcase>

		<testcase classname="authenticator" name="TestAuthenticationErrors" time="0.860"></testcase>

	</testsuite>

	<testsuite tests="1" failures="0" time="0.036" name="code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry">

		<properties>

			<property name="go.version" value="go1.9.4"></property>

		</properties>

		<testcase classname="entry" name="TestAuthenticationReqValidator" time="0.000"></testcase>

	</testsuite>

	<testsuite tests="2" failures="0" time="0.020" name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value">

		<properties>

			<property name="go.version" value="go1.9.4"></property>

		</properties>

		<testcase classname="value" name="TestPrefixFrom" time="0.000"></testcase>

		<testcase classname="value" name="TestPrefixTo" time="0.000"></testcase>

	</testsuite>

	<testsuite tests="8" failures="0" time="0.017" name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/aes">

		<properties>

			<property name="go.version" value="go1.9.4"></property>

		</properties>

		<testcase classname="aes" name="TestGCMDataStable" time="0.000"></testcase>

		<testcase classname="aes" name="TestGCMKeyRotation" time="0.000"></testcase>

		<testcase classname="aes" name="TestCBCKeyRotation" time="0.000"></testcase>

		<testcase classname="aes" name="TestRoundTrip" time="0.010"></testcase>

		<testcase classname="aes" name="TestRoundTrip/GCM_16_byte_key" time="0.000"></testcase>

		<testcase classname="aes" name="TestRoundTrip/GCM_24_byte_key" time="0.000"></testcase>

		<testcase classname="aes" name="TestRoundTrip/GCM_32_byte_key" time="0.000"></testcase>

		<testcase classname="aes" name="TestRoundTrip/CBC_32_byte_key" time="0.000"></testcase>

	</testsuite>

	<testsuite tests="2" failures="0" time="0.003" name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/envelope">

		<properties>

			<property name="go.version" value="go1.9.4"></property>

		</properties>

		<testcase classname="envelope" name="TestEnvelopeCaching" time="0.000"></testcase>

		<testcase classname="envelope" name="TestEnvelopeCacheLimit" time="0.000"></testcase>

	</testsuite>

	<testsuite tests="3" failures="0" time="0.007" name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/secretbox">

		<properties>

			<property name="go.version" value="go1.9.4"></property>

		</properties>

		<testcase classname="secretbox" name="TestSecretboxKeyRotation" time="0.000"></testcase>

		<testcase classname="secretbox" name="TestRoundTrip" time="0.000"></testcase>

		<testcase classname="secretbox" name="TestRoundTrip/Secretbox_32_byte_key" time="0.000"></testcase>

	</testsuite>

</testsuites>

linter.xml (gometalinter)

<?xml version="1.0" encoding="UTF-8"?>
<checkstyle version="5.0"></checkstyle>

coverage.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-03.dtd">

<coverage line-rate="0" branch-rate="0" version="" timestamp="1518451072287">

	<packages>

		<package name="code.int.be.continental.cloud/tlss/entry/internal/models" line-rate="0" branch-rate="0" complexity="0">

			<classes>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/account.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewAccount" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="37" hits="1"></line>

								<line number="46" hits="1"></line>

								<line number="47" hits="1"></line>

								<line number="51" hits="1"></line>

								<line number="52" hits="1"></line>

								<line number="56" hits="1"></line>

								<line number="57" hits="1"></line>

								<line number="61" hits="1"></line>

							</lines>

						</method>

						<method name="@118:67" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="119" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="37" hits="1"></line>

						<line number="46" hits="1"></line>

						<line number="47" hits="1"></line>

						<line number="51" hits="1"></line>

						<line number="52" hits="1"></line>

						<line number="56" hits="1"></line>

						<line number="57" hits="1"></line>

						<line number="61" hits="1"></line>

						<line number="119" hits="1"></line>

					</lines>

				</class>

				<class name="Account" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/account.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Validate" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="68" hits="1"></line>

							</lines>

						</method>

						<method name="SetPrincipal" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="84" hits="1"></line>

								<line number="85" hits="1"></line>

							</lines>

						</method>

						<method name="SetPassword" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="91" hits="1"></line>

								<line number="92" hits="1"></line>

								<line number="93" hits="1"></line>

								<line number="97" hits="1"></line>

								<line number="98" hits="1"></line>

								<line number="99" hits="1"></line>

								<line number="103" hits="1"></line>

								<line number="106" hits="1"></line>

							</lines>

						</method>

						<method name="VerifyPassword" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="112" hits="1"></line>

								<line number="113" hits="1"></line>

								<line number="114" hits="1"></line>

								<line number="118" hits="1"></line>

							</lines>

						</method>

						<method name="ERN" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="125" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="68" hits="1"></line>

						<line number="84" hits="1"></line>

						<line number="85" hits="1"></line>

						<line number="91" hits="1"></line>

						<line number="92" hits="1"></line>

						<line number="93" hits="1"></line>

						<line number="97" hits="1"></line>

						<line number="98" hits="1"></line>

						<line number="99" hits="1"></line>

						<line number="103" hits="1"></line>

						<line number="106" hits="1"></line>

						<line number="112" hits="1"></line>

						<line number="113" hits="1"></line>

						<line number="114" hits="1"></line>

						<line number="118" hits="1"></line>

						<line number="125" hits="1"></line>

					</lines>

				</class>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/application.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewApplication" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="32" hits="1"></line>

								<line number="40" hits="1"></line>

								<line number="41" hits="1"></line>

								<line number="43" hits="1"></line>

							</lines>

						</method>

						<method name="GetTenantIDValidationRules" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="60" hits="1"></line>

								<line number="62" hits="1"></line>

								<line number="63" hits="1"></line>

								<line number="64" hits="1"></line>

								<line number="66" hits="1"></line>

							</lines>

						</method>

						<method name="GetIDValidationRules" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="71" hits="1"></line>

								<line number="73" hits="1"></line>

								<line number="74" hits="1"></line>

								<line number="75" hits="1"></line>

								<line number="77" hits="1"></line>

							</lines>

						</method>

						<method name="GetLabelValidationRules" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="82" hits="1"></line>

								<line number="84" hits="1"></line>

								<line number="85" hits="1"></line>

								<line number="87" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="32" hits="1"></line>

						<line number="40" hits="1"></line>

						<line number="41" hits="1"></line>

						<line number="43" hits="1"></line>

						<line number="60" hits="1"></line>

						<line number="62" hits="1"></line>

						<line number="63" hits="1"></line>

						<line number="64" hits="1"></line>

						<line number="66" hits="1"></line>

						<line number="71" hits="1"></line>

						<line number="73" hits="1"></line>

						<line number="74" hits="1"></line>

						<line number="75" hits="1"></line>

						<line number="77" hits="1"></line>

						<line number="82" hits="1"></line>

						<line number="84" hits="1"></line>

						<line number="85" hits="1"></line>

						<line number="87" hits="1"></line>

					</lines>

				</class>

				<class name="Application" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/application.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Validate" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="48" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="48" hits="1"></line>

					</lines>

				</class>

				<class name="Profile" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/profile.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Validate" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="69" hits="1"></line>

							</lines>

						</method>

						<method name="SetSecurityAnswer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="87" hits="1"></line>

							</lines>

						</method>

						<method name="VerifySecurityAnswer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="92" hits="1"></line>

								<line number="93" hits="1"></line>

								<line number="97" hits="1"></line>

								<line number="100" hits="1"></line>

								<line number="101" hits="1"></line>

								<line number="105" hits="1"></line>

							</lines>

						</method>

						<method name="Age" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="110" hits="1"></line>

							</lines>

						</method>

						<method name="ERN" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="115" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="69" hits="1"></line>

						<line number="87" hits="1"></line>

						<line number="92" hits="1"></line>

						<line number="93" hits="1"></line>

						<line number="97" hits="1"></line>

						<line number="100" hits="1"></line>

						<line number="101" hits="1"></line>

						<line number="105" hits="1"></line>

						<line number="110" hits="1"></line>

						<line number="115" hits="1"></line>

					</lines>

				</class>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/profile.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewProfile" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="45" hits="1"></line>

								<line number="57" hits="1"></line>

								<line number="58" hits="1"></line>

								<line number="62" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="45" hits="1"></line>

						<line number="57" hits="1"></line>

						<line number="58" hits="1"></line>

						<line number="62" hits="1"></line>

					</lines>

				</class>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/tenant.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewTenant" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="32" hits="1"></line>

								<line number="40" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="32" hits="1"></line>

						<line number="40" hits="1"></line>

					</lines>

				</class>

				<class name="Tenant" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/models/tenant.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Validate" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="47" hits="1"></line>

							</lines>

						</method>

						<method name="SetActive" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="57" hits="1"></line>

								<line number="58" hits="1"></line>

							</lines>

						</method>

						<method name="IsActive" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="63" hits="1"></line>

							</lines>

						</method>

						<method name="ToggleActivation" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="68" hits="1"></line>

								<line number="69" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="47" hits="1"></line>

						<line number="57" hits="1"></line>

						<line number="58" hits="1"></line>

						<line number="63" hits="1"></line>

						<line number="68" hits="1"></line>

						<line number="69" hits="1"></line>

					</lines>

				</class>

			</classes>

		</package>

		<package name="code.int.be.continental.cloud/tlss/entry/internal/services/authenticator" line-rate="0" branch-rate="0" complexity="0">

			<classes>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/services/authenticator/service.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="New" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="32" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="32" hits="1"></line>

					</lines>

				</class>

				<class name="authenticatorService" filename="/go/src/code.int.be.continental.cloud/tlss/entry/internal/services/authenticator/service.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Authenticate" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="41" hits="1"></line>

								<line number="44" hits="1"></line>

								<line number="46" hits="1"></line>

								<line number="49" hits="1"></line>

								<line number="53" hits="1"></line>

								<line number="57" hits="1"></line>

								<line number="58" hits="1"></line>

								<line number="60" hits="1"></line>

								<line number="63" hits="1"></line>

								<line number="67" hits="1"></line>

								<line number="71" hits="1"></line>

								<line number="72" hits="1"></line>

								<line number="74" hits="1"></line>

								<line number="77" hits="1"></line>

								<line number="81" hits="1"></line>

								<line number="85" hits="1"></line>

								<line number="87" hits="1"></line>

								<line number="90" hits="1"></line>

								<line number="94" hits="1"></line>

								<line number="98" hits="1"></line>

								<line number="99" hits="1"></line>

								<line number="101" hits="1"></line>

								<line number="104" hits="1"></line>

								<line number="108" hits="1"></line>

								<line number="112" hits="1"></line>

								<line number="114" hits="1"></line>

								<line number="117" hits="1"></line>

								<line number="121" hits="1"></line>

								<line number="125" hits="1"></line>

								<line number="133" hits="1"></line>

								<line number="136" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="41" hits="1"></line>

						<line number="44" hits="1"></line>

						<line number="46" hits="1"></line>

						<line number="49" hits="1"></line>

						<line number="53" hits="1"></line>

						<line number="57" hits="1"></line>

						<line number="58" hits="1"></line>

						<line number="60" hits="1"></line>

						<line number="63" hits="1"></line>

						<line number="67" hits="1"></line>

						<line number="71" hits="1"></line>

						<line number="72" hits="1"></line>

						<line number="74" hits="1"></line>

						<line number="77" hits="1"></line>

						<line number="81" hits="1"></line>

						<line number="85" hits="1"></line>

						<line number="87" hits="1"></line>

						<line number="90" hits="1"></line>

						<line number="94" hits="1"></line>

						<line number="98" hits="1"></line>

						<line number="99" hits="1"></line>

						<line number="101" hits="1"></line>

						<line number="104" hits="1"></line>

						<line number="108" hits="1"></line>

						<line number="112" hits="1"></line>

						<line number="114" hits="1"></line>

						<line number="117" hits="1"></line>

						<line number="121" hits="1"></line>

						<line number="125" hits="1"></line>

						<line number="133" hits="1"></line>

						<line number="136" hits="1"></line>

					</lines>

				</class>

			</classes>

		</package>

		<package name="code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry" line-rate="0" branch-rate="0" complexity="0">

			<classes>

				<class name="Account" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry/v1.pb.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Reset" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="64" hits="0"></line>

							</lines>

						</method>

						<method name="String" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="65" hits="0"></line>

							</lines>

						</method>

						<method name="ProtoMessage" signature="" line-rate="0" branch-rate="0">

							<lines></lines>

						</method>

						<method name="Descriptor" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="67" hits="0"></line>

							</lines>

						</method>

						<method name="GetTenantId" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="70" hits="0"></line>

								<line number="71" hits="0"></line>

								<line number="73" hits="0"></line>

							</lines>

						</method>

						<method name="GetDirectoryId" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="77" hits="0"></line>

								<line number="78" hits="0"></line>

								<line number="80" hits="0"></line>

							</lines>

						</method>

						<method name="GetAccountId" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="84" hits="0"></line>

								<line number="85" hits="0"></line>

								<line number="87" hits="0"></line>

							</lines>

						</method>

						<method name="GetErn" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="91" hits="0"></line>

								<line number="92" hits="0"></line>

								<line number="94" hits="0"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="64" hits="0"></line>

						<line number="65" hits="0"></line>

						<line number="67" hits="0"></line>

						<line number="70" hits="0"></line>

						<line number="71" hits="0"></line>

						<line number="73" hits="0"></line>

						<line number="77" hits="0"></line>

						<line number="78" hits="0"></line>

						<line number="80" hits="0"></line>

						<line number="84" hits="0"></line>

						<line number="85" hits="0"></line>

						<line number="87" hits="0"></line>

						<line number="91" hits="0"></line>

						<line number="92" hits="0"></line>

						<line number="94" hits="0"></line>

					</lines>

				</class>

				<class name="AuthenticationReq" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry/v1.pb.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Reset" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="104" hits="0"></line>

							</lines>

						</method>

						<method name="String" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="105" hits="0"></line>

							</lines>

						</method>

						<method name="ProtoMessage" signature="" line-rate="0" branch-rate="0">

							<lines></lines>

						</method>

						<method name="Descriptor" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="107" hits="0"></line>

							</lines>

						</method>

						<method name="GetTenantId" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="110" hits="0"></line>

								<line number="111" hits="0"></line>

								<line number="113" hits="0"></line>

							</lines>

						</method>

						<method name="GetDirectoryId" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="117" hits="0"></line>

								<line number="118" hits="0"></line>

								<line number="120" hits="0"></line>

							</lines>

						</method>

						<method name="GetPrincipal" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="124" hits="0"></line>

								<line number="125" hits="0"></line>

								<line number="127" hits="0"></line>

							</lines>

						</method>

						<method name="GetSecret" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="131" hits="0"></line>

								<line number="132" hits="0"></line>

								<line number="134" hits="0"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="104" hits="0"></line>

						<line number="105" hits="0"></line>

						<line number="107" hits="0"></line>

						<line number="110" hits="0"></line>

						<line number="111" hits="0"></line>

						<line number="113" hits="0"></line>

						<line number="117" hits="0"></line>

						<line number="118" hits="0"></line>

						<line number="120" hits="0"></line>

						<line number="124" hits="0"></line>

						<line number="125" hits="0"></line>

						<line number="127" hits="0"></line>

						<line number="131" hits="0"></line>

						<line number="132" hits="0"></line>

						<line number="134" hits="0"></line>

					</lines>

				</class>

				<class name="SingleAccountRes" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry/v1.pb.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Reset" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="142" hits="0"></line>

							</lines>

						</method>

						<method name="String" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="143" hits="0"></line>

							</lines>

						</method>

						<method name="ProtoMessage" signature="" line-rate="0" branch-rate="0">

							<lines></lines>

						</method>

						<method name="Descriptor" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="145" hits="0"></line>

							</lines>

						</method>

						<method name="GetError" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="148" hits="0"></line>

								<line number="149" hits="0"></line>

								<line number="151" hits="0"></line>

							</lines>

						</method>

						<method name="GetEntity" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="155" hits="0"></line>

								<line number="156" hits="0"></line>

								<line number="158" hits="0"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="142" hits="0"></line>

						<line number="143" hits="0"></line>

						<line number="145" hits="0"></line>

						<line number="148" hits="0"></line>

						<line number="149" hits="0"></line>

						<line number="151" hits="0"></line>

						<line number="155" hits="0"></line>

						<line number="156" hits="0"></line>

						<line number="158" hits="0"></line>

					</lines>

				</class>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry/v1.pb.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="init" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="162" hits="1"></line>

								<line number="163" hits="1"></line>

								<line number="164" hits="1"></line>

								<line number="165" hits="1"></line>

							</lines>

						</method>

						<method name="init" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="168" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="162" hits="1"></line>

						<line number="163" hits="1"></line>

						<line number="164" hits="1"></line>

						<line number="165" hits="1"></line>

						<line number="168" hits="1"></line>

					</lines>

				</class>

				<class name="Error" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry/v1.pb.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Reset" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="38" hits="0"></line>

							</lines>

						</method>

						<method name="String" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="39" hits="0"></line>

							</lines>

						</method>

						<method name="ProtoMessage" signature="" line-rate="0" branch-rate="0">

							<lines></lines>

						</method>

						<method name="Descriptor" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="41" hits="0"></line>

							</lines>

						</method>

						<method name="GetCode" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="44" hits="0"></line>

								<line number="45" hits="0"></line>

								<line number="47" hits="0"></line>

							</lines>

						</method>

						<method name="GetMessage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="51" hits="0"></line>

								<line number="52" hits="0"></line>

								<line number="54" hits="0"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="38" hits="0"></line>

						<line number="39" hits="0"></line>

						<line number="41" hits="0"></line>

						<line number="44" hits="0"></line>

						<line number="45" hits="0"></line>

						<line number="47" hits="0"></line>

						<line number="51" hits="0"></line>

						<line number="52" hits="0"></line>

						<line number="54" hits="0"></line>

					</lines>

				</class>

				<class name="AuthenticationReq" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/protocol/entry/validator.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="Validate" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="20" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="20" hits="1"></line>

					</lines>

				</class>

			</classes>

		</package>

		<package name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value" line-rate="0" branch-rate="0" complexity="0">

			<classes>

				<class name="identityTransformer" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/transformer.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="TransformFromStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="44" hits="0"></line>

							</lines>

						</method>

						<method name="TransformToStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="47" hits="0"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="44" hits="0"></line>

						<line number="47" hits="0"></line>

					</lines>

				</class>

				<class name="DefaultContext" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/transformer.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="AuthenticatedData" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="54" hits="0"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="54" hits="0"></line>

					</lines>

				</class>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/transformer.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewPrefixTransformers" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="74" hits="1"></line>

								<line number="75" hits="0"></line>

								<line number="77" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="74" hits="1"></line>

						<line number="75" hits="0"></line>

						<line number="77" hits="1"></line>

					</lines>

				</class>

				<class name="prefixTransformers" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/transformer.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="TransformFromStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="87" hits="1"></line>

								<line number="88" hits="1"></line>

								<line number="89" hits="1"></line>

								<line number="94" hits="1"></line>

								<line number="95" hits="0"></line>

								<line number="97" hits="1"></line>

								<line number="100" hits="1"></line>

							</lines>

						</method>

						<method name="TransformToStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="105" hits="1"></line>

								<line number="106" hits="1"></line>

								<line number="107" hits="1"></line>

								<line number="108" hits="1"></line>

								<line number="109" hits="1"></line>

								<line number="110" hits="1"></line>

								<line number="112" hits="1"></line>

								<line number="113" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="87" hits="1"></line>

						<line number="88" hits="1"></line>

						<line number="89" hits="1"></line>

						<line number="94" hits="1"></line>

						<line number="95" hits="0"></line>

						<line number="97" hits="1"></line>

						<line number="100" hits="1"></line>

						<line number="105" hits="1"></line>

						<line number="106" hits="1"></line>

						<line number="107" hits="1"></line>

						<line number="108" hits="1"></line>

						<line number="109" hits="1"></line>

						<line number="110" hits="1"></line>

						<line number="112" hits="1"></line>

						<line number="113" hits="1"></line>

					</lines>

				</class>

			</classes>

		</package>

		<package name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/aes" line-rate="0" branch-rate="0" complexity="0">

			<classes>

				<class name="cbc" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/aes/aes.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="TransformFromStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="98" hits="1"></line>

								<line number="99" hits="1"></line>

								<line number="100" hits="0"></line>

								<line number="102" hits="1"></line>

								<line number="103" hits="1"></line>

								<line number="105" hits="1"></line>

								<line number="106" hits="0"></line>

								<line number="109" hits="1"></line>

								<line number="110" hits="1"></line>

								<line number="111" hits="1"></line>

								<line number="112" hits="1"></line>

								<line number="115" hits="1"></line>

								<line number="116" hits="1"></line>

								<line number="117" hits="1"></line>

								<line number="118" hits="1"></line>

								<line number="119" hits="0"></line>

								<line number="121" hits="1"></line>

								<line number="122" hits="1"></line>

								<line number="123" hits="0"></line>

								<line number="127" hits="1"></line>

							</lines>

						</method>

						<method name="TransformToStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="131" hits="1"></line>

								<line number="132" hits="1"></line>

								<line number="133" hits="1"></line>

								<line number="134" hits="1"></line>

								<line number="135" hits="1"></line>

								<line number="136" hits="0"></line>

								<line number="138" hits="1"></line>

								<line number="141" hits="1"></line>

								<line number="143" hits="1"></line>

								<line number="144" hits="1"></line>

								<line number="145" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="98" hits="1"></line>

						<line number="99" hits="1"></line>

						<line number="100" hits="0"></line>

						<line number="102" hits="1"></line>

						<line number="103" hits="1"></line>

						<line number="105" hits="1"></line>

						<line number="106" hits="0"></line>

						<line number="109" hits="1"></line>

						<line number="110" hits="1"></line>

						<line number="111" hits="1"></line>

						<line number="112" hits="1"></line>

						<line number="115" hits="1"></line>

						<line number="116" hits="1"></line>

						<line number="117" hits="1"></line>

						<line number="118" hits="1"></line>

						<line number="119" hits="0"></line>

						<line number="121" hits="1"></line>

						<line number="122" hits="1"></line>

						<line number="123" hits="0"></line>

						<line number="127" hits="1"></line>

						<line number="131" hits="1"></line>

						<line number="132" hits="1"></line>

						<line number="133" hits="1"></line>

						<line number="134" hits="1"></line>

						<line number="135" hits="1"></line>

						<line number="136" hits="0"></line>

						<line number="138" hits="1"></line>

						<line number="141" hits="1"></line>

						<line number="143" hits="1"></line>

						<line number="144" hits="1"></line>

						<line number="145" hits="1"></line>

					</lines>

				</class>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/aes/aes.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewGCMTransformer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="46" hits="1"></line>

							</lines>

						</method>

						<method name="NewCBCTransformer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="88" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="46" hits="1"></line>

						<line number="88" hits="1"></line>

					</lines>

				</class>

				<class name="gcm" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/aes/aes.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="TransformFromStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="50" hits="1"></line>

								<line number="51" hits="1"></line>

								<line number="52" hits="0"></line>

								<line number="54" hits="1"></line>

								<line number="55" hits="1"></line>

								<line number="56" hits="0"></line>

								<line number="58" hits="1"></line>

								<line number="59" hits="1"></line>

							</lines>

						</method>

						<method name="TransformToStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="63" hits="1"></line>

								<line number="64" hits="1"></line>

								<line number="65" hits="0"></line>

								<line number="67" hits="1"></line>

								<line number="68" hits="1"></line>

								<line number="69" hits="1"></line>

								<line number="70" hits="1"></line>

								<line number="71" hits="0"></line>

								<line number="73" hits="1"></line>

								<line number="74" hits="0"></line>

								<line number="76" hits="1"></line>

								<line number="77" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="50" hits="1"></line>

						<line number="51" hits="1"></line>

						<line number="52" hits="0"></line>

						<line number="54" hits="1"></line>

						<line number="55" hits="1"></line>

						<line number="56" hits="0"></line>

						<line number="58" hits="1"></line>

						<line number="59" hits="1"></line>

						<line number="63" hits="1"></line>

						<line number="64" hits="1"></line>

						<line number="65" hits="0"></line>

						<line number="67" hits="1"></line>

						<line number="68" hits="1"></line>

						<line number="69" hits="1"></line>

						<line number="70" hits="1"></line>

						<line number="71" hits="0"></line>

						<line number="73" hits="1"></line>

						<line number="74" hits="0"></line>

						<line number="76" hits="1"></line>

						<line number="77" hits="1"></line>

					</lines>

				</class>

			</classes>

		</package>

		<package name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/envelope" line-rate="0" branch-rate="0" complexity="0">

			<classes>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/envelope/envelope.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewEnvelopeTransformer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="53" hits="1"></line>

								<line number="54" hits="0"></line>

								<line number="56" hits="1"></line>

								<line number="57" hits="1"></line>

								<line number="58" hits="0"></line>

								<line number="60" hits="1"></line>

							</lines>

						</method>

						<method name="generateKey" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="154" hits="1"></line>

								<line number="155" hits="1"></line>

								<line number="156" hits="1"></line>

								<line number="157" hits="0"></line>

								<line number="160" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="53" hits="1"></line>

						<line number="54" hits="0"></line>

						<line number="56" hits="1"></line>

						<line number="57" hits="1"></line>

						<line number="58" hits="0"></line>

						<line number="60" hits="1"></line>

						<line number="154" hits="1"></line>

						<line number="155" hits="1"></line>

						<line number="156" hits="1"></line>

						<line number="157" hits="0"></line>

						<line number="160" hits="1"></line>

					</lines>

				</class>

				<class name="envelopeTransformer" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/envelope/envelope.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="TransformFromStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="72" hits="1"></line>

								<line number="73" hits="1"></line>

								<line number="74" hits="0"></line>

								<line number="76" hits="1"></line>

								<line number="77" hits="1"></line>

								<line number="80" hits="1"></line>

								<line number="81" hits="1"></line>

								<line number="82" hits="1"></line>

								<line number="83" hits="1"></line>

								<line number="84" hits="0"></line>

								<line number="86" hits="1"></line>

								<line number="87" hits="1"></line>

								<line number="88" hits="0"></line>

								<line number="91" hits="1"></line>

							</lines>

						</method>

						<method name="TransformToStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="96" hits="1"></line>

								<line number="97" hits="1"></line>

								<line number="98" hits="0"></line>

								<line number="101" hits="1"></line>

								<line number="102" hits="1"></line>

								<line number="103" hits="0"></line>

								<line number="106" hits="1"></line>

								<line number="107" hits="1"></line>

								<line number="108" hits="0"></line>

								<line number="112" hits="1"></line>

								<line number="113" hits="1"></line>

								<line number="114" hits="1"></line>

								<line number="116" hits="1"></line>

								<line number="118" hits="1"></line>

								<line number="119" hits="1"></line>

								<line number="120" hits="1"></line>

								<line number="121" hits="1"></line>

								<line number="122" hits="0"></line>

								<line number="124" hits="1"></line>

								<line number="125" hits="1"></line>

							</lines>

						</method>

						<method name="addTransformer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="132" hits="1"></line>

								<line number="133" hits="1"></line>

								<line number="134" hits="0"></line>

								<line number="136" hits="1"></line>

								<line number="139" hits="1"></line>

								<line number="140" hits="1"></line>

							</lines>

						</method>

						<method name="getTransformer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="145" hits="1"></line>

								<line number="146" hits="1"></line>

								<line number="147" hits="1"></line>

								<line number="149" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="72" hits="1"></line>

						<line number="73" hits="1"></line>

						<line number="74" hits="0"></line>

						<line number="76" hits="1"></line>

						<line number="77" hits="1"></line>

						<line number="80" hits="1"></line>

						<line number="81" hits="1"></line>

						<line number="82" hits="1"></line>

						<line number="83" hits="1"></line>

						<line number="84" hits="0"></line>

						<line number="86" hits="1"></line>

						<line number="87" hits="1"></line>

						<line number="88" hits="0"></line>

						<line number="91" hits="1"></line>

						<line number="96" hits="1"></line>

						<line number="97" hits="1"></line>

						<line number="98" hits="0"></line>

						<line number="101" hits="1"></line>

						<line number="102" hits="1"></line>

						<line number="103" hits="0"></line>

						<line number="106" hits="1"></line>

						<line number="107" hits="1"></line>

						<line number="108" hits="0"></line>

						<line number="112" hits="1"></line>

						<line number="113" hits="1"></line>

						<line number="114" hits="1"></line>

						<line number="116" hits="1"></line>

						<line number="118" hits="1"></line>

						<line number="119" hits="1"></line>

						<line number="120" hits="1"></line>

						<line number="121" hits="1"></line>

						<line number="122" hits="0"></line>

						<line number="124" hits="1"></line>

						<line number="125" hits="1"></line>

						<line number="132" hits="1"></line>

						<line number="133" hits="1"></line>

						<line number="134" hits="0"></line>

						<line number="136" hits="1"></line>

						<line number="139" hits="1"></line>

						<line number="140" hits="1"></line>

						<line number="145" hits="1"></line>

						<line number="146" hits="1"></line>

						<line number="147" hits="1"></line>

						<line number="149" hits="1"></line>

					</lines>

				</class>

			</classes>

		</package>

		<package name="code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/secretbox" line-rate="0" branch-rate="0" complexity="0">

			<classes>

				<class name="-" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/secretbox/secretbox.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="NewSecretboxTransformer" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="35" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="35" hits="1"></line>

					</lines>

				</class>

				<class name="secretboxTransformer" filename="/go/src/code.int.be.continental.cloud/tlss/entry/pkg/storage/value/encrypt/secretbox/secretbox.go" line-rate="0" branch-rate="0" complexity="0">

					<methods>

						<method name="TransformFromStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="39" hits="1"></line>

								<line number="40" hits="0"></line>

								<line number="42" hits="1"></line>

								<line number="43" hits="1"></line>

								<line number="44" hits="1"></line>

								<line number="45" hits="1"></line>

								<line number="46" hits="1"></line>

								<line number="47" hits="1"></line>

								<line number="48" hits="0"></line>

								<line number="50" hits="1"></line>

							</lines>

						</method>

						<method name="TransformToStorage" signature="" line-rate="0" branch-rate="0">

							<lines>

								<line number="54" hits="1"></line>

								<line number="55" hits="1"></line>

								<line number="56" hits="1"></line>

								<line number="57" hits="0"></line>

								<line number="59" hits="1"></line>

								<line number="60" hits="0"></line>

								<line number="62" hits="1"></line>

							</lines>

						</method>

					</methods>

					<lines>

						<line number="39" hits="1"></line>

						<line number="40" hits="0"></line>

						<line number="42" hits="1"></line>

						<line number="43" hits="1"></line>

						<line number="44" hits="1"></line>

						<line number="45" hits="1"></line>

						<line number="46" hits="1"></line>

						<line number="47" hits="1"></line>

						<line number="48" hits="0"></line>

						<line number="50" hits="1"></line>

						<line number="54" hits="1"></line>

						<line number="55" hits="1"></line>

						<line number="56" hits="1"></line>

						<line number="57" hits="0"></line>

						<line number="59" hits="1"></line>

						<line number="60" hits="0"></line>

						<line number="62" hits="1"></line>

					</lines>

				</class>

			</classes>

		</package>

	</packages>

</coverage>

I'm not sure either but this can be related to link.

How can I disable the shell output result

Hello all,
when I run sonar-go I got a lot of INFO and WARN messages on the shell. I would like to add them (or redirect them on file at least). Is there any way for this?

Thanks

Unit Test Reporting not showing

Description

[Description of the issue]
While running this for golang, i could see coverage etc but no unit test report or history

Content of your sonar-project.properties

sonar.projectKey=abcd
sonar.projectName=api
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.test.reportPath=test.xml
sonar.sources=./
sonar.exclusions=*test.go

Versions

Versions of your sonar installation, gometalinter and go and OS.
6.3.1
1.8.1
macOs Sieraa

Additional Information

Any additional information, configuration or data that might be necessary to reproduce the issue.

Comment lines are computed as executable in not-tested source file

Description

When a package has no test file, it will computed the comment lines as executable.

Steps to Reproduce

  1. Create a project with following source file(e.g. b.go)
package main

import (
        "fmt"
)

// OtherFunc comments goes here.
func OtherFunc() {
        fmt.Println("in OtherFunc")
}

// Foo comments goes here.
// Another line of comments.
func Foo() {
        // test comments
        fmt.Println("in foo")
}

// MyStruct is a struct.
type MyStruct struct {
        // A comments.
        A string

        // B comments.
        B string
}
  1. Run the calculation, and push to sonar server using sonar-scanner

  2. Go the sonar server web, and click "All Measures / Coverage Measures". Chose b.go file, and you you will find that some comments are calculated as executable lines.

Versions

Sonar Server: 6.5(build 27846)
Sonar-golang Plugin: 1.2.11-rc11
GO: go1.9.2

Coverage is sometimes reported, sometimes not.

Description

When golang coverage is generated locally and sonar-scanner is launched locally it reports coverage measures to sonarqube. When it is launched in docker environment via Gitlab CI, it doesn't report coverage. Golang xml files are same, sonar-scanner scans vendor folder, but it is excluded.

Steps to Reproduce

  1. In Gitlab CI run golang coverage
  2. Run sonar-scnner

Content of your sonar-project.properties


sonar.projectKey=odpovidac:iris-firmy
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=Odpovidac - iris-firmy
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=.

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=utf-8

sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.test.reportPath=test.xml
sonar.showProfiling=true
sonar.log.level=DEBUG

sonar.exclusions=vendor/**,proto/**,proto_python/**,.git/**, **/*test.go, **/*.xml, **/*.py, testutils/**

Log of sonar-scanner related to the plugin

15:48:15.835 INFO: Scanner configuration file: /sonar-scanner/sonar-scanner-3.0.3.778/conf/sonar-scanner.properties
15:48:15.841 INFO: Project root configuration file: /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/sonar-project.properties
15:48:15.863 INFO: SonarQube Scanner 3.0.3.778
15:48:15.863 INFO: Java 1.8.0_51 Oracle Corporation (64-bit)
15:48:15.863 INFO: Linux 3.16.0-4-amd64 amd64
15:48:16.088 DEBUG: keyStore is : 
15:48:16.088 DEBUG: keyStore type is : jks
15:48:16.089 DEBUG: keyStore provider is : 
15:48:16.089 DEBUG: init keystore
15:48:16.089 DEBUG: init keymanager of type SunX509
15:48:16.137 DEBUG: Create : /root/.sonar/cache
15:48:16.139 INFO: User cache: /root/.sonar/cache
15:48:16.140 DEBUG: Create : /root/.sonar/cache/_tmp
15:48:16.141 DEBUG: Extract sonar-scanner-api-batch in temp...
15:48:16.149 DEBUG: Get bootstrap index...
15:48:16.150 DEBUG: Download: https://sonarqube.dev/batch/index
15:48:16.458 DEBUG: Get bootstrap completed
15:48:16.459 DEBUG: Download https://sonarqube.dev/batch/file?name=sonar-scanner-engine-shaded-6.4.jar to /root/.sonar/cache/_tmp/fileCache5612279467720491601.tmp
15:48:24.625 DEBUG: Create isolated classloader...
15:48:24.638 DEBUG: Start temp cleaning...
15:48:24.650 DEBUG: Temp cleaning done
15:48:24.651 DEBUG: Execution getVersion
15:48:24.655 DEBUG: Execution start
15:48:24.838 DEBUG: Publish global mode
15:48:24.959 INFO: Load global settings
15:48:25.084 DEBUG: GET 200 https://sonarqube.dev/api/settings/values.protobuf | time=117ms
15:48:25.113 INFO: Load global settings (done) | time=154ms
15:48:25.131 INFO: User cache: /root/.sonar/cache
15:48:25.454 INFO: Load plugins index
15:48:25.461 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/index.txt | time=7ms
15:48:25.463 INFO: Load plugins index (done) | time=9ms
15:48:25.464 DEBUG: Load plugins
15:48:25.468 DEBUG: Download plugin sonar-python-plugin-1.7.0.1195.jar to /root/.sonar/cache/_tmp/fileCache874969265410911988.tmp
15:48:25.479 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/python/sonar-python-plugin-1.7.0.1195.jar | time=11ms
15:48:26.901 DEBUG: Download plugin sonar-css-plugin-3.0.jar to /root/.sonar/cache/_tmp/fileCache4775953561166609762.tmp
15:48:26.911 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/css/sonar-css-plugin-3.0.jar | time=9ms
15:48:28.365 DEBUG: Download plugin sonar-cxx-plugin-0.9.7-SNAPSHOT.jar to /root/.sonar/cache/_tmp/fileCache5393544491701625270.tmp
15:48:28.374 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/cxx/sonar-cxx-plugin-0.9.7-SNAPSHOT.jar | time=9ms
15:48:35.549 DEBUG: Download plugin sonar-golang-plugin-1.2.8.jar to /root/.sonar/cache/_tmp/fileCache4323277163330556421.tmp
15:48:35.564 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/golang/sonar-golang-plugin-1.2.8.jar | time=15ms
15:48:39.653 DEBUG: Download plugin sonar-json-plugin-2.2.jar to /root/.sonar/cache/_tmp/fileCache5514371126590766238.tmp
15:48:39.663 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/JSON/sonar-json-plugin-2.2.jar | time=10ms
15:48:40.344 DEBUG: Download plugin sonar-scm-svn-plugin-1.4.0.522.jar to /root/.sonar/cache/_tmp/fileCache7367225972269204149.tmp
15:48:40.353 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/scmsvn/sonar-scm-svn-plugin-1.4.0.522.jar | time=9ms
15:48:42.701 DEBUG: Download plugin sonar-javascript-plugin-2.19.0.3866.jar to /root/.sonar/cache/_tmp/fileCache1274257301286770483.tmp
15:48:42.715 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/javascript/sonar-javascript-plugin-2.19.0.3866.jar | time=14ms
15:48:43.769 DEBUG: Download plugin sonar-auth-gitlab-plugin-1.0.0.jar to /root/.sonar/cache/_tmp/fileCache8520086104805466929.tmp
15:48:43.779 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/authgitlab/sonar-auth-gitlab-plugin-1.0.0.jar | time=10ms
15:48:43.892 DEBUG: Download plugin sonar-jproperties-plugin-2.4.jar to /root/.sonar/cache/_tmp/fileCache9040626523258179007.tmp
15:48:43.901 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/javaProperties/sonar-jproperties-plugin-2.4.jar | time=9ms
15:48:44.591 DEBUG: Download plugin sonar-csharp-plugin-5.5.2.537.jar to /root/.sonar/cache/_tmp/fileCache3863361752395622845.tmp
15:48:44.601 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/csharp/sonar-csharp-plugin-5.5.2.537.jar | time=9ms
15:48:48.723 DEBUG: Download plugin sonar-java-plugin-4.4.0.8066.jar to /root/.sonar/cache/_tmp/fileCache2505149487815808233.tmp
15:48:48.736 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/java/sonar-java-plugin-4.4.0.8066.jar | time=13ms
15:48:50.987 DEBUG: Download plugin sonar-groovy-plugin-1.4.jar to /root/.sonar/cache/_tmp/fileCache2343178389601510566.tmp
15:48:50.997 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/groovy/sonar-groovy-plugin-1.4.jar | time=9ms
15:48:56.017 DEBUG: Download plugin sonar-ldap-plugin-2.1.0.507.jar to /root/.sonar/cache/_tmp/fileCache2096230980502688247.tmp
15:48:56.027 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/ldap/sonar-ldap-plugin-2.1.0.507.jar | time=9ms
15:48:56.120 DEBUG: Download plugin sonar-web-plugin-2.5.0.476.jar to /root/.sonar/cache/_tmp/fileCache4347781647160398167.tmp
15:48:56.130 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/web/sonar-web-plugin-2.5.0.476.jar | time=9ms
15:48:56.762 DEBUG: Download plugin sonar-cppcheck-plugin-1.0.jar to /root/.sonar/cache/_tmp/fileCache5547843743181524950.tmp
15:48:56.770 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/cppcheck/sonar-cppcheck-plugin-1.0.jar | time=8ms
15:48:56.779 DEBUG: Download plugin sonar-scm-git-plugin-1.2.jar to /root/.sonar/cache/_tmp/fileCache6295260865484640289.tmp
15:48:56.786 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/scmgit/sonar-scm-git-plugin-1.2.jar | time=7ms
15:48:57.898 DEBUG: Download plugin sonar-xml-plugin-1.4.1.jar to /root/.sonar/cache/_tmp/fileCache2302075314191144666.tmp
15:48:57.912 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/xml/sonar-xml-plugin-1.4.1.jar | time=14ms
15:48:59.852 DEBUG: Download plugin sonar-gitlab-plugin-1.7.0.jar to /root/.sonar/cache/_tmp/fileCache5386849744866442702.tmp
15:48:59.861 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/gitlab/sonar-gitlab-plugin-1.7.0.jar | time=9ms
15:49:00.477 DEBUG: Download plugin sonar-text-plugin-0.8.jar to /root/.sonar/cache/_tmp/fileCache1583419999679155226.tmp
15:49:00.486 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/text/sonar-text-plugin-0.8.jar | time=9ms
15:49:00.543 DEBUG: Download plugin sonar-build-breaker-plugin-2.1.jar to /root/.sonar/cache/_tmp/fileCache7643086016430654266.tmp
15:49:00.553 DEBUG: GET 200 https://sonarqube.dev/deploy/plugins/buildbreaker/sonar-build-breaker-plugin-2.1.jar | time=10ms
15:49:02.161 DEBUG: Load plugins (done) | time=36697ms
15:49:02.543 DEBUG: API compatibility mode is enabled on plugin SVN [scmsvn] (built with API lower than 5.2)
15:49:02.807 DEBUG: API compatibility mode is enabled on plugin SonarQube :: Cppcheck Plugin [cppcheck] (built with API lower than 5.2)
15:49:02.839 DEBUG: API compatibility mode is enabled on plugin Git [scmgit] (built with API lower than 5.2)
15:49:02.886 DEBUG: API compatibility mode is enabled on plugin XML [xml] (built with API lower than 5.2)
15:49:02.907 DEBUG: API compatibility mode is enabled on plugin Sonar Text Plugin [text] (built with API lower than 5.2)
15:49:03.083 DEBUG: Plugins:
15:49:03.084 DEBUG:   * Python 1.7.0.1195 (python)
15:49:03.084 DEBUG:   * CSS / SCSS / Less 3.0 (css)
15:49:03.084 DEBUG:   * C++ (Community) 0.9.7-SNAPSHOT (cxx)
15:49:03.085 DEBUG:   * Golang 1.2.8 (golang)
15:49:03.085 DEBUG:   * JSON 2.2 (JSON)
15:49:03.085 DEBUG:   * SVN 1.4.0.522 (scmsvn)
15:49:03.085 DEBUG:   * JavaScript 2.19.0.3866 (javascript)
15:49:03.086 DEBUG:   * GitLab Auth 1.0.0 (authgitlab)
15:49:03.086 DEBUG:   * Java Properties 2.4 (javaProperties)
15:49:03.086 DEBUG:   * C# 5.5.2.537 (csharp)
15:49:03.086 DEBUG:   * Java 4.4.0.8066 (java)
15:49:03.087 DEBUG:   * Groovy 1.4 (groovy)
15:49:03.087 DEBUG:   * LDAP 2.1.0.507 (ldap)
15:49:03.087 DEBUG:   * Web 2.5.0.476 (web)
15:49:03.087 DEBUG:   * SonarQube :: Cppcheck Plugin 1.0 (cppcheck)
15:49:03.088 DEBUG:   * Git 1.2 (scmgit)
15:49:03.088 DEBUG:   * XML 1.4.1 (xml)
15:49:03.088 DEBUG:   * GitLab 1.7.0 (gitlab)
15:49:03.088 DEBUG:   * Sonar Text Plugin 0.8 (text)
15:49:03.089 DEBUG:   * Build Breaker 2.1 (buildbreaker)
15:49:03.130 DEBUG: Execution getVersion
15:49:03.131 INFO: SonarQube server 6.4.0
15:49:03.131 INFO: Default locale: "en_US", source code encoding: "utf-8"
15:49:03.132 DEBUG: Work directory: /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/.scannerwork
15:49:03.132 DEBUG: Execution getVersion
15:49:03.132 DEBUG: Execution execute
15:49:03.694 INFO: Process project properties
15:49:03.697 DEBUG: Process project properties (done) | time=3ms
15:49:03.854 INFO: Load project repositories
15:49:03.875 DEBUG: GET 200 https://sonarqube.dev/batch/project.protobuf?key=odpovidac%3Airis-firmy | time=19ms
15:49:03.967 INFO: Load project repositories (done) | time=113ms
15:49:04.047 DEBUG: using CxxProjectBuilder
15:49:04.048 INFO: Execute project builders
15:49:04.050 INFO: Execute project builders (done) | time=2ms
15:49:04.066 DEBUG: Available languages:
15:49:04.067 DEBUG:   * Python => "py"
15:49:04.067 DEBUG:   * CSS => "css"
15:49:04.067 DEBUG:   * SCSS => "scss"
15:49:04.067 DEBUG:   * Less => "less"
15:49:04.072 DEBUG:   * c++ => "c++"
15:49:04.072 DEBUG:   * GO => "go"
15:49:04.072 DEBUG:   * JSON => "json"
15:49:04.072 DEBUG:   * JavaScript => "js"
15:49:04.073 DEBUG:   * Java Properties => "jproperties"
15:49:04.073 DEBUG:   * C# => "cs"
15:49:04.073 DEBUG:   * Java => "java"
15:49:04.073 DEBUG:   * Groovy => "grvy"
15:49:04.073 DEBUG:   * Web => "web"
15:49:04.073 DEBUG:   * XML => "xml"
15:49:04.074 DEBUG:   * text => "text"
15:49:04.081 INFO: Load quality profiles
15:49:04.114 DEBUG: GET 200 https://sonarqube.dev/api/qualityprofiles/search.protobuf?projectKey=odpovidac%3Airis-firmy | time=32ms
15:49:04.121 INFO: Load quality profiles (done) | time=40ms
15:49:04.130 INFO: Load active rules
15:49:04.656 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=c%2B%2B-sonar-way-71477&p=1&ps=500 | time=526ms
15:49:04.983 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=c%2B%2B-sonar-way-71477&p=2&ps=500 | time=161ms
15:49:05.062 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=css-sonarqube-way-02769&p=1&ps=500 | time=52ms
15:49:05.097 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=jproperties-sonarqube-way-33804&p=1&ps=500 | time=27ms
15:49:05.167 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=scss-sonarqube-way-39003&p=1&ps=500 | time=69ms
15:49:05.218 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=go-golint-rules-71073&p=1&ps=500 | time=45ms
15:49:05.292 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=js-sonar-way-44769&p=1&ps=500 | time=72ms
15:49:05.334 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=py-sonar-way-29677&p=1&ps=500 | time=35ms
15:49:05.399 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=less-sonarqube-way-34625&p=1&ps=500 | time=63ms
15:49:05.502 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=cs-sonar-way-87544&p=1&ps=500 | time=100ms
15:49:05.802 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=java-sonar-way-21136&p=1&ps=500 | time=289ms
15:49:05.860 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=web-sonar-way-79758&p=1&ps=500 | time=23ms
15:49:05.877 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=xml-sonar-way-58077&p=1&ps=500 | time=16ms
15:49:05.896 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=json-sonarqube-way-97736&p=1&ps=500 | time=18ms
15:49:05.916 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=text-valgrind-31342&p=1&ps=500 | time=19ms
15:49:05.967 DEBUG: GET 200 https://sonarqube.dev/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=grvy-sonar-way-35888&p=1&ps=500 | time=51ms
15:49:05.992 INFO: Load active rules (done) | time=1862ms
15:49:05.994 INFO: Load metrics repository
15:49:06.017 DEBUG: GET 200 https://sonarqube.dev/api/metrics/search?f=name,description,direction,qualitative,custom&ps=500&p=1 | time=22ms
15:49:06.073 INFO: Load metrics repository (done) | time=79ms
15:49:06.104 INFO: Publish mode
15:49:06.104 INFO: Project key: odpovidac:iris-firmy
15:49:06.105 DEBUG: Start recursive analysis of project modules
15:49:06.107 INFO: -------------  Scan Odpovidac - iris-firmy
15:49:06.300 INFO: Load server rules
15:49:06.517 DEBUG: GET 200 https://sonarqube.dev/api/rules/list.protobuf | time=217ms
15:49:06.723 INFO: Load server rules (done) | time=423ms
15:49:06.813 DEBUG: Declared extensions of language Python were converted to sonar.lang.patterns.py : **/*.py
15:49:06.814 DEBUG: Declared extensions of language CSS were converted to sonar.lang.patterns.css : **/*.css
15:49:06.814 DEBUG: Declared extensions of language SCSS were converted to sonar.lang.patterns.scss : **/*.scss
15:49:06.814 DEBUG: Declared extensions of language Less were converted to sonar.lang.patterns.less : **/*.less
15:49:06.814 DEBUG: Declared extensions of language c++ were converted to sonar.lang.patterns.c++ : **/*.cxx,**/*.cpp,**/*.cc,**/*.c,**/*.hxx,**/*.hpp,**/*.hh,**/*.h
15:49:06.814 DEBUG: Declared extensions of language GO were converted to sonar.lang.patterns.go : **/*.go
15:49:06.814 DEBUG: Declared extensions of language JSON were converted to sonar.lang.patterns.json : **/*.json
15:49:06.815 DEBUG: Declared extensions of language JavaScript were converted to sonar.lang.patterns.js : **/*.js
15:49:06.815 DEBUG: Declared extensions of language Java Properties were converted to sonar.lang.patterns.jproperties : **/*.properties
15:49:06.815 DEBUG: Declared extensions of language C# were converted to sonar.lang.patterns.cs : **/*.cs
15:49:06.815 DEBUG: Declared extensions of language Java were converted to sonar.lang.patterns.java : **/*.java,**/*.jav
15:49:06.815 DEBUG: Declared extensions of language Groovy were converted to sonar.lang.patterns.grvy : **/*.groovy
15:49:06.815 DEBUG: Declared extensions of language Web were converted to sonar.lang.patterns.web : **/*.html,**/*.xhtml,**/*.rhtml,**/*.shtml
15:49:06.815 DEBUG: Declared extensions of language XML were converted to sonar.lang.patterns.xml : **/*.xml
15:49:06.816 DEBUG: Declared extensions of language text were converted to sonar.lang.patterns.text : **/*.txt
15:49:06.881 DEBUG: Initializers : GenericCoverageSensor
15:49:06.881 INFO: Initializer GenericCoverageSensor
15:49:06.882 INFO: Initializer GenericCoverageSensor (done) | time=0ms
15:49:06.882 INFO: Base dir: /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy
15:49:06.882 INFO: Working dir: /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/.scannerwork
15:49:06.883 INFO: Source paths: .
15:49:06.883 INFO: Source encoding: UTF-8, default locale: en_US
15:49:06.884 INFO: Index files
15:49:06.886 INFO: Excluded sources: 
15:49:06.886 INFO:   vendor/**
15:49:06.886 INFO:   proto/**
15:49:06.886 INFO:   proto_python/**
15:49:06.886 INFO:   .git/**
15:49:06.886 INFO:   **/*test.go
15:49:06.886 INFO:   **/*.xml
15:49:06.886 INFO:   **/*.py
15:49:06.886 INFO:   testutils/**
15:49:06.912 DEBUG: 'configure' indexed with language 'null'
15:49:06.914 DEBUG: 'sonar-project.properties' indexed with language 'jproperties'
15:49:06.915 DEBUG: 'deployment/service.json.template' indexed with language 'null'
15:49:06.916 DEBUG: 'handler/config.go' indexed with language 'go'
15:49:06.916 DEBUG: 'deployment/production.variables' indexed with language 'null'
15:49:06.917 DEBUG: 'main.go' indexed with language 'go'
15:49:06.917 DEBUG: 'README.md' indexed with language 'null'
15:49:06.917 DEBUG: 'deployment/task.json.template' indexed with language 'null'
15:49:06.917 DEBUG: 'handler/firmy.go' indexed with language 'go'
15:49:06.918 DEBUG: 'Dockerfile' indexed with language 'null'
15:49:06.919 DEBUG: 'glide.yaml' indexed with language 'null'
15:49:06.919 DEBUG: 'deployment/staging.variables' indexed with language 'null'
15:49:07.244 DEBUG: 'glide.lock' indexed with language 'null'
15:49:07.244 DEBUG: 'test.out' indexed with language 'null'
15:49:07.245 DEBUG: 'makefile' indexed with language 'null'
15:49:07.248 INFO: 15 files indexed
15:49:07.248 INFO: 4113 files ignored because of inclusion/exclusion patterns
15:49:07.250 INFO: Quality profile for go: Golint Rules
15:49:07.250 INFO: Quality profile for jproperties: SonarQube Way
15:49:08.997 DEBUG: 'Generic Coverage Report' skipped because one of the required properties is missing
15:49:08.998 DEBUG: 'Generic Test Executions Report' skipped because one of the required properties is missing
15:49:08.998 DEBUG: 'Python Squid Sensor' skipped because there is no related file in current project
15:49:08.998 DEBUG: 'CSS Analyzer Sensor' skipped because there is no related file in current project
15:49:08.998 DEBUG: 'SCSS Analyzer Sensor' skipped because there is no related file in current project
15:49:08.999 DEBUG: 'Less Analyzer Sensor' skipped because there is no related file in current project
15:49:08.999 DEBUG: 'CxxSquidSensor' skipped because there is no related file in current project
15:49:08.999 DEBUG: 'CxxRatsSensor' skipped because there is no related file in current project
15:49:08.999 DEBUG: 'CxxCoverageSensor' skipped because there is no related file in current project
15:49:08.999 DEBUG: 'CxxCppCheckSensor' skipped because there is no related file in current project
15:49:09.000 DEBUG: 'CxxPCLintSensor' skipped because there is no related file in current project
15:49:09.000 DEBUG: 'CxxDrMemorySensor' skipped because there is no related file in current project
15:49:09.000 DEBUG: 'CxxCompilerSensor' skipped because there is no related file in current project
15:49:09.000 DEBUG: 'CxxVeraxxSensor' skipped because there is no related file in current project
15:49:09.000 DEBUG: 'CxxValgrindSensor' skipped because there is no related file in current project
15:49:09.000 DEBUG: 'CxxExternalRulesSensor' skipped because there is no related file in current project
15:49:09.001 DEBUG: 'JSON Squid Sensor' skipped because there is no related file in current project
15:49:09.001 DEBUG: 'JavaScript Squid Sensor' skipped because there is no related file in current project
15:49:09.001 DEBUG: 'C#' skipped because there is no related file in current project
15:49:09.002 DEBUG: 'SurefireSensor' skipped because there is no related file in current project
15:49:09.002 DEBUG: 'JaCoCoSensor' skipped because there is no related file in current project
15:49:09.002 DEBUG: 'JavaSquidSensor' skipped because there is no related file in current project
15:49:09.002 DEBUG: 'CodeNarc' skipped because there is no related file in current project
15:49:09.002 DEBUG: 'GroovySensor' skipped because there is no related file in current project
15:49:09.003 DEBUG: 'GroovySurefireSensor' skipped because there is no related file in current project
15:49:09.003 DEBUG: 'Groovy CoberturaSensor' skipped because there is no related file in current project
15:49:09.003 DEBUG: 'Groovy JaCoCoSensor' skipped because there is no related file in current project
15:49:09.003 DEBUG: 'Groovy JaCoCoItSensor' skipped because there is no related file in current project
15:49:09.003 DEBUG: 'Groovy JaCoCoOverallSensor' skipped because there is no related file in current project
15:49:09.003 DEBUG: 'Web' skipped because there is no related file in current project
15:49:09.008 DEBUG: 'Generic Coverage Report' skipped because one of the required properties is missing
15:49:09.008 DEBUG: 'Generic Test Executions Report' skipped because one of the required properties is missing
15:49:09.008 DEBUG: 'Python Squid Sensor' skipped because there is no related file in current project
15:49:09.009 DEBUG: 'CSS Analyzer Sensor' skipped because there is no related file in current project
15:49:09.009 DEBUG: 'SCSS Analyzer Sensor' skipped because there is no related file in current project
15:49:09.009 DEBUG: 'Less Analyzer Sensor' skipped because there is no related file in current project
15:49:09.009 DEBUG: 'CxxSquidSensor' skipped because there is no related file in current project
15:49:09.009 DEBUG: 'CxxRatsSensor' skipped because there is no related file in current project
15:49:09.009 DEBUG: 'CxxCoverageSensor' skipped because there is no related file in current project
15:49:09.009 DEBUG: 'CxxCppCheckSensor' skipped because there is no related file in current project
15:49:09.010 DEBUG: 'CxxPCLintSensor' skipped because there is no related file in current project
15:49:09.010 DEBUG: 'CxxDrMemorySensor' skipped because there is no related file in current project
15:49:09.010 DEBUG: 'CxxCompilerSensor' skipped because there is no related file in current project
15:49:09.010 DEBUG: 'CxxVeraxxSensor' skipped because there is no related file in current project
15:49:09.010 DEBUG: 'CxxValgrindSensor' skipped because there is no related file in current project
15:49:09.010 DEBUG: 'CxxExternalRulesSensor' skipped because there is no related file in current project
15:49:09.011 DEBUG: 'JSON Squid Sensor' skipped because there is no related file in current project
15:49:09.011 DEBUG: 'JavaScript Squid Sensor' skipped because there is no related file in current project
15:49:09.011 DEBUG: 'C#' skipped because there is no related file in current project
15:49:09.011 DEBUG: 'SurefireSensor' skipped because there is no related file in current project
15:49:09.011 DEBUG: 'JaCoCoSensor' skipped because there is no related file in current project
15:49:09.011 DEBUG: 'JavaSquidSensor' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'CodeNarc' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'GroovySensor' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'GroovySurefireSensor' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'Groovy CoberturaSensor' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'Groovy JaCoCoSensor' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'Groovy JaCoCoItSensor' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'Groovy JaCoCoOverallSensor' skipped because there is no related file in current project
15:49:09.012 DEBUG: 'Web' skipped because there is no related file in current project
15:49:09.017 DEBUG: Sensors : Embedded CSS Analyzer Sensor -> CxxXunitSensor -> Unit Test Results Import -> GoMetaLinter issues loader sensor -> Go Coverage -> Go test JUnit loader sensor -> Go Highlighter Sensor -> Go Metrics Sensor -> Java Properties Squid Sensor -> Coverage Report Import -> Coverage Report Import -> Unit Test Results Import -> XmlFileSensor -> Zero Coverage Sensor -> CPD Block Indexer
15:49:09.018 INFO: Sensor Embedded CSS Analyzer Sensor [css]
15:49:09.063 INFO: 0 source files to be analyzed
15:49:09.065 INFO: Sensor Embedded CSS Analyzer Sensor [css] (done) | time=48ms
15:49:09.065 INFO: Sensor CxxXunitSensor [cxx]
15:49:09.065 INFO: 0/0 source files have been analyzed
15:49:09.065 DEBUG: Root module imports test metrics: Module Key = '[key=odpovidac:iris-firmy]'
15:49:09.066 INFO: Undefined report path value for key 'sonar.cxx.xunit.reportPath'
15:49:09.066 DEBUG: No reports found, nothing to process
15:49:09.066 INFO: Sensor CxxXunitSensor [cxx] (done) | time=1ms
15:49:09.066 INFO: Sensor Unit Test Results Import [cxx]
15:49:09.066 DEBUG: No unit test results property. Skip Sensor
15:49:09.066 INFO: Sensor Unit Test Results Import [cxx] (done) | time=0ms
15:49:09.067 INFO: Sensor GoMetaLinter issues loader sensor [golang]
15:49:09.081 INFO: Parsing the file report.xml
15:49:09.081 INFO: Parsing 'GoMetaLinter' Analysis Results
15:49:09.082 DEBUG: Parsing file /builds/Odpovidac/iris-firmy/report.xml
15:49:09.146 DEBUG: violation found for the file handler/config.go
15:49:09.147 DEBUG: violation found for the file handler/firmy.go
15:49:09.147 DEBUG: violation found for the file main.go
15:49:09.197 WARN: This description "exported method Config.GetHeaders should have comment or be unexported" is not usable
15:49:09.197 WARN: The key for the message exported method Config.GetHeaders should have comment or be unexported is null, issue not saved
15:49:09.198 WARN: This description "undeclared name: server" is not usable
15:49:09.199 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: server
15:49:09.199 WARN: This description "exported method Config.GetEndpoint should have comment or be unexported" is not usable
15:49:09.200 WARN: The key for the message exported method Config.GetEndpoint should have comment or be unexported is null, issue not saved
15:49:09.200 WARN: This description "exported method Config.GetTimeout should have comment or be unexported" is not usable
15:49:09.201 WARN: The key for the message exported method Config.GetTimeout should have comment or be unexported is null, issue not saved
15:49:09.222 DEBUG: 'handler/config.go' generated metadata  with charset 'UTF-8'
15:49:09.247 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/server (can't find import: )" is not usable
15:49:09.247 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/server (can't find import: ) is null, issue not saved
15:49:09.248 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/client (can't find import: )" is not usable
15:49:09.248 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/client (can't find import: ) is null, issue not saved
15:49:09.249 WARN: This description "undeclared name: client" is not usable
15:49:09.250 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: client
15:49:09.250 WARN: This description "could not import github.com/mwitkow/go-grpc-middleware (can't find import: )" is not usable
15:49:09.250 WARN: The key for the message could not import github.com/mwitkow/go-grpc-middleware (can't find import: ) is null, issue not saved
15:49:09.251 WARN: This description "undeclared name: server" is not usable
15:49:09.251 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: server
15:49:09.252 WARN: This description "undeclared name: metric" is not usable
15:49:09.252 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: metric
15:49:09.252 WARN: This description "undeclared name: server" is not usable
15:49:09.252 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: server
15:49:09.253 WARN: This description "undeclared name: client" is not usable
15:49:09.253 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: client
15:49:09.254 WARN: This description "invalid operation: in (variable of type *invalid type) has no field or method String" is not usable
15:49:09.254 WARN: The key for the message invalid operation: in (variable of type *invalid type) has no field or method String is null, issue not saved
15:49:09.255 WARN: This description "buf declared but not used" is not usable
15:49:09.255 WARN: The key for the message buf declared but not used is null, issue not saved
15:49:09.255 WARN: This description "undeclared name: grpc" is not usable
15:49:09.255 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: grpc
15:49:09.256 WARN: This description "undeclared name: grpc_middleware" is not usable
15:49:09.256 WARN: The key for the message undeclared name: grpc_middleware is null, issue not saved
15:49:09.256 WARN: This description "invalid operation: in (variable of type *invalid type) has no field or method GetQuery" is not usable
15:49:09.256 WARN: The key for the message invalid operation: in (variable of type *invalid type) has no field or method GetQuery is null, issue not saved
15:49:09.257 WARN: This description "undeclared name: proto" is not usable
15:49:09.257 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: proto
15:49:09.258 WARN: This description "undeclared name: iris" is not usable
15:49:09.258 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: iris
15:49:09.258 WARN: This description "invalid operation: h.Client (variable with invalid type) has no field or method Do" is not usable
15:49:09.258 WARN: The key for the message invalid operation: h.Client (variable with invalid type) has no field or method Do is null, issue not saved
15:49:09.259 WARN: This description "undeclared name: firmy" is not usable
15:49:09.259 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: firmy
15:49:09.260 WARN: This description "invalid operation: in (variable of type *invalid type) has no field or method GetLocation" is not usable
15:49:09.260 WARN: The key for the message invalid operation: in (variable of type *invalid type) has no field or method GetLocation is null, issue not saved
15:49:09.260 WARN: This description "undeclared name: iris" is not usable
15:49:09.260 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: iris
15:49:09.261 WARN: This description "undeclared name: constants" is not usable
15:49:09.261 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: constants
15:49:09.262 WARN: This description "undeclared name: iris" is not usable
15:49:09.262 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: iris
15:49:09.262 WARN: This description "undeclared name: grpc" is not usable
15:49:09.262 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: grpc
15:49:09.263 WARN: This description "invalid operation: cfg (variable of type FirmyRestClientConfig) has no field or method GetEndpoint" is not usable
15:49:09.263 WARN: The key for the message invalid operation: cfg (variable of type FirmyRestClientConfig) has no field or method GetEndpoint is null, issue not saved
15:49:09.263 WARN: This description "invalid operation: in (variable of type *invalid type) has no field or method GetQuery" is not usable
15:49:09.263 WARN: The key for the message invalid operation: in (variable of type *invalid type) has no field or method GetQuery is null, issue not saved
15:49:09.270 DEBUG: 'handler/firmy.go' generated metadata  with charset 'UTF-8'
15:49:09.272 WARN: This description "undeclared name: iris" is not usable
15:49:09.272 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: iris
15:49:09.273 WARN: This description "undeclared name: iris" is not usable
15:49:09.273 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: iris
15:49:09.274 WARN: This description "undeclared name: iris" is not usable
15:49:09.274 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: iris
15:49:09.274 WARN: This description "undeclared name: client" is not usable
15:49:09.274 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: client
15:49:09.275 WARN: This description "undeclared name: server" is not usable
15:49:09.275 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: server
15:49:09.275 WARN: This description "undeclared name: iris" is not usable
15:49:09.275 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: iris
15:49:09.276 WARN: This description "exported method Handler.GetConfig should have comment or be unexported" is not usable
15:49:09.276 WARN: The key for the message exported method Handler.GetConfig should have comment or be unexported is null, issue not saved
15:49:09.277 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/iris/proto/iris (can't find import: )" is not usable
15:49:09.277 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/iris/proto/iris (can't find import: ) is null, issue not saved
15:49:09.277 WARN: This description "could not import github.com/golang/protobuf/jsonpb (can't find import: )" is not usable
15:49:09.277 WARN: The key for the message could not import github.com/golang/protobuf/jsonpb (can't find import: ) is null, issue not saved
15:49:09.278 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/server (can't find import: )" is not usable
15:49:09.278 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/server (can't find import: ) is null, issue not saved
15:49:09.278 WARN: This description "undeclared name: jsonpb" is not usable
15:49:09.278 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: jsonpb
15:49:09.280 WARN: This description "undeclared name: server" is not usable
15:49:09.280 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: server
15:49:09.280 WARN: This description "undeclared name: grpc" is not usable
15:49:09.280 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: grpc
15:49:09.281 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric (can't find import: )" is not usable
15:49:09.281 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric (can't find import: ) is null, issue not saved
15:49:09.281 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/client (can't find import: )" is not usable
15:49:09.282 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/client (can't find import: ) is null, issue not saved
15:49:09.282 WARN: This description "could not import golang.org/x/net/context (can't find import: )" is not usable
15:49:09.282 WARN: The key for the message could not import golang.org/x/net/context (can't find import: ) is null, issue not saved
15:49:09.283 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/constants (can't find import: )" is not usable
15:49:09.283 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/constants (can't find import: ) is null, issue not saved
15:49:09.283 WARN: This description "undeclared name: context" is not usable
15:49:09.283 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: context
15:49:09.284 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy)" is not usable
15:49:09.284 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy) is null, issue not saved
15:49:09.285 WARN: This description "undeclared name: grpc" is not usable
15:49:09.285 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: grpc
15:49:09.286 WARN: This description "could not import github.com/golang/protobuf/proto (can't find import: )" is not usable
15:49:09.286 WARN: The key for the message could not import github.com/golang/protobuf/proto (can't find import: ) is null, issue not saved
15:49:09.287 WARN: This description "exported method Handler.GetServer should have comment or be unexported" is not usable
15:49:09.287 WARN: The key for the message exported method Handler.GetServer should have comment or be unexported is null, issue not saved
15:49:09.287 WARN: This description "could not import google.golang.org/grpc (can't find import: )" is not usable
15:49:09.287 WARN: The key for the message could not import google.golang.org/grpc (can't find import: ) is null, issue not saved
15:49:09.288 WARN: This description "undeclared name: hermes" is not usable
15:49:09.288 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: hermes
15:49:09.288 WARN: This description "undeclared name: server" is not usable
15:49:09.288 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: server
15:49:09.289 WARN: This description "undeclared name: metric" is not usable
15:49:09.289 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: metric
15:49:09.290 WARN: This description "undeclared name: hermes" is not usable
15:49:09.290 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: hermes
15:49:09.290 WARN: This description "undeclared name: metric" is not usable
15:49:09.290 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: metric
15:49:09.291 WARN: This description "undeclared name: handler" is not usable
15:49:09.291 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handler
15:49:09.293 DEBUG: 'main.go' generated metadata  with charset 'UTF-8'
15:49:09.294 WARN: This description "undeclared name: hermes" is not usable
15:49:09.294 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: hermes
15:49:09.295 WARN: This description "undeclared name: metric" is not usable
15:49:09.295 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: metric
15:49:09.295 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/server (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/gitlab.kancelar.seznam.cz/Odpovidac/goutils/server)" is not usable
15:49:09.295 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/server (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/gitlab.kancelar.seznam.cz/Odpovidac/goutils/server) is null, issue not saved
15:49:09.296 WARN: This description "undeclared name: metric" is not usable
15:49:09.296 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: metric
15:49:09.296 WARN: This description "undeclared name: handler" is not usable
15:49:09.296 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: handler
15:49:09.297 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric)" is not usable
15:49:09.297 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric) is null, issue not saved
15:49:09.297 WARN: This description "undeclared name: hermes" is not usable
15:49:09.297 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: hermes
15:49:09.298 WARN: This description "undeclared name: hermes" is not usable
15:49:09.298 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: hermes
15:49:09.298 WARN: This description "undeclared name: envconfig" is not usable
15:49:09.299 WARN: This issue is create because there is a problem with gometalinter analyse: undeclared name: envconfig
15:49:09.299 WARN: This description "could not import gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler)" is not usable
15:49:09.299 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler) is null, issue not saved
15:49:09.300 WARN: This description "could not import github.com/kelseyhightower/envconfig (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/github.com/kelseyhightower/envconfig)" is not usable
15:49:09.300 WARN: The key for the message could not import github.com/kelseyhightower/envconfig (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/github.com/kelseyhightower/envconfig) is null, issue not saved
15:49:09.300 WARN: This description "could not import gitlab.kancelar.seznam.cz/common/hermes (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/gitlab.kancelar.seznam.cz/common/hermes)" is not usable
15:49:09.300 WARN: The key for the message could not import gitlab.kancelar.seznam.cz/common/hermes (can't find import: gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/vendor/gitlab.kancelar.seznam.cz/common/hermes) is null, issue not saved
15:49:09.300 INFO: Sensor GoMetaLinter issues loader sensor [golang] (done) | time=234ms
15:49:09.301 INFO: Sensor Go Coverage [golang]
15:49:09.305 INFO: Analyse for /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/coverage.xml
15:49:09.317 INFO: Sensor Go Coverage [golang] (done) | time=16ms
15:49:09.317 INFO: Sensor Go test JUnit loader sensor [golang]
15:49:09.323 WARN: file not found /builds/Odpovidac/iris-firmy/handler
15:49:09.323 INFO: Sensor Go test JUnit loader sensor [golang] (done) | time=6ms
15:49:09.323 INFO: Sensor Go Highlighter Sensor [golang]
15:49:09.327 DEBUG: Coloring the file: /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler/config.go
15:49:09.341 DEBUG: Line number 1 index start: 0 index end: 7
15:49:09.342 DEBUG: Line number 3 index start: 0 index end: 6
15:49:09.342 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" 1
15:49:09.342 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" 52
15:49:09.342 DEBUG: index 1 indexEnd 52
15:49:09.342 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" -1
15:49:09.343 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" 1
15:49:09.343 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 1
15:49:09.343 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 52
15:49:09.343 DEBUG: index 1 indexEnd 52
15:49:09.343 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" -1
15:49:09.343 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 1
15:49:09.343 DEBUG: 	"net/http" 1
15:49:09.343 DEBUG: 	"net/http" 10
15:49:09.343 DEBUG: index 1 indexEnd 10
15:49:09.343 DEBUG: 	"net/http" -1
15:49:09.343 DEBUG: 	"net/http" 1
15:49:09.343 DEBUG: 	"time" 1
15:49:09.343 DEBUG: 	"time" 6
15:49:09.343 DEBUG: index 1 indexEnd 6
15:49:09.343 DEBUG: 	"time" -1
15:49:09.343 DEBUG: 	"time" 1
15:49:09.344 DEBUG: Line number 10 index start: 27 index end: 36
15:49:09.344 DEBUG: Line number 10 index start: 0 index end: 4
15:49:09.344 DEBUG: Line number 10 index start: 27 index end: 30
15:49:09.344 DEBUG: Line number 16 index start: 12 index end: 18
15:49:09.344 DEBUG: Line number 16 index start: 0 index end: 4
15:49:09.345 DEBUG: 	Timeout  time.Duration `default:"1000ms"` 33
15:49:09.345 DEBUG: 	Timeout  time.Duration `default:"1000ms"` 40
15:49:09.345 DEBUG: index 33 indexEnd 40
15:49:09.345 DEBUG: 	Timeout  time.Duration `default:"1000ms"` -1
15:49:09.345 DEBUG: 	Timeout  time.Duration `default:"1000ms"` 33
15:49:09.345 DEBUG: Line number 19 index start: 25 index end: 32
15:49:09.345 DEBUG: 	Endpoint string        `default:"https://www.firmy.cz/api/mobile/search"` 33
15:49:09.345 DEBUG: 	Endpoint string        `default:"https://www.firmy.cz/api/mobile/search"` 72
15:49:09.345 DEBUG: index 33 indexEnd 72
15:49:09.345 DEBUG: 	Endpoint string        `default:"https://www.firmy.cz/api/mobile/search"` -1
15:49:09.345 DEBUG: 	Endpoint string        `default:"https://www.firmy.cz/api/mobile/search"` 33
15:49:09.345 DEBUG: Line number 20 index start: 25 index end: 32
15:49:09.345 DEBUG: Line number 20 index start: 6 index end: 9
15:49:09.345 DEBUG: Line number 20 index start: 10 index end: 16
15:49:09.345 DEBUG: 	AuthKey   string `default:"staging"` 27
15:49:09.345 DEBUG: 	AuthKey   string `default:"staging"` 35
15:49:09.345 DEBUG: index 27 indexEnd 35
15:49:09.345 DEBUG: 	AuthKey   string `default:"staging"` -1
15:49:09.345 DEBUG: 	AuthKey   string `default:"staging"` 27
15:49:09.346 DEBUG: Line number 22 index start: 19 index end: 26
15:49:09.346 DEBUG: Line number 22 index start: 11 index end: 17
15:49:09.346 DEBUG: 	AuthToken string `default:"b968cb2baf8b0365512e724d27698fe7"` 27
15:49:09.346 DEBUG: 	AuthToken string `default:"b968cb2baf8b0365512e724d27698fe7"` 60
15:49:09.346 DEBUG: index 27 indexEnd 60
15:49:09.346 DEBUG: 	AuthToken string `default:"b968cb2baf8b0365512e724d27698fe7"` -1
15:49:09.346 DEBUG: 	AuthToken string `default:"b968cb2baf8b0365512e724d27698fe7"` 27
15:49:09.346 DEBUG: Line number 23 index start: 19 index end: 26
15:49:09.346 DEBUG: Line number 23 index start: 11 index end: 17
15:49:09.346 DEBUG: Line number 28 index start: 0 index end: 4
15:49:09.347 DEBUG: Line number 29 index start: 1 index end: 7
15:49:09.347 DEBUG: Line number 32 index start: 0 index end: 4
15:49:09.347 DEBUG: Line number 32 index start: 24 index end: 27
15:49:09.347 DEBUG: Line number 32 index start: 30 index end: 36
15:49:09.347 DEBUG: Line number 33 index start: 1 index end: 7
15:49:09.347 DEBUG: Line number 33 index start: 15 index end: 18
15:49:09.347 DEBUG: Line number 38 index start: 0 index end: 4
15:49:09.348 DEBUG: Line number 43 index start: 1 index end: 7
15:49:09.357 DEBUG: Coloring the file: /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler/firmy.go
15:49:09.357 DEBUG: Line number 1 index start: 0 index end: 7
15:49:09.358 DEBUG: Line number 3 index start: 0 index end: 6
15:49:09.358 DEBUG: 	"fmt" 1
15:49:09.358 DEBUG: 	"fmt" 5
15:49:09.358 DEBUG: index 1 indexEnd 5
15:49:09.358 DEBUG: 	"fmt" -1
15:49:09.358 DEBUG: 	"fmt" 1
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/jsonpb" 1
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/jsonpb" 35
15:49:09.358 DEBUG: index 1 indexEnd 35
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/jsonpb" -1
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/jsonpb" 1
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/proto" 1
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/proto" 34
15:49:09.358 DEBUG: index 1 indexEnd 34
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/proto" -1
15:49:09.358 DEBUG: 	"github.com/golang/protobuf/proto" 1
15:49:09.358 DEBUG: 	"github.com/mwitkow/go-grpc-middleware" 1
15:49:09.359 DEBUG: 	"github.com/mwitkow/go-grpc-middleware" 39
15:49:09.359 DEBUG: index 1 indexEnd 39
15:49:09.359 DEBUG: 	"github.com/mwitkow/go-grpc-middleware" -1
15:49:09.359 DEBUG: 	"github.com/mwitkow/go-grpc-middleware" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" 52
15:49:09.359 DEBUG: index 1 indexEnd 52
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" -1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/client" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/constants" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/constants" 55
15:49:09.359 DEBUG: index 1 indexEnd 55
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/constants" -1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/constants" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" 52
15:49:09.359 DEBUG: index 1 indexEnd 52
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" -1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 52
15:49:09.359 DEBUG: index 1 indexEnd 52
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" -1
15:49:09.359 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 1
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy" 1
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy" 65
15:49:09.360 DEBUG: index 1 indexEnd 65
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy" -1
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/proto/iris/firmy" 1
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris/proto/iris" 1
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris/proto/iris" 53
15:49:09.360 DEBUG: index 1 indexEnd 53
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris/proto/iris" -1
15:49:09.360 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris/proto/iris" 1
15:49:09.360 DEBUG: 	"golang.org/x/net/context" 1
15:49:09.360 DEBUG: 	"golang.org/x/net/context" 26
15:49:09.360 DEBUG: index 1 indexEnd 26
15:49:09.360 DEBUG: 	"golang.org/x/net/context" -1
15:49:09.360 DEBUG: 	"golang.org/x/net/context" 1
15:49:09.360 DEBUG: 	"google.golang.org/grpc" 1
15:49:09.360 DEBUG: 	"google.golang.org/grpc" 24
15:49:09.360 DEBUG: index 1 indexEnd 24
15:49:09.360 DEBUG: 	"google.golang.org/grpc" -1
15:49:09.360 DEBUG: 	"google.golang.org/grpc" 1
15:49:09.360 DEBUG: 	"net/http" 1
15:49:09.361 DEBUG: 	"net/http" 10
15:49:09.361 DEBUG: index 1 indexEnd 10
15:49:09.361 DEBUG: 	"net/http" -1
15:49:09.361 DEBUG: 	"net/http" 1
15:49:09.361 DEBUG: 	"net/url" 1
15:49:09.361 DEBUG: 	"net/url" 9
15:49:09.361 DEBUG: index 1 indexEnd 9
15:49:09.361 DEBUG: 	"net/url" -1
15:49:09.361 DEBUG: 	"net/url" 1
15:49:09.361 DEBUG: Line number 22 index start: 0 index end: 4
15:49:09.361 DEBUG: 	req, err := http.NewRequest("GET", cfg.GetEndpoint(), nil) 29
15:49:09.361 DEBUG: 	req, err := http.NewRequest("GET", cfg.GetEndpoint(), nil) 33
15:49:09.361 DEBUG: index 29 indexEnd 33
15:49:09.361 DEBUG: 	req, err := http.NewRequest("GET", cfg.GetEndpoint(), nil) -1
15:49:09.361 DEBUG: 	req, err := http.NewRequest("GET", cfg.GetEndpoint(), nil) 29
15:49:09.361 DEBUG: Line number 23 index start: 48 index end: 51
15:49:09.361 DEBUG: Line number 24 index start: 1 index end: 3
15:49:09.362 DEBUG: Line number 25 index start: 2 index end: 8
15:49:09.362 DEBUG: 	q.Add("q", in.GetQuery()) 7
15:49:09.362 DEBUG: 	q.Add("q", in.GetQuery()) 9
15:49:09.362 DEBUG: index 7 indexEnd 9
15:49:09.362 DEBUG: 	q.Add("q", in.GetQuery()) -1
15:49:09.362 DEBUG: 	q.Add("q", in.GetQuery()) 7
15:49:09.362 DEBUG: Line number 33 index start: 1 index end: 3
15:49:09.363 DEBUG: 		q.Add("gpsLon", fmt.Sprintf("%f", loc.GetLongitude())) 8
15:49:09.363 DEBUG: 		q.Add("gpsLon", fmt.Sprintf("%f", loc.GetLongitude())) 15
15:49:09.363 DEBUG: index 8 indexEnd 15
15:49:09.363 DEBUG: 		q.Add("gpsLon", fmt.Sprintf("%f", loc.GetLongitude())) 30
15:49:09.363 DEBUG: 		q.Add("gpsLon", fmt.Sprintf("%f", loc.GetLongitude())) 33
15:49:09.363 DEBUG: index 30 indexEnd 33
15:49:09.363 DEBUG: 		q.Add("gpsLon", fmt.Sprintf("%f", loc.GetLongitude())) -1
15:49:09.363 DEBUG: 		q.Add("gpsLon", fmt.Sprintf("%f", loc.GetLongitude())) 8
15:49:09.363 DEBUG: Line number 34 index start: 25 index end: 28
15:49:09.363 DEBUG: 		q.Add("gpsLat", fmt.Sprintf("%f", loc.GetLatitude())) 8
15:49:09.363 DEBUG: 		q.Add("gpsLat", fmt.Sprintf("%f", loc.GetLatitude())) 15
15:49:09.363 DEBUG: index 8 indexEnd 15
15:49:09.363 DEBUG: 		q.Add("gpsLat", fmt.Sprintf("%f", loc.GetLatitude())) 30
15:49:09.363 DEBUG: 		q.Add("gpsLat", fmt.Sprintf("%f", loc.GetLatitude())) 33
15:49:09.363 DEBUG: index 30 indexEnd 33
15:49:09.363 DEBUG: 		q.Add("gpsLat", fmt.Sprintf("%f", loc.GetLatitude())) -1
15:49:09.363 DEBUG: 		q.Add("gpsLat", fmt.Sprintf("%f", loc.GetLatitude())) 8
15:49:09.363 DEBUG: Line number 35 index start: 25 index end: 28
15:49:09.363 DEBUG: 		q.Add("gpsAcc", fmt.Sprintf("%f", loc.GetAccuracy())) 8
15:49:09.363 DEBUG: 		q.Add("gpsAcc", fmt.Sprintf("%f", loc.GetAccuracy())) 15
15:49:09.363 DEBUG: index 8 indexEnd 15
15:49:09.363 DEBUG: 		q.Add("gpsAcc", fmt.Sprintf("%f", loc.GetAccuracy())) 30
15:49:09.363 DEBUG: 		q.Add("gpsAcc", fmt.Sprintf("%f", loc.GetAccuracy())) 33
15:49:09.363 DEBUG: index 30 indexEnd 33
15:49:09.364 DEBUG: 		q.Add("gpsAcc", fmt.Sprintf("%f", loc.GetAccuracy())) -1
15:49:09.364 DEBUG: 		q.Add("gpsAcc", fmt.Sprintf("%f", loc.GetAccuracy())) 8
15:49:09.364 DEBUG: Line number 36 index start: 25 index end: 28
15:49:09.364 DEBUG: Line number 40 index start: 1 index end: 7
15:49:09.364 DEBUG: Line number 45 index start: 13 index end: 19
15:49:09.364 DEBUG: Line number 45 index start: 0 index end: 4
15:49:09.365 DEBUG: Line number 51 index start: 0 index end: 4
15:49:09.365 DEBUG: 		server.GrpcMetricWrapper("iris-firmy", metric.GetMetric()), 27
15:49:09.365 DEBUG: 		server.GrpcMetricWrapper("iris-firmy", metric.GetMetric()), 38
15:49:09.365 DEBUG: index 27 indexEnd 38
15:49:09.365 DEBUG: 		server.GrpcMetricWrapper("iris-firmy", metric.GetMetric()), -1
15:49:09.365 DEBUG: 		server.GrpcMetricWrapper("iris-firmy", metric.GetMetric()), 27
15:49:09.365 DEBUG: Line number 60 index start: 1 index end: 7
15:49:09.366 DEBUG: Line number 63 index start: 0 index end: 4
15:49:09.366 DEBUG: Line number 64 index start: 1 index end: 7
15:49:09.366 DEBUG: Line number 67 index start: 0 index end: 4
15:49:09.366 DEBUG: Line number 68 index start: 1 index end: 7
15:49:09.366 DEBUG: Line number 72 index start: 0 index end: 4
15:49:09.366 DEBUG: Line number 73 index start: 17 index end: 22
15:49:09.366 DEBUG: 	rc.Logger.Info("Request:", in.String()) 16
15:49:09.366 DEBUG: 	rc.Logger.Info("Request:", in.String()) 25
15:49:09.366 DEBUG: index 16 indexEnd 25
15:49:09.366 DEBUG: 	rc.Logger.Info("Request:", in.String()) -1
15:49:09.366 DEBUG: 	rc.Logger.Info("Request:", in.String()) 16
15:49:09.366 DEBUG: 	if in.GetQuery() == "" { 21
15:49:09.366 DEBUG: 	if in.GetQuery() == "" { 22
15:49:09.366 DEBUG: index 21 indexEnd 22
15:49:09.366 DEBUG: 	if in.GetQuery() == "" { -1
15:49:09.366 DEBUG: 	if in.GetQuery() == "" { 21
15:49:09.367 DEBUG: Line number 78 index start: 1 index end: 3
15:49:09.367 DEBUG: Line number 79 index start: 2 index end: 8
15:49:09.367 DEBUG: Line number 83 index start: 1 index end: 3
15:49:09.367 DEBUG: Line number 85 index start: 2 index end: 8
15:49:09.367 DEBUG: Line number 90 index start: 1 index end: 3
15:49:09.367 DEBUG: Line number 92 index start: 2 index end: 8
15:49:09.367 DEBUG: 	rc.Logger.Debug("Json response:", data.String()) 17
15:49:09.367 DEBUG: 	rc.Logger.Debug("Json response:", data.String()) 32
15:49:09.367 DEBUG: index 17 indexEnd 32
15:49:09.367 DEBUG: 	rc.Logger.Debug("Json response:", data.String()) -1
15:49:09.367 DEBUG: 	rc.Logger.Debug("Json response:", data.String()) 17
15:49:09.368 DEBUG: Line number 102 index start: 1 index end: 3
15:49:09.368 DEBUG: Line number 103 index start: 2 index end: 8
15:49:09.368 DEBUG: 	rc.Logger.Debug("Proto response:", pb.String()) 17
15:49:09.368 DEBUG: 	rc.Logger.Debug("Proto response:", pb.String()) 33
15:49:09.368 DEBUG: index 17 indexEnd 33
15:49:09.368 DEBUG: 	rc.Logger.Debug("Proto response:", pb.String()) -1
15:49:09.368 DEBUG: 	rc.Logger.Debug("Proto response:", pb.String()) 17
15:49:09.368 DEBUG: Line number 109 index start: 1 index end: 3
15:49:09.368 DEBUG: Line number 110 index start: 2 index end: 8
15:49:09.368 DEBUG: Line number 115 index start: 1 index end: 3
15:49:09.368 DEBUG: Line number 116 index start: 2 index end: 8
15:49:09.369 DEBUG: Line number 119 index start: 1 index end: 7
15:49:09.371 DEBUG: Coloring the file: /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/main.go
15:49:09.371 DEBUG: Line number 1 index start: 0 index end: 7
15:49:09.372 DEBUG: Line number 3 index start: 0 index end: 6
15:49:09.372 DEBUG: 	"flag" 1
15:49:09.372 DEBUG: 	"flag" 6
15:49:09.372 DEBUG: index 1 indexEnd 6
15:49:09.372 DEBUG: 	"flag" -1
15:49:09.372 DEBUG: 	"flag" 1
15:49:09.372 DEBUG: 	"fmt" 1
15:49:09.372 DEBUG: 	"fmt" 5
15:49:09.372 DEBUG: index 1 indexEnd 5
15:49:09.372 DEBUG: 	"fmt" -1
15:49:09.372 DEBUG: 	"fmt" 1
15:49:09.372 DEBUG: 	"github.com/kelseyhightower/envconfig" 1
15:49:09.372 DEBUG: 	"github.com/kelseyhightower/envconfig" 38
15:49:09.372 DEBUG: index 1 indexEnd 38
15:49:09.372 DEBUG: 	"github.com/kelseyhightower/envconfig" -1
15:49:09.372 DEBUG: 	"github.com/kelseyhightower/envconfig" 1
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" 1
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" 52
15:49:09.373 DEBUG: index 1 indexEnd 52
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" -1
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/metric" 1
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 1
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 52
15:49:09.373 DEBUG: index 1 indexEnd 52
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" -1
15:49:09.373 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/goutils/server" 1
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler" 1
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler" 56
15:49:09.374 DEBUG: index 1 indexEnd 56
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler" -1
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler" 1
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/common/hermes" 1
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/common/hermes" 41
15:49:09.374 DEBUG: index 1 indexEnd 41
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/common/hermes" -1
15:49:09.374 DEBUG: 	"gitlab.kancelar.seznam.cz/common/hermes" 1
15:49:09.374 DEBUG: Line number 13 index start: 0 index end: 3
15:49:09.374 DEBUG: Line number 14 index start: 9 index end: 15
15:49:09.375 DEBUG: Line number 15 index start: 9 index end: 15
15:49:09.375 DEBUG: Line number 18 index start: 0 index end: 4
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") 26
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") 36
15:49:09.375 DEBUG: index 26 indexEnd 36
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") 39
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") 40
15:49:09.375 DEBUG: index 39 indexEnd 40
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") 43
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") 86
15:49:09.375 DEBUG: index 43 indexEnd 86
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") -1
15:49:09.375 DEBUG: 	envprefix := flag.String("envprefix", "", "Environment variables configuration prefix") 26
15:49:09.375 DEBUG: 	debug := flag.Bool("debug", false, "Run in debug mode") 20
15:49:09.375 DEBUG: 	debug := flag.Bool("debug", false, "Run in debug mode") 26
15:49:09.375 DEBUG: index 20 indexEnd 26
15:49:09.375 DEBUG: 	debug := flag.Bool("debug", false, "Run in debug mode") 36
15:49:09.375 DEBUG: 	debug := flag.Bool("debug", false, "Run in debug mode") 54
15:49:09.375 DEBUG: index 36 indexEnd 54
15:49:09.375 DEBUG: 	debug := flag.Bool("debug", false, "Run in debug mode") -1
15:49:09.375 DEBUG: 	debug := flag.Bool("debug", false, "Run in debug mode") 20
15:49:09.375 DEBUG: 	hermes.Info(fmt.Sprintf("Version '%s'", Version)) 25
15:49:09.375 DEBUG: 	hermes.Info(fmt.Sprintf("Version '%s'", Version)) 38
15:49:09.376 DEBUG: index 25 indexEnd 38
15:49:09.376 DEBUG: 	hermes.Info(fmt.Sprintf("Version '%s'", Version)) -1
15:49:09.376 DEBUG: 	hermes.Info(fmt.Sprintf("Version '%s'", Version)) 25
15:49:09.376 DEBUG: Line number 25 index start: 20 index end: 23
15:49:09.376 DEBUG: 	hermes.Info(fmt.Sprintf("Build: '%s'", Build)) 25
15:49:09.376 DEBUG: 	hermes.Info(fmt.Sprintf("Build: '%s'", Build)) 37
15:49:09.376 DEBUG: index 25 indexEnd 37
15:49:09.376 DEBUG: 	hermes.Info(fmt.Sprintf("Build: '%s'", Build)) -1
15:49:09.376 DEBUG: 	hermes.Info(fmt.Sprintf("Build: '%s'", Build)) 25
15:49:09.376 DEBUG: Line number 26 index start: 20 index end: 23
15:49:09.376 DEBUG: Line number 29 index start: 1 index end: 3
15:49:09.376 DEBUG: Line number 33 index start: 1 index end: 3
15:49:09.377 DEBUG: Line number 37 index start: 1 index end: 3
15:49:09.377 DEBUG: 		hermes.Info("Running in debug mode") 14
15:49:09.377 DEBUG: 		hermes.Info("Running in debug mode") 36
15:49:09.377 DEBUG: index 14 indexEnd 36
15:49:09.377 DEBUG: 		hermes.Info("Running in debug mode") -1
15:49:09.377 DEBUG: 		hermes.Info("Running in debug mode") 14
15:49:09.377 DEBUG: Line number 41 index start: 1 index end: 3
15:49:09.377 DEBUG: Line number 48 index start: 1 index end: 3
15:49:09.377 DEBUG: Line number 52 index start: 1 index end: 3
15:49:09.379 INFO: Sensor Go Highlighter Sensor [golang] (done) | time=56ms
15:49:09.379 INFO: Sensor Go Metrics Sensor [golang]
15:49:09.391 INFO: Sensor Go Metrics Sensor [golang] (done) | time=12ms
15:49:09.391 INFO: Sensor Java Properties Squid Sensor [javaProperties]
15:49:09.394 INFO: 1 source files to be analyzed
15:49:09.462 DEBUG: 'sonar-project.properties' generated metadata  with charset 'UTF-8'
15:49:09.478 INFO: Sensor Java Properties Squid Sensor [javaProperties] (done) | time=87ms
15:49:09.478 INFO: 1/1 source files have been analyzed
15:49:09.478 INFO: Sensor Coverage Report Import [csharp]
15:49:09.478 DEBUG: No coverage property. Skip Sensor
15:49:09.479 INFO: Sensor Coverage Report Import [csharp] (done) | time=1ms
15:49:09.479 INFO: Sensor Coverage Report Import [csharp]
15:49:09.479 DEBUG: No coverage property. Skip Sensor
15:49:09.479 INFO: Sensor Coverage Report Import [csharp] (done) | time=0ms
15:49:09.479 INFO: Sensor Unit Test Results Import [csharp]
15:49:09.479 DEBUG: No unit test results property. Skip Sensor
15:49:09.479 INFO: Sensor Unit Test Results Import [csharp] (done) | time=0ms
15:49:09.479 INFO: Sensor XmlFileSensor [java]
15:49:09.479 INFO: Sensor XmlFileSensor [java] (done) | time=0ms
15:49:09.479 INFO: Sensor Zero Coverage Sensor
15:49:09.491 INFO: Sensor Zero Coverage Sensor (done) | time=12ms
15:49:09.491 INFO: Sensor CPD Block Indexer
15:49:09.491 DEBUG: org.sonar.scanner.cpd.deprecated.DefaultCpdBlockIndexer is used for go
15:49:09.492 DEBUG: No CpdMapping for language go
15:49:09.492 DEBUG: org.sonar.scanner.cpd.deprecated.DefaultCpdBlockIndexer is used for jproperties
15:49:09.492 DEBUG: No CpdMapping for language jproperties
15:49:09.492 INFO: Sensor CPD Block Indexer (done) | time=1ms
15:49:09.497 INFO: Calculating CPD for 0 files
15:49:09.499 INFO: CPD calculation finished
15:49:09.606 INFO: Analysis report generated in 103ms, dir size=71 KB
15:49:09.624 INFO: Analysis reports compressed in 18ms, zip size=24 KB
15:49:09.624 INFO: Analysis report generated in /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/.scannerwork/batch-report
15:49:09.624 DEBUG: Upload report
15:49:09.675 DEBUG: POST 200 https://sonarqube.dev/api/ce/submit?projectKey=odpovidac:iris-firmy&projectName=Odpovidac%20-%20iris-firmy | time=48ms
15:49:09.678 INFO: Analysis report uploaded in 54ms
15:49:09.679 INFO: ANALYSIS SUCCESSFUL, you can browse https://sonarqube.dev/dashboard/index/odpovidac:iris-firmy
15:49:09.679 INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
15:49:09.679 INFO: More about the report processing at https://sonarqube.dev/api/ce/task?id=AVyxKtLuk3cHN1JW7q2H
15:49:09.680 DEBUG: Report metadata written to /GO/src/gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/.scannerwork/report-task.txt
15:49:09.684 DEBUG: Post-jobs : org.sonar.plugins.buildbreaker.ForbiddenConfigurationBreaker@472719df -> org.sonar.plugins.buildbreaker.QualityGateBreaker@5cfa2ac5
15:49:09.684 INFO: Executing post-job org.sonar.plugins.buildbreaker.ForbiddenConfigurationBreaker
15:49:09.685 INFO: Executing post-job org.sonar.plugins.buildbreaker.QualityGateBreaker
15:49:09.900 INFO: Waiting for report processing to complete...
15:49:19.917 DEBUG: Requesting quality gate status for analysisId AVyxKtgb5uGGhzBoh0gy
15:49:19.942 INFO: Quality gate status: OK
15:49:19.942 INFO: 
15:49:19.943 INFO:  -------- Profiling of module Odpovidac - iris-firmy: 13s --------
15:49:19.943 INFO: 
15:49:19.945 INFO:  * Post-Jobs execution time:                                       10s (78%)
15:49:19.945 INFO:  * Sensors execution time:                                       475ms (3%)
15:49:19.945 INFO:  * Index filesystem execution time:                              366ms (2%)
15:49:19.945 INFO:  * Publish report execution time:                                181ms (1%)
15:49:19.945 INFO:  * Computing duplications execution time:                          3ms (0%)
15:49:19.945 INFO:  * Initializers execution time:                                    1ms (0%)
15:49:19.945 INFO: 
15:49:19.945 INFO:  * Initializers execution time breakdown:                          1ms
15:49:19.946 INFO:    o GenericCoverageSensor:                                        1ms (100%)
15:49:19.946 INFO: 
15:49:19.946 INFO:  * Sensors execution time breakdown:                             475ms
15:49:19.946 INFO:    o GoMetaLinter issues loader sensor:                          233ms (49%)
15:49:19.946 INFO:    o Java Properties Squid Sensor:                                87ms (18%)
15:49:19.946 INFO:    o Go Highlighter Sensor:                                       56ms (11%)
15:49:19.946 INFO:    o Embedded CSS Analyzer Sensor:                                47ms (9%)
15:49:19.946 INFO:    o Go Coverage:                                                 16ms (3%)
15:49:19.946 INFO:    o Zero Coverage Sensor:                                        12ms (2%)
15:49:19.946 INFO:    o Go Metrics Sensor:                                           12ms (2%)
15:49:19.946 INFO:    o Go test JUnit loader sensor:                                  6ms (1%)
15:49:19.946 INFO:    o CPD Block Indexer:                                            1ms (0%)
15:49:19.946 INFO:    o CxxXunitSensor:                                               1ms (0%)
15:49:19.946 INFO: 
15:49:19.946 INFO:  * Post-Jobs execution time breakdown:                             10s
15:49:19.946 INFO:    o QualityGateBreaker:                                           10s (99%)
15:49:19.946 INFO: 
15:49:19.946 INFO:  -------- End of profiling of module Odpovidac - iris-firmy --------
15:49:19.946 INFO: 
15:49:19.953 INFO: Profiling data stored in /builds/Odpovidac/iris-firmy/.sonar/profiling/odpovidac_iris-firmy-profiler.properties
15:49:19.960 INFO: Task total time: 16.822 s
15:49:19.960 INFO: ------------------------------------------------------------------------
15:49:19.960 INFO: EXECUTION SUCCESS
15:49:19.960 INFO: ------------------------------------------------------------------------
15:49:19.960 INFO: Total time: 1:04.145s
15:49:20.180 INFO: Final Memory: 64M/1561M
15:49:20.180 INFO: ------------------------------------------------------------------------
15:49:20.180 DEBUG: Execution getVersion
15:49:20.181 DEBUG: Execution stop

Versions

SonarQube: 6.4 (build 25310)
SonarQube Scanner: 3.0.3.778
sonar-golang: 1.2.8
Java: 1.8.0_51 Oracle Corporation (64-bit)
Linux: 3.16.0-4-amd64 amd64

Additional Information

gitlab.kancelar.seznam.cz/Odpovidac/iris-firmy/handler/coverage.xml
coverage.zip
Succesfull local log:
scanner.zip

Test files parsed as code

Description

I realized today that the content of go test files is counted against the total project lines-of-code. I checked against SonarJava, as I was not sure if this might be desired behavior - but its not.

The inherit problem is that test files are parsed as regular source code. This also has the side effect that gometalinter issues for test files are also shown in SonarQube.

Steps to Reproduce

  1. Write some go code (e.g. foo.go)
  2. Write a test file (e.g. foo_test.go)
  3. Trigger the sonar scanner

Content of your sonar-project.properties

sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.test.reportPath=test.xml

sonar.sources=./
sonar.exclusions=sonar-project.properties,report.xml,test.xml,coverage.xml

Log of sonar-scanner related to the plugin

Nothing useful, as no errors happen.

Versions

SonarQube: 6.7.1 (build 35068)
SonarScanner: 3.0.3.778
sonar-golang: sonar-golang-plugin-1.2.11-rc-reubentfix (also verified on rc7 and rc8)

Additional Information

I tried to add ./*_test.go to the sonar.exclusions and sonar.tests in sonar-project.properties. I thought, that maybe sonar-go just doesn't correctly pick up the test files (not sure if it can code-wise anyway?). However, that just resulted in a nasty stacktrace. This is a different issue, but this definitely prevents setting a correct expression for distinguishing between code and tests....

ERROR: Error during SonarQube Scanner execution
java.nio.file.InvalidPathException: Illegal char <*> at index 2: ./*_test.go
        at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
        at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
        at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
        at sun.nio.fs.AbstractPath.endsWith(AbstractPath.java:48)
        at fr.univartois.sonargo.coverage.CoverageSensor.isAnExcludedPath(CoverageSensor.java:86)
        at fr.univartois.sonargo.coverage.CoverageSensor.lambda$createStream$0(CoverageSensor.java:100)
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.Iterator.forEachRemaining(Iterator.java:116)
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
        at fr.univartois.sonargo.coverage.CoverageSensor.execute(CoverageSensor.java:108)
        at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
        at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
        at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
        at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
        at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
        at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)
        at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:111)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
        at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
        at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)

_test.go files are now shown in coverage list

Hello all
i just updated my sonar plugin to the latest RC (rc12). Despite I added those 2 lines into config file

sonar.test.inclusions=/_test.go
sonar.sources.inclusions=/.go

In my coverage file list now are shown _test,go files too

String index out of range: -1 when parsing test report

Description

Got java.io.FileNotFoundException, but the path of report.xml exists.

Steps to Reproduce

  1. Run sonar-scanner

Content of your sonar-project.properties

sonar.host.url=http://10.*.*.*:*
sonar.login=***
sonar.password=***
sonar.language=go
sonar.projectKey=march
sonar.projectName=March
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml #default
sonar.coverage.reportPath=coverage.xml # default
sonar.coverage.dtdVerification=false # if you want disabled the DTD verification for a proxy problem for example
sonar.test.reportPath=test.xml #default
sonar.sources=./src/march

Log of sonar-scanner related to the plugin

...
INFO: Parsing 'GoMetaLinter' Analysis Results
ERROR: IOException
java.io.FileNotFoundException: /Users/xiezhenye/Documents/work/xzy/march/report.xml #default (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
	at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:226)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.parseAndSaveResults(GoLintIssueLoaderSensor.java:136)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.execute(GoLintIssueLoaderSensor.java:121)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:179)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:261)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:256)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:245)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:119)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy0.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
	at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
	at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)

ERROR: Unable to parse the provided GoMetaLinter file
javax.xml.stream.XMLStreamException: java.io.FileNotFoundException: /Users/xiezhenye/Documents/work/xzy/march/report.xml #default (No such file or directory)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:263)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.parseAndSaveResults(GoLintIssueLoaderSensor.java:136)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.execute(GoLintIssueLoaderSensor.java:121)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:179)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:261)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:256)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:245)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:119)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy0.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
	at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
	at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.io.FileNotFoundException: /Users/xiezhenye/Documents/work/xzy/march/report.xml #default (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
	at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:226)
	... 33 common frames omitted

Versions

Versions of your sonar installation (server, sonar-scanner), gometalinter, go and OS.
sonar-golang v1.2.11-rc7
SonarQube Scanner 3.0.3.778
Java 1.8.0_73 Oracle Corporation (64-bit)
Mac OS X 10.13.2 x86_64
go 1.9.1

Additional Information

The file /Users/xiezhenye/Documents/work/xzy/march/report.xml is really exists.

$ ls -l /Users/xiezhenye/Documents/work/xzy/march/report.xml
-rw-r--r--  1 xiezhenye  staff  54039 12 21 16:49 /Users/xiezhenye/Documents/work/xzy/march/report.xml

Skipped tests not shown

Hello all,
i enabled the rule "Skipped unit tests should be either removed or fixed". In my code there are few skipped tests but I don't have any evidences in sonar. How can I found them?

Another question: Do you have any known bug in duplicated code. It seems not working too

Latest v1.2.11-rc7 does not show coverage

Description

I no longer have coverage information with the latest pre release v1.2.11-rc7
It works with latest release

Steps to Reproduce

I test sonarqube on this repository https://github.com/junegunn/fzf

Content of your sonar-project.properties

sonar.projectKey=gotest
sonar.projectName=name of project
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=src/coverage.xml
sonar.coverage.dtdVerification=false
sonar.test.reportPath=test.xml
sonar.sources=./
sonar.exclusions="vendor"

Log of sonar-scanner related to the plugin

https://gist.github.com/pcaneill/378e3e15f67a4f103b68748742fbb096

Versions

latest docker sonarcube version
go 1.9

Additional Information

https://gist.github.com/pcaneill/378e3e15f67a4f103b68748742fbb096

No unit test results shown or used in SQ 7.0

Description

Does the plugin work in SonarQube 7.0? I haven't yet dropped back to 6.x
Although the unit test information appears to import, nothing appears in SonarQube to show the unit test status or failures and no rule is triggered for the unit test failure

Steps to Reproduce

  1. with SonarQube 7.0 installed and the latest scanner and the latest Golang plugin
  2. run the scanner
  3. success, but no data in SQ

Content of your sonar-project.properties

sonar.projectKey=outyet
sonar.projectName=outyet
sonar.projectVersion=1.0 

# GoLint report path, default value is report.xml
sonar.golint.reportPath=lint.xml
# Cobertura like coverage report path, default value is coverage.xml
# sonar.coverage.reportPath=coverage.xml
# if you want disabled the DTD verification for a proxy problem for example, true by default
sonar.coverage.dtdVerification=false
# JUnit like test report, default value is test.xml
sonar.test.reportPath=test.xml
sonar.sources=.
# sonar.coverage.exclusions=vendor/**,bin/**,deploy/**,**/*.xml
# sonar.exclusions=vendor/**,bin/**,deploy/**,**/*.xml
sonar.test.inclusions=**/**_test.go
sonar.sources.inclusions=**/**.go

Log of sonar-scanner related to the plugin

INFO: Scanner configuration file: /root/scanner/conf/sonar-scanner.properties
INFO: Project root configuration file: /root/example/outyet/sonar-project.properties
INFO: SonarQube Scanner 3.0.3.778
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Linux 4.4.0-72-generic amd64
INFO: User cache: /root/.sonar/cache
INFO: Publish mode
INFO: Load global settings
INFO: Load global settings (done) | time=82ms
INFO: Server id: AWHexoq9AvoOUlyukw6q
INFO: User cache: /root/.sonar/cache
INFO: Load plugins index
INFO: Load plugins index (done) | time=53ms
INFO: Load/download plugins
INFO: Load/download plugins (done) | time=8ms
INFO: SonarQube server 7.0.0
INFO: Default locale: "en_US", source code encoding: "UTF-8" (analysis is platform dependent)
INFO: Process project properties
INFO: Load project repositories
INFO: Load project repositories (done) | time=90ms
INFO: Load quality profiles
INFO: Load quality profiles (done) | time=41ms
INFO: Load active rules
INFO: Load active rules (done) | time=145ms
INFO: Load metrics repository
INFO: Load metrics repository (done) | time=40ms
WARN: SCM provider autodetection failed. No SCM provider claims to support this project. Please use sonar.scm.provider to define SCM of your project.
INFO: Project key: outyet
INFO: -------------  Scan outyet
INFO: Load server rules
INFO: Load server rules (done) | time=18ms
INFO: Base dir: /root/example/outyet
INFO: Working dir: /root/example/outyet/.scannerwork
INFO: Source paths: .
INFO: Source encoding: UTF-8, default locale: en_US
INFO: Index files
INFO: Included sources:
INFO:   **/**.go
INFO: Excluded sources:
INFO:   **/**_test.go
INFO: Included tests:
INFO:   **/**_test.go
INFO: 1 file indexed
INFO: 10 files ignored because of inclusion/exclusion patterns
INFO: Quality profile for go: Golint Test Rules
INFO: Sensor GoMetaLinter issues loader sensor [golang]
INFO: Parsing the file lint.xml
INFO: Parsing 'GoMetaLinter' Analysis Results
INFO: Sensor GoMetaLinter issues loader sensor [golang] (done) | time=18ms
INFO: Sensor Go Coverage [golang]
INFO: /root/example/outyet
INFO: no coverage file in package /root/example/outyet/coverage.xml
INFO: Sensor Go Coverage [golang] (done) | time=4ms
INFO: Sensor Go test JUnit loader sensor [golang]
INFO: base dir /root/example/outyet
INFO: search test function in /root/example/outyet/main_test.go
search function in file /root/example/outyet/main_test.go
WARN: File not found /root/example/outyet/main_test.go
INFO: Sensor Go test JUnit loader sensor [golang] (done) | time=17ms
INFO: Sensor Go Highlighter Sensor [golang]
INFO: Sensor Go Highlighter Sensor [golang] (done) | time=88ms
INFO: Sensor Go Metrics Sensor [golang]
INFO: Sensor Go Metrics Sensor [golang] (done) | time=10ms
INFO: Sensor Zero Coverage Sensor
INFO: Sensor Zero Coverage Sensor (done) | time=18ms
INFO: Sensor CPD Block Indexer
INFO: Sensor CPD Block Indexer (done) | time=3ms
INFO: No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it.
INFO: Calculating CPD for 0 files
INFO: CPD calculation finished
INFO: Analysis report generated in 94ms, dir size=7 KB
INFO: Analysis reports compressed in 15ms, zip size=4 KB
INFO: Analysis report uploaded in 40ms
INFO: ANALYSIS SUCCESSFUL, you can browse http://10.145.85.140:31862/sonar/dashboard/index/outyet
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
INFO: More about the report processing at http://10.145.85.140:31862/sonar/api/ce/task?id=AWIB8XkHe3en6OeviJsj
INFO: Task total time: 1.561 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 3.250s
INFO: Final Memory: 43M/103M
INFO: ------------------------------------------------------------------------

Versions

SonarQube 7.0
Plugin 1.2.11

Additional Information

Test.xml

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
	<testsuite tests="2" failures="0" time="0.000" name="">
		<properties>
			<property name="go.version" value="go1.10"></property>
		</properties>
		<testcase classname="" name="TestIsTagged" time="0.000"></testcase>
		<testcase classname="" name="TestIntegration" time="0.000"></testcase>
	</testsuite>
</testsuites>

Changing from LGPL 3.0 to Apache 2.0

One user of the plugin would like to contribute to the plugin but cannot due to the current license
of the project conflicting with his employer IP policy.

We initially used LGPL for the plugin because it is the license used by the majority of the sonar plugins.

We welcome contributions from the community and as such are willing to change the current license to Apache 2.0.

Changing the license of the plugin requires all committers of the project to agree with that change.

@dthagard @bobintornado @Tvli @mariusstaicu would you agree to change the license of the project to Apache 2.0?

The change of license would apply in the next release (1.3).

Overlapping highlighter

Description

The highlighter (Colorizer.java) is producing overlapping highlights that SonarQube cannot handle. I believe this could be due to the highlighting being split across highlightingStringInLine and highlightingKeyWord (and highlightingType which was commented out in the version i checked out, git ee9e667).

I commented out the highlightingKeyWord function in Colorizer.java. Just as an example I had a string that contained the "if" keyword, which I think will be very common. The string was "image.Uniform", obviously that "if" should not be interpreted as a keyword.

137: highlightingStringInLine(s, lineNumber);
138: // highlightingKeyWord(s, lineNumber);

Steps to Reproduce

Create a .go file where variable type contains one of the Golang keywords such as "if", for example image.Uniform.

type Style struct {
	fnt        *truetype.Font
	clr        *image.Uniform
}

Log of sonar-scanner related to the plugin

.......
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Cannot register highlighting rule for characters at Range[from [line=29, lineOffset=22] to [line=29, lineOffset=25]] as it overlaps at least one existing rule
at org.sonar.api.batch.sensor.highlighting.internal.DefaultHighlighting.checkOverlappingBoudaries(DefaultHighlighting.java:60)
at org.sonar.api.batch.sensor.highlighting.internal.DefaultHighlighting.doSave(DefaultHighlighting.java:120)
at org.sonar.api.batch.sensor.internal.DefaultStorable.save(DefaultStorable.java:43)
at fr.univartois.sonargo.highlighter.Colorizer.colorize(Colorizer.java:48)

Maven build Errors.

Description

Hi,

I get to source and build to maven from eclipse and command.

When i run mvn build or anything. it is return build failre.

i guess problems is "new HashMap<>();" in testExecution and testIgnoreFileStream of CoverageSensorTest class.

or maybe something my fault?

Thank you.

Steps to Reproduce

  1. git clone or eclipse git clone
  2. maven build
  3. failure

Content of your sonar-project.properties

It will help us to check how you configured the plugin.

Log of sonar-scanner related to the plugin

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec - in fr.univartois.sonargo.highlighter.ColorizerTest

Results :

Tests in error:
fr.univartois.sonargo.coverage.CoverageSensorTest.testExecution(fr.univartois.sonargo.coverage.CoverageSensorTest)
Run 1: CoverageSensorTest.testExecution:114 ? InvalidPath Illegal char <> at index 7...
Run 2: CoverageSensorTest.testExecution:114 ? InvalidPath Illegal char <
> at index 7...

fr.univartois.sonargo.coverage.CoverageSensorTest.testIgnoreFileStream(fr.univartois.sonargo.coverage.CoverageSensorTest)
Run 1: CoverageSensorTest.testIgnoreFileStream:67 ? InvalidPath Illegal char <> at i...
Run 2: CoverageSensorTest.testIgnoreFileStream:67 ? InvalidPath Illegal char <
> at i...

Tests run: 386, Failures: 0, Errors: 2, Skipped: 1

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.549 s
[INFO] Finished at: 2018-03-26T16:33:27+09:00
[INFO] Final Memory: 26M/409M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project sonar-golang-plugin: There are test failures.

Versions

windows 7 or linux
jdk 1.8.0_151
maven 3.5.3

Additional Information

GoLang Scan Results No Showing in the UI

Description

After running a scan on a go project, the UI does not show any results. However, the report.xml records the results

Steps to Reproduce

  1. Create a variable in a .go file that starts with k (i.e kNumberr)
  2. run "sonar-scanner"
  3. run "gometalinter.v1 --checkstyle > report.xml"
  4. run "cat report.xml"

Content of your sonar-project.properties

sonar.projectKey=mygotest
sonar.projectName=My Go Test
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml //default
sonar.coverage.reportPath=coverage.xml // default
sonar.coverage.dtdVerification=false // if you want disabled the DTD verification for a proxy problem for example
sonar.test.reportPath=test.xml //default
sonar.sources=./

Log of sonar-scanner related to the plugin

10:57:41.521 INFO: Scanner configuration file: /Users/daniel/Downloads/sonar-scanner-3.0.3.778-macosx/conf/sonar-scanner.properties
10:57:41.528 INFO: Project root configuration file: /Users/daniel/go/src/github.build.ge.com/sonar-project.properties
10:57:41.572 INFO: SonarQube Scanner 3.0.3.778
10:57:41.572 INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
10:57:41.572 INFO: Mac OS X 10.12.5 x86_64
10:57:41.749 DEBUG: keyStore is :
10:57:41.749 DEBUG: keyStore type is : jks
10:57:41.749 DEBUG: keyStore provider is :
10:57:41.749 DEBUG: init keystore
10:57:41.750 DEBUG: init keymanager of type SunX509
10:57:41.863 INFO: User cache: /Users/daniel/.sonar/cache
10:57:41.863 DEBUG: Extract sonar-scanner-api-batch in temp...
10:57:41.880 DEBUG: Get bootstrap index...
10:57:41.880 DEBUG: Download: http://localhost:9000/batch/index
10:57:41.935 DEBUG: Get bootstrap completed
10:57:41.935 DEBUG: Create isolated classloader...
10:57:41.951 DEBUG: Start temp cleaning...
10:57:41.971 DEBUG: Temp cleaning done
10:57:41.971 DEBUG: Execution getVersion
10:57:41.975 DEBUG: Execution start
10:57:42.340 DEBUG: Publish global mode
10:57:42.442 INFO: Load global settings
10:57:42.480 DEBUG: GET 200 http://localhost:9000/api/settings/values.protobuf | time=32ms
10:57:42.495 INFO: Load global settings (done) | time=54ms
10:57:42.507 INFO: User cache: /Users/daniel/.sonar/cache
10:57:42.725 INFO: Load plugins index
10:57:42.728 DEBUG: GET 200 http://localhost:9000/deploy/plugins/index.txt | time=3ms
10:57:42.729 INFO: Load plugins index (done) | time=5ms
10:57:42.730 DEBUG: Load plugins
10:57:42.756 DEBUG: Load plugins (done) | time=27ms
10:57:42.768 DEBUG: API compatibility mode is enabled on plugin Git [scmgit] (built with API lower than 5.2)
10:57:42.774 DEBUG: API compatibility mode is enabled on plugin SVN [scmsvn] (built with API lower than 5.2)
10:57:42.877 DEBUG: Plugins:
10:57:42.877 DEBUG: * C# 5.10.1.1411 (csharp)
10:57:42.877 DEBUG: * Python 1.7.0.1195 (python)
10:57:42.877 DEBUG: * SonarJava 4.9.0.9858 (java)
10:57:42.877 DEBUG: * Flex 2.3 (flex)
10:57:42.877 DEBUG: * Git 1.2 (scmgit)
10:57:42.877 DEBUG: * SonarXML 1.4.2.885 (xml)
10:57:42.877 DEBUG: * Golang 1.2.2 (golang)
10:57:42.877 DEBUG: * SonarPHP 2.10.0.2087 (php)
10:57:42.877 DEBUG: * SVN 1.4.0.522 (scmsvn)
10:57:42.878 DEBUG: * SonarJS 3.0.0.4962 (javascript)
10:57:42.890 DEBUG: Execution getVersion
10:57:42.890 INFO: SonarQube server 6.4.0
10:57:42.890 INFO: Default locale: "en_US", source code encoding: "UTF-8" (analysis is platform dependent)
10:57:42.891 DEBUG: Work directory: /Users/daniel/go/src/github.build.ge.com/.scannerwork
10:57:42.891 DEBUG: Execution getVersion
10:57:42.891 DEBUG: Execution execute
10:57:43.188 INFO: Process project properties
10:57:43.190 DEBUG: Process project properties (done) | time=2ms
10:57:43.279 INFO: Load project repositories
10:57:43.292 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=yourprojectid | time=12ms
10:57:43.345 INFO: Load project repositories (done) | time=66ms
10:57:43.412 DEBUG: Available languages:
10:57:43.412 DEBUG: * C# => "cs"
10:57:43.412 DEBUG: * Python => "py"
10:57:43.413 DEBUG: * Java => "java"
10:57:43.413 DEBUG: * Flex => "flex"
10:57:43.413 DEBUG: * XML => "xml"
10:57:43.413 DEBUG: * GO => "go"
10:57:43.413 DEBUG: * PHP => "php"
10:57:43.413 DEBUG: * JavaScript => "js"
10:57:43.415 INFO: Load quality profiles
10:57:43.426 DEBUG: GET 200 http://localhost:9000/api/qualityprofiles/search.protobuf?projectKey=yourprojectid | time=10ms
10:57:43.430 INFO: Load quality profiles (done) | time=15ms
10:57:43.434 INFO: Load active rules
10:57:43.493 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXGdWgHDNxqwPX_s&p=1&ps=500 | time=59ms
10:57:43.624 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXKkWgHDNxqwPYCN&p=1&ps=500 | time=87ms
10:57:43.662 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXPcWgHDNxqwPYGd&p=1&ps=500 | time=24ms
10:57:43.674 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXQfWgHDNxqwPYHa&p=1&ps=500 | time=10ms
10:57:43.691 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXQnWgHDNxqwPYHc&p=1&ps=500 | time=17ms
10:57:43.719 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXVuWgHDNxqwPYMD&p=1&ps=500 | time=26ms
10:57:43.754 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXR9WgHDNxqwPYIo&p=1&ps=500 | time=33ms
10:57:43.774 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt&activation=true&qprofile=AV2alXRXWgHDNxqwPYIF&p=1&ps=500 | time=18ms
10:57:43.783 INFO: Load active rules (done) | time=350ms
10:57:43.784 INFO: Load metrics repository
10:57:43.793 DEBUG: GET 200 http://localhost:9000/api/metrics/search?f=name,description,direction,qualitative,custom&ps=500&p=1 | time=9ms
10:57:43.832 INFO: Load metrics repository (done) | time=48ms
10:57:43.885 WARN: SCM provider autodetection failed. No SCM provider claims to support this project. Please use sonar.scm.provider to define SCM of your project.
10:57:43.885 INFO: Publish mode
10:57:43.885 INFO: Project key: yourprojectid
10:57:43.885 DEBUG: Start recursive analysis of project modules
10:57:43.887 INFO: ------------- Scan name of project
10:57:44.014 INFO: Load server rules
10:57:44.110 DEBUG: GET 200 http://localhost:9000/api/rules/list.protobuf | time=96ms
10:57:44.120 INFO: Load server rules (done) | time=105ms
10:57:44.191 DEBUG: Declared extensions of language C# were converted to sonar.lang.patterns.cs : /.cs
10:57:44.191 DEBUG: Declared extensions of language Python were converted to sonar.lang.patterns.py : **/
.py
10:57:44.192 DEBUG: Declared extensions of language Java were converted to sonar.lang.patterns.java : /*.java,/.jav
10:57:44.192 DEBUG: Declared extensions of language Flex were converted to sonar.lang.patterns.flex : **/
.as
10:57:44.192 DEBUG: Declared extensions of language XML were converted to sonar.lang.patterns.xml : /*.xml,/*.xsd,
/.xsl
10:57:44.192 DEBUG: Declared extensions of language GO were converted to sonar.lang.patterns.go : **/
.go
10:57:44.192 DEBUG: Declared extensions of language PHP were converted to sonar.lang.patterns.php : /*.php,/.php3,**/.php4,/*.php5,/.phtml,**/.inc
10:57:44.192 DEBUG: Declared extensions of language JavaScript were converted to sonar.lang.patterns.js : **/*.js
10:57:44.241 DEBUG: Initializers : GenericCoverageSensor
10:57:44.242 INFO: Initializer GenericCoverageSensor
10:57:44.242 INFO: Initializer GenericCoverageSensor (done) | time=0ms
10:57:44.242 INFO: Base dir: /Users/daniel/go/src/github.build.ge.com
10:57:44.242 INFO: Working dir: /Users/daniel/go/src/github.build.ge.com/.scannerwork
10:57:44.243 INFO: Source paths: .
10:57:44.243 INFO: Source encoding: UTF-8, default locale: en_US
10:57:44.245 INFO: Index files
10:57:44.256 DEBUG: 'sonar-project.properties' indexed with language 'null'
10:57:44.257 DEBUG: 'report.xml' indexed with language 'xml'
10:57:44.258 DEBUG: 'hello.go' indexed with language 'go'
10:57:44.258 INFO: 3 files indexed
10:57:44.259 INFO: Quality profile for go: Golint Rules
10:57:44.259 INFO: Quality profile for xml: Sonar way
10:57:44.883 DEBUG: 'Generic Coverage Report' skipped because one of the required properties is missing
10:57:44.883 DEBUG: 'Generic Test Executions Report' skipped because one of the required properties is missing
10:57:44.884 DEBUG: 'C#' skipped because there is no related file in current project
10:57:44.884 DEBUG: 'C# Unit Tests Coverage Report Import' skipped because there is no related file in current project
10:57:44.884 DEBUG: 'C# Integration Tests Coverage Report Import' skipped because there is no related file in current project
10:57:44.884 DEBUG: 'C# Unit Test Results Import' skipped because there is no related file in current project
10:57:44.884 DEBUG: 'Python Squid Sensor' skipped because there is no related file in current project
10:57:44.884 DEBUG: 'SurefireSensor' skipped because there is no related file in current project
10:57:44.885 DEBUG: 'JaCoCoSensor' skipped because there is no related file in current project
10:57:44.885 DEBUG: 'JavaSquidSensor' skipped because there is no related file in current project
10:57:44.885 DEBUG: 'Flex' skipped because there is no related file in current project
10:57:44.885 DEBUG: 'Flex Cobertura' skipped because there is no related file in current project
10:57:44.886 DEBUG: 'PHP sensor' skipped because there is no related file in current project
10:57:44.886 DEBUG: 'JavaScript Squid Sensor' skipped because there is no related file in current project
10:57:44.888 DEBUG: 'Generic Coverage Report' skipped because one of the required properties is missing
10:57:44.889 DEBUG: 'Generic Test Executions Report' skipped because one of the required properties is missing
10:57:44.889 DEBUG: 'C#' skipped because there is no related file in current project
10:57:44.889 DEBUG: 'C# Unit Tests Coverage Report Import' skipped because there is no related file in current project
10:57:44.889 DEBUG: 'C# Integration Tests Coverage Report Import' skipped because there is no related file in current project
10:57:44.889 DEBUG: 'C# Unit Test Results Import' skipped because there is no related file in current project
10:57:44.889 DEBUG: 'Python Squid Sensor' skipped because there is no related file in current project
10:57:44.889 DEBUG: 'SurefireSensor' skipped because there is no related file in current project
10:57:44.890 DEBUG: 'JaCoCoSensor' skipped because there is no related file in current project
10:57:44.890 DEBUG: 'JavaSquidSensor' skipped because there is no related file in current project
10:57:44.890 DEBUG: 'Flex' skipped because there is no related file in current project
10:57:44.890 DEBUG: 'Flex Cobertura' skipped because there is no related file in current project
10:57:44.890 DEBUG: 'PHP sensor' skipped because there is no related file in current project
10:57:44.890 DEBUG: 'JavaScript Squid Sensor' skipped because there is no related file in current project
10:57:44.894 DEBUG: Sensors : SonarJavaXmlFileSensor -> XML Sensor -> GoMetaLinter issues loader sensor -> Go Coverage -> Go test JUnit loader sensor -> Go Highlighter Sensor -> Go Metrics Sensor -> Analyzer for "php.ini" files -> Zero Coverage Sensor -> CPD Block Indexer
10:57:44.894 INFO: Sensor SonarJavaXmlFileSensor [java]
10:57:44.917 INFO: 1 source files to be analyzed
10:57:45.059 INFO: Sensor SonarJavaXmlFileSensor [java] (done) | time=165ms
10:57:45.059 INFO: 1/1 source files have been analyzed
10:57:45.059 INFO: Sensor XML Sensor [xml]
10:57:45.071 DEBUG: 'report.xml' generated metadata with charset 'UTF-8'
10:57:45.073 DEBUG: Count lines in /Users/daniel/go/src/github.build.ge.com/report.xml
10:57:45.209 INFO: Sensor XML Sensor [xml] (done) | time=150ms
10:57:45.209 INFO: Sensor GoMetaLinter issues loader sensor [golang]
10:57:45.216 INFO: Parse the file report.xml //default
10:57:45.216 INFO: Parsing 'GoLint' Analysis Results
10:57:45.216 INFO: Parsing file /Users/daniel/go/src/github.build.ge.com/report.xml /default
10:57:45.219 ERROR: IOException
java.io.FileNotFoundException: /Users/daniel/go/src/github.build.ge.com/report.xml /default (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:148)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:805)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:226)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.parseAndSaveResults(GoLintIssueLoaderSensor.java:135)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.execute(GoLintIssueLoaderSensor.java:120)
at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:87)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:81)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:67)
at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:75)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:178)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:259)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:254)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:243)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:118)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:117)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)

10:57:45.220 ERROR: Unable to parse the provided Golint file
javax.xml.stream.XMLStreamException: java.io.FileNotFoundException: /Users/daniel/go/src/github.build.ge.com/report.xml /default (No such file or directory)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:263)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.parseAndSaveResults(GoLintIssueLoaderSensor.java:135)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.execute(GoLintIssueLoaderSensor.java:120)
at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:87)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:81)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:67)
at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:75)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:178)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:259)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:254)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:243)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:118)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:117)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.io.FileNotFoundException: /Users/daniel/go/src/github.build.ge.com/report.xml /default (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:148)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:805)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:226)
... 33 common frames omitted

10:57:45.220 INFO: Sensor GoMetaLinter issues loader sensor [golang] (done) | time=11ms
10:57:45.220 INFO: Sensor Go Coverage [golang]
10:57:45.222 INFO: no coverage file in package /Users/daniel/go/src/github.build.ge.com/coverage.xml / default
10:57:45.223 INFO: no coverage file in package /Users/daniel/go/src/github.build.ge.com/.scannerwork/batch-report/coverage.xml / default
10:57:45.224 INFO: Sensor Go Coverage [golang] (done) | time=4ms
10:57:45.224 INFO: Sensor Go test JUnit loader sensor [golang]
10:57:45.224 INFO: no junit report
10:57:45.224 INFO: Sensor Go test JUnit loader sensor [golang] (done) | time=0ms
10:57:45.224 INFO: Sensor Go Highlighter Sensor [golang]
go
10:57:45.226 INFO: Color the file: /Users/daniel/go/src/github.build.ge.com/hello.go
10:57:45.245 INFO: Licensed under the Apache License, Version 2.0 (the "License"); 52
10:57:45.245 INFO: Licensed under the Apache License, Version 2.0 (the "License"); 60
10:57:45.245 DEBUG: index 52 indexEnd 60
10:57:45.247 DEBUG: 'hello.go' generated metadata with charset 'UTF-8'
10:57:45.247 INFO: Licensed under the Apache License, Version 2.0 (the "License"); -1
10:57:45.247 INFO: Licensed under the Apache License, Version 2.0 (the "License"); 52
10:57:45.248 INFO: distributed under the License is distributed on an "AS IS" BASIS, 51
10:57:45.248 INFO: distributed under the License is distributed on an "AS IS" BASIS, 57
10:57:45.248 DEBUG: index 51 indexEnd 57
10:57:45.248 INFO: distributed under the License is distributed on an "AS IS" BASIS, -1
10:57:45.248 INFO: distributed under the License is distributed on an "AS IS" BASIS, 51
10:57:45.249 INFO: Line number 13 index start: 42 index end: 44
10:57:45.249 INFO: Line number 13 index start: 28 index end: 30
10:57:45.249 INFO: Line number 13 index start: 16 index end: 19
10:57:45.249 INFO: Line number 17 index start: 0 index end: 7
10:57:45.249 INFO: Line number 19 index start: 0 index end: 6
10:57:45.249 INFO: "fmt" 1
10:57:45.249 INFO: "fmt" 5
10:57:45.249 DEBUG: index 1 indexEnd 5
10:57:45.250 INFO: "fmt" -1
10:57:45.250 INFO: "fmt" 1
10:57:45.250 INFO: Line number 23 index start: 0 index end: 4
10:57:45.250 INFO: Line number 24 index start: 4 index end: 7
10:57:45.250 INFO: Line number 25 index start: 10 index end: 13
xml
null
10:57:45.256 INFO: Sensor Go Highlighter Sensor [golang] (done) | time=32ms
10:57:45.256 INFO: Sensor Go Metrics Sensor [golang]
10:57:45.259 INFO: Sensor Go Metrics Sensor [golang] (done) | time=2ms
10:57:45.259 INFO: Sensor Analyzer for "php.ini" files [php]
10:57:45.261 INFO: Sensor Analyzer for "php.ini" files [php] (done) | time=2ms
10:57:45.261 INFO: Sensor Zero Coverage Sensor
10:57:45.268 INFO: Sensor Zero Coverage Sensor (done) | time=7ms
10:57:45.269 INFO: Sensor CPD Block Indexer
10:57:45.269 DEBUG: org.sonar.scanner.cpd.deprecated.DefaultCpdBlockIndexer is used for go
10:57:45.269 DEBUG: No CpdMapping for language go
10:57:45.269 DEBUG: org.sonar.scanner.cpd.deprecated.DefaultCpdBlockIndexer is used for xml
10:57:45.269 DEBUG: No CpdMapping for language xml
10:57:45.269 INFO: Sensor CPD Block Indexer (done) | time=1ms
10:57:45.269 INFO: No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it.
10:57:45.270 INFO: Calculating CPD for 0 files
10:57:45.271 INFO: CPD calculation finished
10:57:45.416 INFO: Analysis report generated in 140ms, dir size=27 KB
10:57:45.438 INFO: Analysis reports compressed in 21ms, zip size=9 KB
10:57:45.438 INFO: Analysis report generated in /Users/daniel/go/src/github.build.ge.com/.scannerwork/batch-report
10:57:45.438 DEBUG: Upload report
10:57:45.616 DEBUG: POST 200 http://localhost:9000/api/ce/submit?projectKey=yourprojectid&projectName=name%20of%20project | time=177ms
10:57:45.619 INFO: Analysis report uploaded in 181ms
10:57:45.619 INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/yourprojectid
10:57:45.619 INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
10:57:45.619 INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AV2e8kwNHzCXUhIkwpYx
10:57:45.620 DEBUG: Report metadata written to /Users/daniel/go/src/github.build.ge.com/.scannerwork/report-task.txt
10:57:45.635 DEBUG: Post-jobs :
10:57:45.641 INFO: Task total time: 2.745 s
10:57:45.641 INFO: ------------------------------------------------------------------------
10:57:45.641 INFO: EXECUTION SUCCESS
10:57:45.641 INFO: ------------------------------------------------------------------------
10:57:45.641 INFO: Total time: 4.173s
10:57:45.717 INFO: Final Memory: 47M/397M
10:57:45.717 INFO: ------------------------------------------------------------------------
10:57:45.718 DEBUG: Execution getVersion
10:57:45.719 DEBUG: Execution stop

Versions

Versions of your sonar installation (
soanr server 6.4
sonar-scanner 3.0
gometalinter.v1
go version go1.8.3 darwin/amd64
Mac OSX Serra

Additional Information

Sample reports may be necessary to reproduce the issue. Please attach if possible reports files (report.xml, coverage.xml, test.xml) corresponding to the feature which is not working as expected.

Plugin crash on file colorization

Description

SonarScanner crashes while coloring a file. My program has some simple ASCII art and one of the lines makes it crash. app.Log.Info(" .J ( '-' \"'--'")

Example error log 12:54:56.583 DEBUG: string 12:54:56.583 DEBUG: position -1 line app.Log.Info(" / .--, _ a L") 12:54:56.586 INFO: ------------------------------------------------------------------------ 12:54:56.586 INFO: EXECUTION FAILURE 12:54:56.586 INFO: ------------------------------------------------------------------------ 12:54:56.587 INFO: Total time: 8.380s 12:54:56.854 INFO: Final Memory: 51M/726M 12:54:56.854 INFO: ------------------------------------------------------------------------ 12:54:56.854 ERROR: Error during SonarQube Scanner execution java.lang.IllegalArgumentException: Unable to highlight file [moduleKey=project:master, relative=src/project/cmd/project/main.go, basedir=/data/ci-volumes/workspace/sas_westeros-project_master-AL2EFEG7W5KT7FA2MJGFYZMPMDL42B2OOBUJBNM672DMZCKKJULQ] at org.sonar.api.batch.sensor.highlighting.internal.DefaultHighlighting.highlight(DefaultHighlighting.java:95) at org.sonar.api.batch.sensor.highlighting.internal.DefaultHighlighting.highlight(DefaultHighlighting.java:35) at fr.univartois.sonargo.highlighter.Colorizer.highlightingStringInLine(Colorizer.java:71) at fr.univartois.sonargo.highlighter.Colorizer.searchAndColor(Colorizer.java:132) at fr.univartois.sonargo.highlighter.Colorizer.colorize(Colorizer.java:38) at fr.univartois.sonargo.highlighter.HighlighterSensor.lambda$execute$1(HighlighterSensor.java:36) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at fr.univartois.sonargo.highlighter.HighlighterSensor.execute(HighlighterSensor.java:34) at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53) at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57) at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49) at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:175) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:128) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:262) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:257) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:247) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:128) at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47) at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:128) at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:118) at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:117) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60) at com.sun.proxy.$Proxy0.execute(Unknown Source) at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233) at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151) at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110) at org.sonarsource.scanner.cli.Main.execute(Main.java:74) at org.sonarsource.scanner.cli.Main.main(Main.java:61) Caused by: java.lang.IllegalArgumentException: Start pointer [line=49, lineOffset=35] should be before end pointer [line=49, lineOffset=0] at org.sonar.api.internal.google.common.base.Preconditions.checkArgument(Preconditions.java:145) at org.sonar.api.batch.fs.internal.DefaultInputFile.newRangeValidPointers(DefaultInputFile.java:265) at org.sonar.api.batch.fs.internal.DefaultInputFile.newRange(DefaultInputFile.java:203) at org.sonar.api.batch.sensor.highlighting.internal.DefaultHighlighting.highlight(DefaultHighlighting.java:93) ... 45 more script returned exit code 1

Steps to Reproduce

  1. Add a string with a "stuff\"other" & launch sonar-scanner with coverage & coloring
  2. ...
  3. Profit

Versions

SonarQube version 6.3.1.21392
Gometalinter v1
Sonar-Golang plugin v1.2
Golang 1.8.1

Additional Information

Nothing much to add

Latest doesn't work with Sonar

Description

Latest doesn't work with SonarQube

Steps to Reproduce

  1. I installed https://github.com/uartois/sonar-golang/releases/tag/1.2.1 on our SonarQube server (jar file).
  2. Restarted the server
  3. Got the log below

Versions

Versions of my sonar installation - Version 6.3.1.21392

Additional Information

Sonar Log:
java.lang.IllegalStateException: Unable to read plugin manifest from jar : /opt/sonarqube/extensions/plugins/sonar-golang-plugin-1.2.1.jar
at org.sonar.updatecenter.common.PluginManifest.(PluginManifest.java:125)
at org.sonar.core.platform.PluginInfo.create(PluginInfo.java:397)
at org.sonar.server.plugins.ServerPluginRepository.loadPreInstalledPlugins(ServerPluginRepository.java:136)
at org.sonar.server.plugins.ServerPluginRepository.start(ServerPluginRepository.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)
at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)
at org.sonar.core.platform.ComponentContainer$1.start(ComponentContainer.java:321)
at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
at org.picocontainer.behaviors.Stored.start(Stored.java:110)
at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:88)
at org.sonar.server.platform.platformlevel.PlatformLevel2.start(PlatformLevel2.java:87)
at org.sonar.server.platform.Platform.start(Platform.java:203)
at org.sonar.server.platform.Platform.startLevel2Container(Platform.java:169)
at org.sonar.server.platform.Platform.init(Platform.java:71)
at org.sonar.server.platform.web.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:44)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5189)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:219)
at java.util.zip.ZipFile.(ZipFile.java:149)
at java.util.jar.JarFile.(JarFile.java:166)
at java.util.jar.JarFile.(JarFile.java:130)
at org.sonar.updatecenter.common.PluginManifest.(PluginManifest.java:120)
... 33 common frames omitted
2017.05.22 14:10:34 ERROR web[][o.a.c.c.StandardContext] One or more listeners failed to start. Full details will be found in the appropriate container log file
2017.05.22 14:10:34 ERROR web[][o.a.c.c.StandardContext] Context [/sonarqube] startup failed due to previous errors

Absolute paths break the scanner.

Description

I have a project that I'm trying to analyse. When I run gometalinter I get the following report.xml file
report.zip

I'm running the scanner inside a custom build docker container based on golang:1.9-alpine. I run gometalinter and the other commands, then run sonar-scanner. This results in the error outlined later.

Steps to Reproduce

  1. [First Step]
  2. [Second Step]
  3. [and so on...]

Content of your sonar-project.properties

sonar.projectKey=test:master
sonar.projectName=test
sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.coverage.dtdVerification=false
sonar.test.reportPath=test.xml
sonar.sources=/go/src/test
sonar.exclusions="vendor"

Log of sonar-scanner related to the plugin

.
.
.
INFO: Sensor GoMetaLinter issues loader sensor [golang]                                                                                                                                                   
INFO: Parsing the file report.xml                                                                                                                                                                         
INFO: Parsing 'GoMetaLinter' Analysis Results                                                                                                                                                             
INFO: Load /key.properties                                                                                                                                                                                
INFO: loaded 49                                                                                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go                                                                                                                           
ERROR: Not able to find a InputFile with .//usr/local/go/src/net/lookup_unix.go     
.
.
.
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 8.691s
INFO: Final Memory: 45M/321M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
java.lang.NullPointerException
        at java.io.File.<init>(File.java:277)
        at org.sonar.api.batch.fs.internal.AbsolutePathPredicate.get(AbsolutePathPredicate.java:52)
        at org.sonar.api.batch.fs.internal.DefaultFileSystem.inputFiles(DefaultFileSystem.java:149)
        at org.sonar.api.batch.fs.internal.DefaultFileSystem.inputFile(DefaultFileSystem.java:115)
        at fr.univartois.sonargo.gotest.GoTestReportSaver.save(GoTestReportSaver.java:47)
        at fr.univartois.sonargo.gotest.GoTestSensor.execute(GoTestSensor.java:66)
        at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
        at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
        at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
        at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
        at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
        at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
        at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)
        at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:111)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
        at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
        at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

Versions

Sonar: Version 6.7 (build 33306)
Go-Plugin: 1.2.11-rc3

Getting a error while sonar scanning

09:05:50.180 INFO: ------------------------------------------------------------------------
09:05:50.180 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Line 62 is out of range in the file src/credential-manager/rest/router.go (lines: 43)
at org.sonar.api.internal.google.common.base.Preconditions.checkState(Preconditions.java:197)
at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.validateLine(DefaultCoverage.java:90)
at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.lineHits(DefaultCoverage.java:78)
at fr.univartois.sonargo.coverage.CoverageRecorder.save(CoverageRecorder.java:57)
at fr.univartois.sonargo.coverage.CoverageSensor.lambda$execute$3(CoverageSensor.java:74)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at fr.univartois.sonargo.coverage.CoverageSensor.execute(CoverageSensor.java:63)
at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49)
at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:175)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:128)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:262)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:257)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:247)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:128)
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:143)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:128)
at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:118)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:117)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)

The future of sonar-golang

SonarSource is going to provide its own open source sonarqube plugin for the go language called SonarGo next month.

This is a good news in our opinion since now go will be a language officially supported by SonarQube.

The approach taken by SonarGo seems different from our plugin: instead of retrieving the issues/data from external tools as we do, they are analyzing with their own rules the files.

The advantage is to be able to support the same set of rules across all languages.

The disadvantage may be to loose some rules you are used to with current go linters.

In the long term, it also means a tighter integration with SonarQube.

As such, the future of this plugin is not clear once SonarSource plugin will be available.

If there is no need for this plugin anymore, we are happy to move to SonarGo.

Some people may however prefer to rely on current linters, thus continue to use this plugin. In that case we would be happy to continue maintaining it.

Please feel free to comment in this issue to tell us if you think there is still a need for this plugin.

Update: the plugin has been released by SonarSource
https://www.sonarsource.com/resources/product-news/news.html#sonargo-1.0

Unreachable code error not shown

Hello,
I've the following gometalinter entry in my gometalinter's report:
<error column="0" line="93" message="unreachable code" severity="error" source="vet"></error>

but this isn't shown in sonar.
Can you kindly add this rule?

Question: "java.lang.IllegalArgumentException: expected one element but was..."

Description

Hello,

I just installed sonarqube (docker) and have not analyzed any projects.
I am able to pull up sonarqube at localhost in my browser.
I can run gometalinter to generate report.xml.
I am not able to successfully run sonar-scanner (see logs below).
I am hoping somebody might be able to point me at some missing configuration/settings I need to make.

Regards,
James

Steps to Reproduce

Run the following two commands from root of project directory:

  1. gometalinter.v1 --fast --checkstyle ./... > report.xml
  2. sonar-scanner

Content of your sonar-project.properties

sonar.projectKey=NearStoreAvailability
sonar.projectName=Near Store Availability
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml
sonar.coverage.reportPath=coverage.xml
sonar.coverage.dtdVerification=false
sonar.test.reportPath=test.xml
sonar.sources=./

Log of sonar-scanner related to the plugin

INFO: Scanner configuration file: /Users/x3aw/Downloads/sonar-scanner-3.0.3.778-macosx 3/conf/sonar-scanner.properties
INFO: Project root configuration file: /Users/x3aw/source/go/src/git.nordstrom.net/cos/near-store-availability/sonar-project.properties
INFO: SonarQube Scanner 3.0.3.778
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Mac OS X 10.11.6 x86_64
INFO: User cache: /Users/x3aw/.sonar/cache
INFO: Publish mode
INFO: Load global settings
INFO: Load global settings (done) | time=85ms
INFO: Server id: AV_0ecowXGmkGPLIqUHI
INFO: User cache: /Users/x3aw/.sonar/cache
INFO: Load plugins index
INFO: Load plugins index (done) | time=50ms
INFO: SonarQube server 6.7.0
INFO: Default locale: "en_US", source code encoding: "UTF-8" (analysis is platform dependent)
INFO: Process project properties
INFO: Load project repositories
INFO: Load project repositories (done) | time=18ms
INFO: Load quality profiles
INFO: Load quality profiles (done) | time=30ms
INFO: Load active rules
INFO: Load active rules (done) | time=1508ms
INFO: Load metrics repository
INFO: Load metrics repository (done) | time=80ms
INFO: Project key: NearStoreAvailability
INFO: ------------- Scan Near Store Availability
INFO: Load server rules
INFO: Load server rules (done) | time=717ms
INFO: Base dir: /Users/x3aw/source/go/src/git.nordstrom.net/cos/near-store-availability
INFO: Working dir: /Users/x3aw/source/go/src/git.nordstrom.net/cos/near-store-availability/.scannerwork
INFO: Source paths: .
INFO: Source encoding: UTF-8, default locale: en_US
WARN: Property 'sonar.php.file.suffixes' is not declared as multi-values/property set but was read using 'getStringArray' method. The SonarQube plugin declaring this property should be updated.
INFO: Index files
INFO: 869 files indexed
INFO: Quality profile for go: Golint Rules
INFO: Quality profile for js: Sonar way
INFO: Quality profile for xml: Sonar way
INFO: Sensor SonarJavaXmlFileSensor [java]
INFO: 1 source files to be analyzed
INFO: Sensor SonarJavaXmlFileSensor [java] (done) | time=243ms
INFO: 1/1 source files have been analyzed
INFO: Sensor XML Sensor [xml]
INFO: Sensor XML Sensor [xml] (done) | time=566ms
INFO: Sensor GoMetaLinter issues loader sensor [golang]
INFO: Parsing the file report.xml
INFO: Parsing 'GoMetaLinter' Analysis Results
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 6.596s
INFO: Final Memory: 51M/337M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalArgumentException: expected one element but was: <Dockerfile, README.md, adapter/adapter.go, adapter/adapter_test.go, adapter/adapterfakes/fake_adapter.go, ...>
at org.sonar.api.batch.fs.internal.DefaultFileSystem.inputFile(DefaultFileSystem.java:135)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.getResourceAndSaveIssue(GoLintIssueLoaderSensor.java:144)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.parseAndSaveResults(GoLintIssueLoaderSensor.java:137)
at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.execute(GoLintIssueLoaderSensor.java:120)
at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)
at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:111)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

Versions

Versions of your sonar installation (server, sonar-scanner), gometalinter, go and OS.
server: 6.7.0.33306
sonar-scanner: 3.0.3.778-macosx 3
gometalinter: v1
go: 1.8.3
OS: Mac OS X 10.11.6 x86_64

Additional Information

Custom source code check

Hello all any idea on how to perform custom checks on the code? For example I would check for fmt.Println in the code or looking for any variable with first capital letter in a private method.

Thank you

UnhandledErrors False Positives + Typo ?

Description

False positive on UnhandledErrors, also it looks like there is a typo in the title of the error.

Steps to Reproduce

Create a code snippet that gets the returned error from a method
Run analysis
Check the errors on the web panel ( See screenshot )

screen shot 2017-10-19 at 11 10 01

Content of your sonar-project.properties

sonar.projectKey=haproxy-dynagent
sonar.projectName=HAproxy DynAgent
sonar.projectVersion=1.0
sonar.sources=./
sonar.exclusions=out/**,build/**

Versions

uname -a
Darwin mbp-mpoussin.local 17.0.0 Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64

sonar-scanner --version
INFO: SonarQube Scanner 3.0.3.778
INFO: Java 9 Oracle Corporation (64-bit)
INFO: Mac OS X 10.13 x86_64

Server: Version 6.5 (build 27846) 
Affecting both Golang Plugin 1.2.11-rc1 and 1.2.10

Additional Information

Coverage : only the last class is displayed in SonarQube

Description

Only the last class/file of the generated report is displayed in the coverage section in SonarQube

Steps to Reproduce

  1. Generate a coverprofile file on folder with several go files
  2. Generate a coverage report with the command : gocov convert cover.out | gocov-xml > coverage.xml
  3. Launch Sonar Scanner
  4. Look at the coverage section in SonarQube : only the last file/class of the coverage.xml is displayed
  5. Edit the coverage report and remove the last file/class
  6. Look at the coverage section in SonarQube : the previous file/class of the deleted file/class is displayed instead

java.lang.UnsupportedOperationException in junit test reporting

Problem with junit test reporting

I have the following error when runnig sonar-runner

java.lang.UnsupportedOperationException: Can not add the same measure twice on [moduleKey=<obscured>:fix-missing-golint-issues1123, relative=gsm/sms_pusher_test.go, basedir=<obscured>]: DefaultMeasure[component=[moduleKey=<obscured>:fix-missing-golint-issues1123, relative=gsm/sms_pusher_test.go, basedir=<obscured>],metric=Metric[id=<null>,key=skipped_tests,description=Number of skipped unit tests,type=INT,direction=-1,domain=Coverage,name=Skipped Unit Tests,qualitative=true,userManaged=false,enabled=true,worstValue=<null>,bestValue=0.0,optimizedBestValue=true,hidden=false,deleteHistoricalData=false,decimalScale=<null>],value=0,fromCore=false]

Steps to Reproduce

I have a test.xml like this:

<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
	<testsuite tests="6" failures="0" time="1.010" name="<obscured>/api">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="api" name="TestEnableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestCannotEnableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestDisableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestCannotDisableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestSendSms" time="0.000"></testcase>
		<testcase classname="api" name="TestCantSendSms" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="2" failures="0" time="0.004" name="<obscured>/cpuinfo">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="cpuinfo" name="TestReadCPUInfo" time="0.000"></testcase>
		<testcase classname="cpuinfo" name="TestUniqueSerialID" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="7" failures="0" time="0.010" name="<obscured>/gsm">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="gsm" name="TestRunCommand" time="0.000"></testcase>
		<testcase classname="gsm" name="TestHelperProcess" time="0.000"></testcase>
		<testcase classname="gsm" name="TestActivate" time="0.000"></testcase>
		<testcase classname="gsm" name="TestDisable" time="0.000"></testcase>
		<testcase classname="gsm" name="TestDisableSms" time="0.000"></testcase>
		<testcase classname="gsm" name="TestSendSms" time="0.000"></testcase>
		<testcase classname="gsm" name="TestCannotCreateSmsPusher" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="13" failures="0" time="0.006" name="<obscured>/protocol">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="protocol" name="TestGetBitForEmptyString" time="0.000"></testcase>
		<testcase classname="protocol" name="TestGetBitForNotEmptyString" time="0.000"></testcase>
		<testcase classname="protocol" name="TestPositionLowerThanNumber" time="0.000"></testcase>
		<testcase classname="protocol" name="TestPositionEqualWithNumber" time="0.000"></testcase>
		<testcase classname="protocol" name="TestPositionGreaterThanNumber" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeMessagePayloadTooLong" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecode" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecodeRawValue" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecodePowerUnitData" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecodePairingRequest" time="0.000"></testcase>
		<testcase classname="protocol" name="TestDecodeNoPayload" time="0.000"></testcase>
		<testcase classname="protocol" name="TestAckPayloadNotImplemented" time="0.000"></testcase>
		<testcase classname="protocol" name="TestDefaultPayloadReturnsException" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="6" failures="0" time="23.682" name="<obscured>/radio">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="radio" name="TestInitRadio" time="0.000"></testcase>
		<testcase classname="radio" name="TestStartStop" time="0.020"></testcase>
		<testcase classname="radio" name="TestSetPairingMode" time="0.000"></testcase>
		<testcase classname="radio" name="TestReceiveRawData" time="0.510"></testcase>
		<testcase classname="radio" name="TestAwaitPairingRequestTimeout" time="21.500"></testcase>
		<testcase classname="radio" name="TestPairingSuccessful" time="1.650"></testcase>
	</testsuite>
	<testsuite tests="6" failures="0" time="0.003" name="<obscured>/repository">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="repository" name="TestStoreSensor" time="0.000"></testcase>
		<testcase classname="repository" name="TestStoreField" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetSensorByID" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetAll" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetSensorIDForExistentSensor" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetSensorIDForNewSensor" time="0.000"></testcase>
	</testsuite>
</testsuites>

Content of your sonar-project.properties

no sonar-project.properties, passing url, login, project, version, sources, branch as cmd line arguments to sonnar-scanner

Log of sonar-scanner related to the plugin

ERROR: Error during SonarQube Scanner execution
java.lang.UnsupportedOperationException: Can not add the same measure twice on [moduleKey=:fix-missing-golint-issues1123, relative=gsm/sms_pusher_test.go, basedir=]: DefaultMeasure[component=[moduleKey=:fix-missing-golint-issues1123, relative=gsm/sms_pusher_test.go, basedir=],metric=Metric[id=,key=skipped_tests,description=Number of skipped unit tests,type=INT,direction=-1,domain=Coverage,name=Skipped Unit Tests,qualitative=true,userManaged=false,enabled=true,worstValue=,bestValue=0.0,optimizedBestValue=true,hidden=false,deleteHistoricalData=false,decimalScale=],value=0,fromCore=false]
at org.sonar.scanner.sensor.DefaultSensorStorage.saveMeasure(DefaultSensorStorage.java:255)
at org.sonar.scanner.sensor.DefaultSensorStorage.store(DefaultSensorStorage.java:213)
at org.sonar.api.batch.sensor.measure.internal.DefaultMeasure.doSave(DefaultMeasure.java:93)
at org.sonar.api.batch.sensor.internal.DefaultStorable.save(DefaultStorable.java:43)
at fr.univartois.sonargo.gotest.GoTestReportSaver.saveMeasure(GoTestReportSaver.java:69)
at fr.univartois.sonargo.gotest.GoTestReportSaver.saveMeasure(GoTestReportSaver.java:60)
at fr.univartois.sonargo.gotest.GoTestReportSaver.save(GoTestReportSaver.java:52)
at fr.univartois.sonargo.gotest.GoTestSensor.execute(GoTestSensor.java:66)
at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49)
at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:182)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:247)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:242)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:232)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:115)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)

Versions

sonar: 6.2
sonar-scanner 3.0.3.778
go 1.8.3
Ubuntu Linux 4.10.0-32-generic amd6
Versions of your sonar installation (server, sonar-scanner), gometalinter, go and OS.

Additional Information

  • works fine when commenting out the three tests in gsm package:
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
	<testsuite tests="6" failures="0" time="1.010" name="<obscured>/api">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="api" name="TestEnableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestCannotEnableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestDisableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestCannotDisableMobileData" time="0.000"></testcase>
		<testcase classname="api" name="TestSendSms" time="0.000"></testcase>
		<testcase classname="api" name="TestCantSendSms" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="2" failures="0" time="0.004" name="<obscured>/cpuinfo">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="cpuinfo" name="TestReadCPUInfo" time="0.000"></testcase>
		<testcase classname="cpuinfo" name="TestUniqueSerialID" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="7" failures="0" time="0.010" name="<obscured>/gsm">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="gsm" name="TestRunCommand" time="0.000"></testcase>
		<testcase classname="gsm" name="TestHelperProcess" time="0.000"></testcase>
		<testcase classname="gsm" name="TestActivate" time="0.000"></testcase>
		<testcase classname="gsm" name="TestDisable" time="0.000"></testcase>
		<!--<testcase classname="gsm" name="TestDisableSms" time="0.000"></testcase>
		<testcase classname="gsm" name="TestSendSms" time="0.000"></testcase>
		<testcase classname="gsm" name="TestCannotCreateSmsPusher" time="0.000"></testcase>-->
	</testsuite>
	<testsuite tests="13" failures="0" time="0.006" name="<obscured>/protocol">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="protocol" name="TestGetBitForEmptyString" time="0.000"></testcase>
		<testcase classname="protocol" name="TestGetBitForNotEmptyString" time="0.000"></testcase>
		<testcase classname="protocol" name="TestPositionLowerThanNumber" time="0.000"></testcase>
		<testcase classname="protocol" name="TestPositionEqualWithNumber" time="0.000"></testcase>
		<testcase classname="protocol" name="TestPositionGreaterThanNumber" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeMessagePayloadTooLong" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecode" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecodeRawValue" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecodePowerUnitData" time="0.000"></testcase>
		<testcase classname="protocol" name="TestEncodeDecodePairingRequest" time="0.000"></testcase>
		<testcase classname="protocol" name="TestDecodeNoPayload" time="0.000"></testcase>
		<testcase classname="protocol" name="TestAckPayloadNotImplemented" time="0.000"></testcase>
		<testcase classname="protocol" name="TestDefaultPayloadReturnsException" time="0.000"></testcase>
	</testsuite>
	<testsuite tests="6" failures="0" time="23.682" name="<obscured>/radio">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="radio" name="TestInitRadio" time="0.000"></testcase>
		<testcase classname="radio" name="TestStartStop" time="0.020"></testcase>
		<testcase classname="radio" name="TestSetPairingMode" time="0.000"></testcase>
		<testcase classname="radio" name="TestReceiveRawData" time="0.510"></testcase>
		<testcase classname="radio" name="TestAwaitPairingRequestTimeout" time="21.500"></testcase>
		<testcase classname="radio" name="TestPairingSuccessful" time="1.650"></testcase>
	</testsuite>
	<testsuite tests="6" failures="0" time="0.003" name="<obscured>/repository">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="repository" name="TestStoreSensor" time="0.000"></testcase>
		<testcase classname="repository" name="TestStoreField" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetSensorByID" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetAll" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetSensorIDForExistentSensor" time="0.000"></testcase>
		<testcase classname="repository" name="TestGetSensorIDForNewSensor" time="0.000"></testcase>
	</testsuite>
</testsuites>
  • works fine when only having tests from gsm package in test.xml
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
	<testsuite tests="7" failures="0" time="0.010" name="<obscured>/gsm">
		<properties>
			<property name="go.version" value="go1.8.3"></property>
		</properties>
		<testcase classname="gsm" name="TestRunCommand" time="0.000"></testcase>
		<testcase classname="gsm" name="TestHelperProcess" time="0.000"></testcase>
		<testcase classname="gsm" name="TestActivate" time="0.000"></testcase>
		<testcase classname="gsm" name="TestDisable" time="0.000"></testcase>
		<testcase classname="gsm" name="TestDisableSms" time="0.000"></testcase>
		<testcase classname="gsm" name="TestSendSms" time="0.000"></testcase>
		<testcase classname="gsm" name="TestCannotCreateSmsPusher" time="0.000"></testcase>
	</testsuite>
</testsuites>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.