Documentation Home
MySQL Internals Manual

26.4 Negative Tests

A "negative" test is a test for which you expect to see a failure. If an error does not occur, that itself indicates a problem.

DO NOT FORGET "NEGATIVE" TESTS where we expect to see fine error messages from the server.

This section contains just a few examples of what to test. Please be creative and imagine what could go wrong in rough reality.

Column with numeric data type:

  • NULL, 0

  • Minimum - 1, Minimum, Minimum + 1

  • Maximum - 1, Maximum, Maximum + 1

  • Negative values if data type is unsigned

  • Garbage like 'abc', '1a', 'a1'

Column with string data type:

  • Null, <empty string>, "exotic" characters like '√§', single quotes, ...

  • String longer than column

Limited number of tables, columns, variables, ...

  • Maximum - 1, Maximum, Maximum + 1

Assume an SQL operation that affects the filesystem (LOAD DATA, CREATE SCHEMA or TABLE, backup/restore, ...). What will happen if the following conditions occur for a file or directory to be read, written, or implicitly created or deleted?

  • Exists/does not exist

  • Is writable/not writable(missing permission)

  • Is empty/not empty

  • Contains the expected content (Example: text)/unexpected content like maybe a JPG)

  • Is a regular file/a directory/a softlink pointing to .../a pipe

  • Is assigned via an extremely long path

  • Becomes victim of file system full