0
0
Fork 0
mirror of https://github.com/netdata/netdata.git synced 2025-04-14 01:29:11 +00:00
netdata_netdata/tests
thiagoftsm 2f7962c9e1 Fix parsing SSL ACL along with others ()
* sslstream: ACL parser

It was noticed in the issue 6457 that the some ACLs were not parsing
correctly when they were along SSL acl, this commit fixes this'

* sslstream: remove comments

This commit removes the comments that were present while I was testing the code

* sslstream: Tests

This commit adds ACL tests to check the Netdata response to them

* sslstream: Tests

Fix the extension to upload the files

* sslstream: more tests

In this commit I am bringing more tests, including the ssl tests'

* sslstream: leading space

Remove leading space from variable that was creating problem with shellcheck

* sslstream: glob

Remove special character from script

* sslstream: Makefile

The Makefile diretives were pointed to wrong files

* sslstream: Missing stream encrypt

This commit solves the problem of the stream not be encrypted, but
it is not the final solution, because the parser made is incomplete.

* sslstream: Finish encrypt channel

This commit brings the step that I was missing, the complete encryptation
in the communication between Master and Slave

* sslstream: Fix argument in script

After the latest tests, it was verified that two arguments given to a function
inside the script were not correct, with this PR I am fixing this!

* sslstream: Fix argument in info

Instead to call a function to deliver an integer I was passing a size_t value.
Only cmake showed this, but not in my clion! :/

* sslstream: Fix redirect

When we were having different SSL configuration, the system were not applying
the option for all

* sslstream: Update documentation

Our documentation was not clear about the rules according our code
so I am updating the text to explain for the users

* sslstream: Adjust script

With this last commit, I am adjusting the tests to avoid false positive

* sslstream: Missing elif

The previous commit had a missing elif in the shell script

* sslstream: Split ports

Before this commit Netdata was having SSL as a global option, now it has as a real ACL.

* sslstream: reduce context

The stream variable will not be affected in the master side, it is only necessary
on the slave side, so I am reducing the context of it

* sslstream: Force SSL

When the user has certificate and he does not set any SSL flag, it is necessary
to append the SSL=force flag

* sslstream: Default flag

It is necessary to have a default flag when the SSL flags are not SET

* sslstream: remove comments

Remove comments from the scrip

* sslstream: moving flag

It is better the flag to be set inside socket instead everytime there is a new connection

* sslstream: documentation

Fix a sentence in the web/server/README.md
2019-07-25 18:43:04 +02:00
..
acls Fix parsing SSL ACL along with others () 2019-07-25 18:43:04 +02:00
backends Add more metrics to the tests () 2019-05-22 09:23:43 +02:00
health_mgmtapi Easily disable alarms, by persisting the silencers configuration () 2019-07-01 21:07:21 +02:00
installer netdata/packaging: Add option for slack messages to be pushed on alternative channel, than the default. Push all info to #automation, make #ci-status error reporting only () 2019-06-12 11:11:53 +03:00
k6 Initial script for API load testing () 2019-05-16 15:15:51 +02:00
node.d fix spdx () 2018-09-30 02:36:42 +03:00
profile Fix file permissions () 2018-12-12 20:40:43 +02:00
urls Url parser refactoring () 2019-07-25 12:30:00 +00:00
web Add SPDX-License-Identifier headers to most files. 2018-05-31 15:33:12 -04:00
lifecycle.bats Fix lifecycle script () 2019-04-29 18:39:22 +03:00
Makefile.am Fix parsing SSL ACL along with others () 2019-07-25 18:43:04 +02:00
README.md Ga () 2018-12-07 11:30:04 +01:00
stress.sh fix spdx () 2018-09-30 02:36:42 +03:00
updater_checks.bats netdata/packaging: Add more distribution validations () 2019-06-09 20:28:34 +03:00
updater_checks.sh netdata/packaging: Add more distribution validations () 2019-06-09 20:28:34 +03:00

Testing

This readme is a manual on how to get started with unit testing on javascript and nodejs

Original author: BrainDoctor (github), July 2017

Installation

Tested on Linux Mint 18.2 Sara (Ubuntu/debian derivative)

Make sure you are the user who is developer (permissions, except sudo ofc)

sudo apt-get install nodejs npm chromium-browser

cd /path/to/your/netdata
npm install

That should install the necessary node modules.

Other browsers work too (Chrome, Firefox). However, only the Chromium Browser 59 has been tested for headless unit testing.

Versions

The commands above leave me with the following versions (July 2017):

  • nodejs: v4.2.6
  • npm: 3.5.2
  • chromium-browser: 59.0.3071.109
  • WebStorm (optional): 2017.1.4

Configuration

NPM

The dependencies are installed in netdata/package.json. If you install a new NPM module, it gets added here. Future developers just need to execute npm install and every dep gets added automatically.

Karma

Karma configuration is in tests/web/karma.conf.js. Documentation is provided via comments.

WebStorm

If you use the JetBrains WebStorm IDE, you can integrate the karma runtime.

for Karma (Client side testing)

Headless Chromium:

  1. Run > Edit Configurations
  2. "+" > Karma
    • Name: Karma Headless Chromium
    • Configuration file: /path/to/your/netdata/tests/web/karma.conf.js
    • Browsers to start: ChromiumHeadless
    • Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
    • Karma package: /path/to/your/netdata/node_modules/karma

GUI Chromium is similar:

  1. Run > Edit Configurations
  2. "+" > Karma
    • Name: Karma Chromium
    • Configuration file: /path/to/your/netdata/tests/web/karma.conf.js
    • Browsers to start: Chromium
    • Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
    • Karma package: /path/to/your/netdata/node_modules/karma

You may add other browsers too (comma separated). With the "Browsers to start" field you can override any settings in karma.conf.js.

Also it is recommended to install WebStorm IDE Extension/Addon to Chrome/Chromium for awesome debugging.

for node.d plugins (nodejs)

  1. Run > Edit Configurations
  2. "+" > Node.js
    • Name: Node.d plugins
    • Node interpreter: /usr/bin/nodejs (MUST be absolute, NVM works too)
    • JavaScript file: node_modules/jasmine-node/bin/jasmine-node
    • Application parameters: --captureExceptions tests/node.d

Running

In WebStorm

Karma

Just run the configured run configurations and they produce nice test trees:

karma_run_2

node.js

Debugging is awesome too! node_debug

From CLI

Karma

cd /path/to/your/netdata

nodejs ./node_modules/karma/bin/karma start tests/web/karma.conf.js --single-run=true --browsers=ChromiumHeadless

will start the karma server, start chromium in headless mode and exit.

If a test fails, it produces even a stack trace: karma_run_1

Node.d plugins

cd /path/to/your/netdata

nodejs node_modules/jasmine-node/bin/jasmine-node --captureExceptions tests/node.d

will run the tests in tests/node.d and produce a stacktrace too on error: node_run

Coverage

Karma

A nice HTML is produced from Karma which shows which code paths were executed. It is located somewhere in /path/to/your/netdata/coverage/

coverage_2 and coverage_1

Node.d

Apparently, jasmine-node can produce a junit report with the --junitreport flag. But that output was not very useful. Maybe it's configurable?

CI

The karma and node.d runners can be integrated in Travis (AFAIK), but that is outside my ability.

Note: Karma is for browser-testing. On a build server, no GUI or browser might by available, unless browsers support headless mode.

analytics