diff --git a/libraries/Lora_Serialization/test/.eslintrc.js b/libraries/Lora_Serialization/test/.eslintrc.js deleted file mode 100644 index 6ce0e4b..0000000 --- a/libraries/Lora_Serialization/test/.eslintrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - "extends": "../.eslintrc.js", - "parserOptions": { - "ecmaVersion": 6, - "sourceType": 'module', - } -} diff --git a/libraries/Lora_Serialization/test/LoraMessage.js b/libraries/Lora_Serialization/test/LoraMessage.js deleted file mode 100644 index 4fa4767..0000000 --- a/libraries/Lora_Serialization/test/LoraMessage.js +++ /dev/null @@ -1,37 +0,0 @@ -import test from 'ava'; -import { encoder, LoraMessage } from '../src'; -import base from './base'; - -test('should be possible to construct a simple message', t => { - const m = new LoraMessage(encoder); - m.addUnixtime(base.unixtime); - t.is(m.getLength(), 4); - t.deepEqual(m.getBytes(), base.unixtimeBytes); - t.pass(); -}); - -test('should be possible to chain message parts', t => { - const loraMessage = new LoraMessage(encoder); - t.deepEqual( - loraMessage - .addLatLng.apply(loraMessage, base.latLng) - .addUnixtime(base.unixtime) - .addUint16(base.uint16) - .addTemperature(base.temp) - .addUint8(base.uint8) - .addHumidity(base.humidity) - .addBitmap.apply(loraMessage, base.bitmapArgs) - .getBytes() - , - Buffer.concat([ - base.latLngBytes, - base.unixtimeBytes, - base.uint16Bytes, - base.tempBytes, - base.uint8Bytes, - base.humidityBytes, - base.bitmapBytes, - ]) - ); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/Makefile b/libraries/Lora_Serialization/test/Makefile deleted file mode 100644 index 057983c..0000000 --- a/libraries/Lora_Serialization/test/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CC = g++ - -# -g adds debugging information to the executable file -# -Wall turns on most, but not all, compiler warnings -CFLAGS = -g -Wall --coverage - -TARGET = main - -all: $(TARGET) - -$(TARGET): $(TARGET).cpp - $(CC) $(CFLAGS) -o $(TARGET) $(TARGET).cpp - -test: - ./main - -clean: - $(RM) $(TARGET) $(TARGET).gcda $(TARGET).gcno diff --git a/libraries/Lora_Serialization/test/base.js b/libraries/Lora_Serialization/test/base.js deleted file mode 100644 index f85cb63..0000000 --- a/libraries/Lora_Serialization/test/base.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = { - unixtimeBytes: new Buffer([0x1d, 0x4b, 0x7a, 0x57]), - unixtime: 1467632413, - uint8Bytes: new Buffer([0xFF]), - uint8: 255, - uint16Bytes: new Buffer([0x9d, 0x5b]), - uint16: 23453, - tempBytes: new Buffer([0x1f, 0x4c]), - temp: 80.12, - negativeTempBytes: new Buffer([0xcf, 0xc7]), - negativeTemp: -123.45, - humidityBytes: new Buffer([0x0f, 0x27]), - humidity: 99.99, - latLngBytes: new Buffer([0x64, 0xa6, 0xfa, 0xfd, 0x6a, 0x24, 0x04, 0x09]), - latLng: [-33.905052, 151.26641], - bitmapArgs: [true, true, true, true, true, true, false, true], - bitmap: { - a: true, - b: true, - c: true, - d: true, - e: true, - f: true, - g: false, - h: true - }, - bitmapBytes: new Buffer([253]), - bitmap2: { - a: false, - b: true, - c: false, - d: false, - e: false, - f: false, - g: false, - h: false - }, - bitmap2Bytes: new Buffer([64]), -}; diff --git a/libraries/Lora_Serialization/test/decoder/bitmap.js b/libraries/Lora_Serialization/test/decoder/bitmap.js deleted file mode 100644 index 8f6c02d..0000000 --- a/libraries/Lora_Serialization/test/decoder/bitmap.js +++ /dev/null @@ -1,20 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the buffer is omitted', t => { - t.throws(() => decoder.bitmap(), /undefined/); - t.pass(); -}); -test('should yell at you if the buffer size is incorrect', t => { - t.throws(() => decoder.bitmap(new Buffer([1, 2])), /must have/); - t.pass(); -}); -test('should be possible to decode a bitmap', t => { - t.deepEqual(decoder.bitmap(base.bitmapBytes), base.bitmap); - t.pass(); -}); -test('should be possible to decode a bitmap with leading false', t => { - t.deepEqual(decoder.bitmap(base.bitmap2Bytes), base.bitmap2); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/decoder/decode.js b/libraries/Lora_Serialization/test/decoder/decode.js deleted file mode 100644 index ccdcebd..0000000 --- a/libraries/Lora_Serialization/test/decoder/decode.js +++ /dev/null @@ -1,52 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should be able to compose decoder functions', t => { - t.deepEqual( - decoder.decode( - Buffer.concat([ - base.latLngBytes, - base.unixtimeBytes, - base.uint16Bytes, - base.tempBytes, - base.uint8Bytes, - base.humidityBytes, - base.bitmapBytes, - ]), [ - decoder.latLng, - decoder.unixtime, - decoder.uint16, - decoder.temperature, - decoder.uint8, - decoder.humidity, - decoder.bitmap, - ] - ), - { - 0: base.latLng, - 1: base.unixtime, - 2: base.uint16, - 3: base.temp, - 4: base.uint8, - 5: base.humidity, - 6: base.bitmap, - } - ); - t.pass(); -}); - -test('should yell at you if mask is longer than input', t => { - t.throws(() => decoder.decode(new Buffer(7), [decoder.latLng]), /Mask/i); - t.pass(); -}); - -test('should be able to take names', t => { - t.deepEqual( - decoder.decode(base.unixtimeBytes, [decoder.unixtime], ['time']), - { - time: base.unixtime - } - ); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/decoder/humidity.js b/libraries/Lora_Serialization/test/decoder/humidity.js deleted file mode 100644 index a7bd00f..0000000 --- a/libraries/Lora_Serialization/test/decoder/humidity.js +++ /dev/null @@ -1,18 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the buffer is omitted', t => { - t.throws(() => decoder.humidity(), /undefined/); - t.pass(); -}); - -test('should yell at you if the buffer size is incorrect', t => { - t.throws(() => decoder.humidity(new Buffer([1])), /must have/); - t.pass(); -}); - -test('should be possible to decode a humidity', t => { - t.is(decoder.humidity(base.humidityBytes), base.humidity); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/decoder/latLng.js b/libraries/Lora_Serialization/test/decoder/latLng.js deleted file mode 100644 index cd202ad..0000000 --- a/libraries/Lora_Serialization/test/decoder/latLng.js +++ /dev/null @@ -1,18 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the buffer is omitted', t => { - t.throws(() => decoder.latLng(), /undefined/); - t.pass(); -}); - -test('should yell at you if the buffer size is incorrect', t => { - t.throws(() => decoder.latLng(new Buffer([1, 2, 3, 4, 5, 6, 7, 8, 9])), /must have/); - t.pass(); -}); - -test('should be possible to decode a coordinate', t => { - t.deepEqual(decoder.latLng(base.latLngBytes), base.latLng); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/decoder/temperature.js b/libraries/Lora_Serialization/test/decoder/temperature.js deleted file mode 100644 index da6e448..0000000 --- a/libraries/Lora_Serialization/test/decoder/temperature.js +++ /dev/null @@ -1,23 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the buffer is omitted', t => { - t.throws(() => decoder.temperature(), /undefined/); - t.pass(); -}); - -test('should yell at you if the buffer size is incorrect', t => { - t.throws(() => decoder.temperature(new Buffer([1])), /must have/); - t.pass(); -}); - -test('should be possible to decode a temperature', t => { - t.is(decoder.temperature(base.tempBytes), base.temp); - t.pass(); -}); - -test('should be possible to decode a negative temperature', t => { - t.is(decoder.temperature(base.negativeTempBytes), base.negativeTemp); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/decoder/uint16.js b/libraries/Lora_Serialization/test/decoder/uint16.js deleted file mode 100644 index 1915a33..0000000 --- a/libraries/Lora_Serialization/test/decoder/uint16.js +++ /dev/null @@ -1,18 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the buffer is omitted', t => { - t.throws(() => decoder.uint16(), /undefined/); - t.pass(); -}); - -test('should yell at you if the buffer size is incorrect', t => { - t.throws(() => decoder.uint16(new Buffer([1])), /must have/); - t.pass(); -}); - -test('should be possible to decode an int', t => { - t.is(decoder.uint16(base.uint16Bytes), base.uint16); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/decoder/uint8.js b/libraries/Lora_Serialization/test/decoder/uint8.js deleted file mode 100644 index cbe8366..0000000 --- a/libraries/Lora_Serialization/test/decoder/uint8.js +++ /dev/null @@ -1,18 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the buffer is omitted', t => { - t.throws(() => decoder.uint8(), /undefined/); - t.pass(); -}); - -test('should yell at you if the buffer size is incorrect', t => { - t.throws(() => decoder.uint8(new Buffer([1, 2])), /must have/); - t.pass(); -}); - -test('should be possible to decode an int', t => { - t.is(decoder.uint8(base.uint8Bytes), base.uint8); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/decoder/unixtime.js b/libraries/Lora_Serialization/test/decoder/unixtime.js deleted file mode 100644 index 1163d56..0000000 --- a/libraries/Lora_Serialization/test/decoder/unixtime.js +++ /dev/null @@ -1,18 +0,0 @@ -import test from 'ava'; -import { decoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the buffer is omitted', t => { - t.throws(() => decoder.unixtime(), /undefined/); - t.pass(); -}); - -test('should yell at you if the buffer size is incorrect', t => { - t.throws(() => decoder.unixtime(new Buffer([1, 2])), /must have/); - t.pass(); -}); - -test('should be possible to decode a unixtime', t => { - t.is(decoder.unixtime(base.unixtimeBytes), base.unixtime); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/bitmap.js b/libraries/Lora_Serialization/test/encoder/bitmap.js deleted file mode 100644 index cf175d0..0000000 --- a/libraries/Lora_Serialization/test/encoder/bitmap.js +++ /dev/null @@ -1,19 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the bitmap is incorrect', t => { - t.throws(() => encoder.bitmap(1), TypeError); - t.throws(() => encoder.bitmap('a'), TypeError); - t.pass(); -}); - -test('should be possible to encode a bitmap', t => { - t.deepEqual(encoder.bitmap.apply(encoder, base.bitmapArgs), base.bitmapBytes); - t.pass(); -}); - -test('should be possible to encode a short bitmap', t => { - t.deepEqual(encoder.bitmap(true), new Buffer([0x80])); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/encode.js b/libraries/Lora_Serialization/test/encoder/encode.js deleted file mode 100644 index 08cd20f..0000000 --- a/libraries/Lora_Serialization/test/encoder/encode.js +++ /dev/null @@ -1,48 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if input is incorrect', t => { - t.throws(() => encoder.encode(), /values/i); - t.throws(() => encoder.encode([]), /mask/i); - t.pass(); -}); - -test('should yell at you if input is longer than mask', t => { - t.throws(() => encoder.encode([1,2,3], [encoder.latLng]), /Mask/i); - t.pass(); -}); - -test('should be able to compose encoder functions', t => { - t.deepEqual(encoder - .encode( - [ - base.latLng, - base.unixtime, - base.uint16, - base.temp, - base.uint8, - base.humidity, - base.bitmapArgs, - ], - [ - encoder.latLng, - encoder.unixtime, - encoder.uint16, - encoder.temperature, - encoder.uint8, - encoder.humidity, - encoder.bitmap, - ]), - Buffer.concat([ - base.latLngBytes, - base.unixtimeBytes, - base.uint16Bytes, - base.tempBytes, - base.uint8Bytes, - base.humidityBytes, - base.bitmapBytes, - ]) - ); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/humidity.js b/libraries/Lora_Serialization/test/encoder/humidity.js deleted file mode 100644 index 88a8674..0000000 --- a/libraries/Lora_Serialization/test/encoder/humidity.js +++ /dev/null @@ -1,17 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the humidity is omitted', t => { - t.throws(() => encoder.humidity()); - t.pass(); -}); -test('should yell at you if the humidity is incorrect', t => { - t.throws(() => encoder.humidity(-0.01), /range/); - t.throws(() => encoder.humidity(100.01), /range/); - t.pass(); -}); -test('should be possible to encode a humidity', t => { - t.deepEqual(encoder.humidity(base.humidity), base.humidityBytes); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/latLng.js b/libraries/Lora_Serialization/test/encoder/latLng.js deleted file mode 100644 index 248db70..0000000 --- a/libraries/Lora_Serialization/test/encoder/latLng.js +++ /dev/null @@ -1,22 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the coordinates are omitted', t => { - t.throws(() => encoder.latLng(), /latitude/i); - t.throws(() => encoder.latLng(0), /longitude/i); - t.pass(); -}); - -test('should yell at you if the coordinates are incorrect', t => { - t.throws(() => encoder.latLng(-90.000001, 0), /latitude/i); - t.throws(() => encoder.latLng(90.000001, 0), /latitude/i); - t.throws(() => encoder.latLng(0, -180.000001), /longitude/i); - t.throws(() => encoder.latLng(0, 180.000001), /longitude/i); - t.pass(); -}); - -test('should be possible to decode a coordinate', t => { - t.deepEqual(encoder.latLng(...base.latLng), base.latLngBytes); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/temperature.js b/libraries/Lora_Serialization/test/encoder/temperature.js deleted file mode 100644 index e3bb604..0000000 --- a/libraries/Lora_Serialization/test/encoder/temperature.js +++ /dev/null @@ -1,24 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the temperature is omitted', t => { - t.throws(() => encoder.temperature()); - t.pass(); -}); - -test('should yell at you if the temperature is incorrect', t => { - t.throws(() => encoder.temperature(-327.69), /range/); - t.throws(() => encoder.temperature(327.68), /range/); - t.pass(); -}); - -test('should be possible to encode a temperature', t => { - t.deepEqual(encoder.temperature(base.temp), base.tempBytes); - t.pass(); -}); - -test('should be possible to encode a negative temperature', t => { - t.deepEqual(encoder.temperature(base.negativeTemp), base.negativeTempBytes); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/uint16.js b/libraries/Lora_Serialization/test/encoder/uint16.js deleted file mode 100644 index 526e369..0000000 --- a/libraries/Lora_Serialization/test/encoder/uint16.js +++ /dev/null @@ -1,19 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the uint is omitted', t => { - t.throws(() => encoder.uint16()); - t.pass(); -}); - -test('should yell at you if the uint size is incorrect', t => { - t.throws(() => encoder.uint16(-1), /range/); - t.throws(() => encoder.uint16(65536), /range/); - t.pass(); -}); - -test('should be possible to encode an int', t => { - t.deepEqual(encoder.uint16(base.uint16), base.uint16Bytes); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/uint8.js b/libraries/Lora_Serialization/test/encoder/uint8.js deleted file mode 100644 index 3f064f3..0000000 --- a/libraries/Lora_Serialization/test/encoder/uint8.js +++ /dev/null @@ -1,19 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the uint is omitted', t => { - t.throws(() => encoder.uint8()); - t.pass(); -}); - -test('should yell at you if the uint is incorrect', t => { - t.throws(() => encoder.uint8(-1), /range/); - t.throws(() => encoder.uint8(256), /range/); - t.pass(); -}); - -test('should be possible to encode an int', t => { - t.deepEqual(encoder.uint8(base.uint8), base.uint8Bytes); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/encoder/unixtime.js b/libraries/Lora_Serialization/test/encoder/unixtime.js deleted file mode 100644 index 591465c..0000000 --- a/libraries/Lora_Serialization/test/encoder/unixtime.js +++ /dev/null @@ -1,18 +0,0 @@ -import test from 'ava'; -import { encoder } from '../../src'; -import base from '../base'; - -test('should yell at you if the unixtime is omitted', t => { - t.throws(() => encoder.unixtime()); - t.pass(); -}); - -test('should yell at you if the unixtime is incorrect', t => { - t.throws(() => encoder.unixtime(-1), /positive/); - t.pass(); -}); - -test('should be possible to encode a unixtime', t => { - t.deepEqual(encoder.unixtime(base.unixtime), base.unixtimeBytes); - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/helpers.cpp b/libraries/Lora_Serialization/test/helpers.cpp deleted file mode 100644 index 9f6fb55..0000000 --- a/libraries/Lora_Serialization/test/helpers.cpp +++ /dev/null @@ -1,12 +0,0 @@ -void printByteArrayToHex(byte *arr) { - for(int i = 0; i < sizeof(arr); i++) { - printf("%02x", arr[i]); - } - printf("\n"); -} - -void compare_array(byte *arr1, byte *arr2, int start, int len) { - for(int i = start; i < start + len; i++) { - REQUIRE(arr1[i] == arr2[i]); - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/.gitattributes b/libraries/Lora_Serialization/test/lib/Catch/.gitattributes deleted file mode 100644 index a2d66d3..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/.gitattributes +++ /dev/null @@ -1,11 +0,0 @@ -# This sets the default behaviour, overriding core.autocrlf -* text=auto - -# All source files should have unix line-endings in the repository, -# but convert to native line-endings on checkout -*.cpp text -*.h text -*.hpp text - -# Windows specific files should retain windows line-endings -*.sln text eol=crlf \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/.github/issue_template.md b/libraries/Lora_Serialization/test/lib/Catch/.github/issue_template.md deleted file mode 100644 index 051b5e5..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/.github/issue_template.md +++ /dev/null @@ -1,29 +0,0 @@ -## Description - - - -### Steps to reproduce - - - -### Extra information - -* Catch version: **v42.42.42** -* Operating System: **Joe's discount operating system** -* Compiler+version: **Hidden Dragon v1.2.3** diff --git a/libraries/Lora_Serialization/test/lib/Catch/.github/pull_request_template.md b/libraries/Lora_Serialization/test/lib/Catch/.github/pull_request_template.md deleted file mode 100644 index 95e3ccd..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/.github/pull_request_template.md +++ /dev/null @@ -1,25 +0,0 @@ - - - -## Description - - -## GitHub Issues - diff --git a/libraries/Lora_Serialization/test/lib/Catch/.gitignore b/libraries/Lora_Serialization/test/lib/Catch/.gitignore deleted file mode 100644 index c7c3fc8..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -*.build -*.pbxuser -*.mode1v3 -*.ncb -*.suo -Debug -Release -*.user -*.xcuserstate -.DS_Store -xcuserdata -CatchSelfTest.xcscheme -Breakpoints.xcbkptlist -projects/VS2010/TestCatch/_UpgradeReport_Files/ -projects/VS2010/TestCatch/TestCatch/TestCatch.vcxproj.filters -projects/VisualStudio/TestCatch/UpgradeLog.XML -projects/CMake/.idea -projects/CMake/cmake-build-debug -UpgradeLog.XML -Resources/DWARF -projects/Generated -*.pyc -DerivedData -*.xccheckout -Build -.idea -cmake-build-debug -cmake-build-release -.vs \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/.travis.yml b/libraries/Lora_Serialization/test/lib/Catch/.travis.yml deleted file mode 100644 index c44a8cd..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/.travis.yml +++ /dev/null @@ -1,232 +0,0 @@ -language: cpp -sudo: false - -matrix: - include: - - # 1/ Linux Clang Builds - - os: linux - compiler: clang - addons: &clang34 - apt: - sources: ['llvm-toolchain-precise', 'ubuntu-toolchain-r-test'] - packages: ['clang'] - env: COMPILER='clang++' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: clang - addons: *clang34 - env: COMPILER='clang++' BUILD_TYPE='Debug' CPP11=0 - - - os: linux - compiler: clang - addons: &clang35 - apt: - sources: ['llvm-toolchain-precise-3.5', 'ubuntu-toolchain-r-test'] - packages: ['clang-3.5'] - env: COMPILER='clang++-3.5' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: clang - addons: *clang35 - env: COMPILER='clang++-3.5' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: clang - addons: &clang36 - apt: - sources: ['llvm-toolchain-precise-3.6', 'ubuntu-toolchain-r-test'] - packages: ['clang-3.6'] - env: COMPILER='clang++-3.6' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: clang - addons: *clang36 - env: COMPILER='clang++-3.6' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: clang - addons: &clang37 - apt: - sources: ['llvm-toolchain-precise-3.7', 'ubuntu-toolchain-r-test'] - packages: ['clang-3.7'] - env: COMPILER='clang++-3.7' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: clang - addons: *clang37 - env: COMPILER='clang++-3.7' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: clang - addons: &clang38 - apt: - sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test'] - packages: ['clang-3.8'] - env: COMPILER='clang++-3.8' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: clang - addons: *clang38 - env: COMPILER='clang++-3.8' BUILD_TYPE='Debug' CPP11=0 - - - # 2/ Linux GCC Builds - - os: linux - compiler: gcc - addons: &gcc44 - apt: - sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-4.4'] - env: COMPILER='g++-4.4' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: gcc - addons: *gcc44 - env: COMPILER='g++-4.4' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: gcc - addons: &gcc47 - apt: - sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-4.7'] - env: COMPILER='g++-4.7' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: gcc - addons: *gcc47 - env: COMPILER='g++-4.7' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: gcc - addons: &gcc48 - apt: - sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-4.8'] - env: COMPILER='g++-4.8' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: gcc - addons: *gcc48 - env: COMPILER='g++-4.8' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: gcc - addons: &gcc49 - apt: - sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-4.9'] - env: COMPILER='g++-4.9' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: gcc - addons: *gcc49 - env: COMPILER='g++-4.9' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: gcc - addons: &gcc5 - apt: - sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-5'] - env: COMPILER='g++-5' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: gcc - addons: *gcc5 - env: COMPILER='g++-5' BUILD_TYPE='Debug' CPP11=0 - - - - os: linux - compiler: gcc - addons: &gcc6 - apt: - sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-6'] - env: COMPILER='g++-6' BUILD_TYPE='Release' CPP11=0 - - - os: linux - compiler: gcc - addons: *gcc6 - env: COMPILER='g++-6' BUILD_TYPE='Debug' CPP11=0 - - # 3a/ Linux C++11 GCC builds - - os: linux - compiler: gcc - addons: &gcc48 - apt: - sources: ['ubuntu-toolchain-r-test'] - packages: ['g++-4.8'] - env: COMPILER='g++-4.8' BUILD_TYPE='Release' CPP11=1 - - - os: linux - compiler: gcc - addons: *gcc48 - env: COMPILER='g++-4.8' BUILD_TYPE='Debug' CPP11=1 - - # 3b/ Linux C++11 Clang builds - - os: linux - compiler: clang - addons: &clang38 - apt: - sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test'] - packages: ['clang-3.8'] - env: COMPILER='clang++-3.8' BUILD_TYPE='Release' CPP11=1 - - - os: linux - compiler: clang - addons: *clang38 - env: COMPILER='clang++-3.8' BUILD_TYPE='Debug' CPP11=1 - - - # 4/ OSX Clang Builds - - os: osx - osx_image: xcode7.3 - compiler: clang - env: COMPILER='clang++' BUILD_TYPE='Debug' CPP11=0 - - - os: osx - osx_image: xcode7.3 - compiler: clang - env: COMPILER='clang++' BUILD_TYPE='Release' CPP11=0 - - - os: osx - osx_image: xcode8 - compiler: clang - env: COMPILER='clang++' BUILD_TYPE='Debug' CPP11=0 - - - os: osx - osx_image: xcode8 - compiler: clang - env: COMPILER='clang++' BUILD_TYPE='Release' CPP11=0 - - -install: - - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps" - - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR} - - | - if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then - CMAKE_URL="http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz" - mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake - export PATH=${DEPS_DIR}/cmake/bin:${PATH} - elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then - which cmake || brew install cmake - fi - -before_script: - - export CXX=${COMPILER} - - cd ${TRAVIS_BUILD_DIR} - - cmake -H. -BBuild -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -Wdev -DUSE_CPP11=${CPP11} - - cd Build - -script: - - make -j 2 - - ctest -V -j 2 diff --git a/libraries/Lora_Serialization/test/lib/Catch/CMakeLists.txt b/libraries/Lora_Serialization/test/lib/Catch/CMakeLists.txt deleted file mode 100644 index db43d41..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/CMakeLists.txt +++ /dev/null @@ -1,271 +0,0 @@ -cmake_minimum_required(VERSION 3.0) - -project(CatchSelfTest) - -set_property(GLOBAL PROPERTY USE_FOLDERS ON) - -# define some folders -set(CATCH_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -set(SELF_TEST_DIR ${CATCH_DIR}/projects/SelfTest) -set(BENCHMARK_DIR ${CATCH_DIR}/projects/Benchmark) -set(HEADER_DIR ${CATCH_DIR}/include) - -if(USE_CPP11) - ## We can't turn this on by default, since it breaks on travis - message(STATUS "Enabling C++11") - set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") -elseif(USE_CPP14) - message(STATUS "Enabling C++14") - set(CMAKE_CXX_FLAGS "-std=c++14 ${CMAKE_CXX_FLAGS}") -endif() - -#checks that the given hard-coded list contains all headers + sources in the given folder -function(CheckFileList LIST_VAR FOLDER) - set(MESSAGE " should be added to the variable ${LIST_VAR}") - set(MESSAGE "${MESSAGE} in ${CMAKE_CURRENT_LIST_FILE}\n") - file(GLOB GLOBBED_LIST "${FOLDER}/*.cpp" - "${FOLDER}/*.hpp" - "${FOLDER}/*.h") - list(REMOVE_ITEM GLOBBED_LIST ${${LIST_VAR}}) - foreach(EXTRA_ITEM ${GLOBBED_LIST}) - string(REPLACE "${CATCH_DIR}/" "" RELATIVE_FILE_NAME "${EXTRA_ITEM}") - message(AUTHOR_WARNING "The file \"${RELATIVE_FILE_NAME}\"${MESSAGE}") - endforeach() -endfunction() - -function(CheckFileListRec LIST_VAR FOLDER) - set(MESSAGE " should be added to the variable ${LIST_VAR}") - set(MESSAGE "${MESSAGE} in ${CMAKE_CURRENT_LIST_FILE}\n") - file(GLOB_RECURSE GLOBBED_LIST "${FOLDER}/*.cpp" - "${FOLDER}/*.hpp" - "${FOLDER}/*.h") - list(REMOVE_ITEM GLOBBED_LIST ${${LIST_VAR}}) - foreach(EXTRA_ITEM ${GLOBBED_LIST}) - string(REPLACE "${CATCH_DIR}/" "" RELATIVE_FILE_NAME "${EXTRA_ITEM}") - message(AUTHOR_WARNING "The file \"${RELATIVE_FILE_NAME}\"${MESSAGE}") - endforeach() -endfunction() - -# define the sources of the self test -# Please keep these ordered alphabetically -set(TEST_SOURCES - ${SELF_TEST_DIR}/ApproxTests.cpp - ${SELF_TEST_DIR}/BDDTests.cpp - ${SELF_TEST_DIR}/ClassTests.cpp - ${SELF_TEST_DIR}/CmdLineTests.cpp - ${SELF_TEST_DIR}/CompilationTests.cpp - ${SELF_TEST_DIR}/ConditionTests.cpp - ${SELF_TEST_DIR}/EnumToString.cpp - ${SELF_TEST_DIR}/ExceptionTests.cpp - ${SELF_TEST_DIR}/GeneratorTests.cpp - ${SELF_TEST_DIR}/MessageTests.cpp - ${SELF_TEST_DIR}/MiscTests.cpp - ${SELF_TEST_DIR}/PartTrackerTests.cpp - ${SELF_TEST_DIR}/TagAliasTests.cpp - ${SELF_TEST_DIR}/TestMain.cpp - ${SELF_TEST_DIR}/ToStringGeneralTests.cpp - ${SELF_TEST_DIR}/ToStringPair.cpp - ${SELF_TEST_DIR}/ToStringTuple.cpp - ${SELF_TEST_DIR}/ToStringVector.cpp - ${SELF_TEST_DIR}/ToStringWhich.cpp - ${SELF_TEST_DIR}/TrickyTests.cpp - ${SELF_TEST_DIR}/VariadicMacrosTests.cpp - ${SELF_TEST_DIR}/MatchersTests.cpp - ) -CheckFileList(TEST_SOURCES ${SELF_TEST_DIR}) - -# A set of impl files that just #include a single header -# Please keep these ordered alphabetically -set(IMPL_SOURCES - ${SELF_TEST_DIR}/SurrogateCpps/catch_common.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_console_colour.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_debugger.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_capture.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_config.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_exception.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_generators.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_registry_hub.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_reporter.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_runner.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_interfaces_testcase.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_message.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_option.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_ptr.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_stream.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_streambuf.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_test_spec.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_xmlwriter.cpp - ${SELF_TEST_DIR}/SurrogateCpps/catch_test_case_tracker.cpp - ) -CheckFileList(IMPL_SOURCES ${SELF_TEST_DIR}/SurrogateCpps) - - -# Please keep these ordered alphabetically -set(TOP_LEVEL_HEADERS - ${HEADER_DIR}/catch.hpp - ${HEADER_DIR}/catch_session.hpp - ${HEADER_DIR}/catch_with_main.hpp - ) -CheckFileList(TOP_LEVEL_HEADERS ${HEADER_DIR}) - -# Please keep these ordered alphabetically -set(EXTERNAL_HEADERS - ${HEADER_DIR}/external/clara.h - ${HEADER_DIR}/external/tbc_text_format.h - ) -CheckFileList(EXTERNAL_HEADERS ${HEADER_DIR}/external) - - -# Please keep these ordered alphabetically -set(INTERNAL_HEADERS - ${HEADER_DIR}/internal/catch_approx.hpp - ${HEADER_DIR}/internal/catch_assertionresult.h - ${HEADER_DIR}/internal/catch_assertionresult.hpp - ${HEADER_DIR}/internal/catch_capture.hpp - ${HEADER_DIR}/internal/catch_clara.h - ${HEADER_DIR}/internal/catch_commandline.hpp - ${HEADER_DIR}/internal/catch_common.h - ${HEADER_DIR}/internal/catch_common.hpp - ${HEADER_DIR}/internal/catch_compiler_capabilities.h - ${HEADER_DIR}/internal/catch_config.hpp - ${HEADER_DIR}/internal/catch_console_colour.hpp - ${HEADER_DIR}/internal/catch_console_colour_impl.hpp - ${HEADER_DIR}/internal/catch_context.h - ${HEADER_DIR}/internal/catch_context_impl.hpp - ${HEADER_DIR}/internal/catch_debugger.h - ${HEADER_DIR}/internal/catch_debugger.hpp - ${HEADER_DIR}/internal/catch_default_main.hpp - ${HEADER_DIR}/internal/catch_evaluate.hpp - ${HEADER_DIR}/internal/catch_exception_translator_registry.hpp - ${HEADER_DIR}/internal/catch_expression_lhs.hpp - ${HEADER_DIR}/internal/catch_fatal_condition.hpp - ${HEADER_DIR}/internal/catch_generators.hpp - ${HEADER_DIR}/internal/catch_generators_impl.hpp - ${HEADER_DIR}/internal/catch_impl.hpp - ${HEADER_DIR}/internal/catch_interfaces_capture.h - ${HEADER_DIR}/internal/catch_interfaces_config.h - ${HEADER_DIR}/internal/catch_interfaces_exception.h - ${HEADER_DIR}/internal/catch_interfaces_generators.h - ${HEADER_DIR}/internal/catch_interfaces_registry_hub.h - ${HEADER_DIR}/internal/catch_interfaces_reporter.h - ${HEADER_DIR}/internal/catch_interfaces_runner.h - ${HEADER_DIR}/internal/catch_interfaces_tag_alias_registry.h - ${HEADER_DIR}/internal/catch_interfaces_testcase.h - ${HEADER_DIR}/internal/catch_legacy_reporter_adapter.h - ${HEADER_DIR}/internal/catch_legacy_reporter_adapter.hpp - ${HEADER_DIR}/internal/catch_list.hpp - ${HEADER_DIR}/internal/catch_matchers.hpp - ${HEADER_DIR}/internal/catch_matchers_string.h - ${HEADER_DIR}/internal/catch_matchers_string.hpp - ${HEADER_DIR}/internal/catch_matchers_vector.h - ${HEADER_DIR}/internal/catch_message.h - ${HEADER_DIR}/internal/catch_message.hpp - ${HEADER_DIR}/internal/catch_notimplemented_exception.h - ${HEADER_DIR}/internal/catch_notimplemented_exception.hpp - ${HEADER_DIR}/internal/catch_objc.hpp - ${HEADER_DIR}/internal/catch_objc_arc.hpp - ${HEADER_DIR}/internal/catch_option.hpp - ${HEADER_DIR}/internal/catch_platform.h - ${HEADER_DIR}/internal/catch_ptr.hpp - ${HEADER_DIR}/internal/catch_reenable_warnings.h - ${HEADER_DIR}/internal/catch_registry_hub.hpp - ${HEADER_DIR}/internal/catch_reporter_registrars.hpp - ${HEADER_DIR}/internal/catch_reporter_registry.hpp - ${HEADER_DIR}/internal/catch_result_builder.h - ${HEADER_DIR}/internal/catch_result_builder.hpp - ${HEADER_DIR}/internal/catch_result_type.h - ${HEADER_DIR}/internal/catch_run_context.hpp - ${HEADER_DIR}/internal/catch_section.h - ${HEADER_DIR}/internal/catch_section.hpp - ${HEADER_DIR}/internal/catch_section_info.h - ${HEADER_DIR}/internal/catch_section_info.hpp - ${HEADER_DIR}/internal/catch_stream.h - ${HEADER_DIR}/internal/catch_stream.hpp - ${HEADER_DIR}/internal/catch_streambuf.h - ${HEADER_DIR}/internal/catch_suppress_warnings.h - ${HEADER_DIR}/internal/catch_tag_alias.h - ${HEADER_DIR}/internal/catch_tag_alias_registry.h - ${HEADER_DIR}/internal/catch_tag_alias_registry.hpp - ${HEADER_DIR}/internal/catch_test_case_info.h - ${HEADER_DIR}/internal/catch_test_case_info.hpp - ${HEADER_DIR}/internal/catch_test_case_registry_impl.hpp - ${HEADER_DIR}/internal/catch_test_case_tracker.hpp - ${HEADER_DIR}/internal/catch_test_registry.hpp - ${HEADER_DIR}/internal/catch_test_spec.hpp - ${HEADER_DIR}/internal/catch_test_spec_parser.hpp - ${HEADER_DIR}/internal/catch_text.h - ${HEADER_DIR}/internal/catch_timer.h - ${HEADER_DIR}/internal/catch_timer.hpp - ${HEADER_DIR}/internal/catch_tostring.h - ${HEADER_DIR}/internal/catch_tostring.hpp - ${HEADER_DIR}/internal/catch_totals.hpp - ${HEADER_DIR}/internal/catch_type_traits.hpp - ${HEADER_DIR}/internal/catch_version.h - ${HEADER_DIR}/internal/catch_version.hpp - ${HEADER_DIR}/internal/catch_wildcard_pattern.hpp - ${HEADER_DIR}/internal/catch_windows_h_proxy.h - ${HEADER_DIR}/internal/catch_xmlwriter.hpp - ) -CheckFileList(INTERNAL_HEADERS ${HEADER_DIR}/internal) - -# Please keep these ordered alphabetically -set(REPORTER_HEADERS - ${HEADER_DIR}/reporters/catch_reporter_automake.hpp - ${HEADER_DIR}/reporters/catch_reporter_bases.hpp - ${HEADER_DIR}/reporters/catch_reporter_compact.hpp - ${HEADER_DIR}/reporters/catch_reporter_console.hpp - ${HEADER_DIR}/reporters/catch_reporter_junit.hpp - ${HEADER_DIR}/reporters/catch_reporter_multi.hpp - ${HEADER_DIR}/reporters/catch_reporter_tap.hpp - ${HEADER_DIR}/reporters/catch_reporter_teamcity.hpp - ${HEADER_DIR}/reporters/catch_reporter_xml.hpp - ) -CheckFileList(REPORTER_HEADERS ${HEADER_DIR}/reporters) - -# Specify the headers, too, so CLion recognises them as project files -set(HEADERS - ${TOP_LEVEL_HEADERS} - ${EXTERNAL_HEADERS} - ${INTERNAL_HEADERS} - ${REPORTER_HEADERS} - ) - - -set(BENCH_SOURCES - ${BENCHMARK_DIR}/BenchMain.cpp - ${BENCHMARK_DIR}/StringificationBench.cpp - ) -CheckFileList(BENCH_SOURCES ${BENCHMARK_DIR}) - -# Provide some groupings for IDEs -SOURCE_GROUP("Tests" FILES ${TEST_SOURCES}) -SOURCE_GROUP("Surrogates" FILES ${IMPL_SOURCES}) -SOURCE_GROUP("Benchmarks" FILES ${BENCH_SOURCES}) - -# configure the executable -include_directories(${HEADER_DIR}) -add_executable(SelfTest ${TEST_SOURCES} ${IMPL_SOURCES} ${HEADERS}) -add_executable(Benchmark ${BENCH_SOURCES} ${HEADERS}) - -# Add desired warnings -if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang|GNU" ) - target_compile_options( SelfTest PRIVATE -Wall -Wextra ) - target_compile_options( Benchmark PRIVATE -Wall -Wextra ) -endif() -if ( CMAKE_CXX_COMPILER_ID MATCHES "MSVC" ) - target_compile_options( SelfTest PRIVATE /W4 ) - target_compile_options( Benchmark PRIVATE /W4 ) -endif() - - -# configure unit tests via CTest -enable_testing() -add_test(NAME RunTests COMMAND SelfTest) - -add_test(NAME ListTests COMMAND SelfTest --list-tests) -set_tests_properties(ListTests PROPERTIES PASS_REGULAR_EXPRESSION "[0-9]+ test cases") - -add_test(NAME ListTags COMMAND SelfTest --list-tags) -set_tests_properties(ListTags PROPERTIES PASS_REGULAR_EXPRESSION "[0-9]+ tags") - -install(DIRECTORY "single_include/" DESTINATION "include/catch/") diff --git a/libraries/Lora_Serialization/test/lib/Catch/LICENSE_1_0.txt b/libraries/Lora_Serialization/test/lib/Catch/LICENSE_1_0.txt deleted file mode 100644 index 36b7cd9..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/LICENSE_1_0.txt +++ /dev/null @@ -1,23 +0,0 @@ -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/libraries/Lora_Serialization/test/lib/Catch/README.md b/libraries/Lora_Serialization/test/lib/Catch/README.md deleted file mode 100644 index 5d68e22..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/README.md +++ /dev/null @@ -1,23 +0,0 @@ -![catch logo](catch-logo-small.png) - -[![Github Releases](https://img.shields.io/github/release/philsquared/catch.svg)](https://github.com/philsquared/catch/releases) -[![Build Status](https://travis-ci.org/philsquared/Catch.svg?branch=master)](https://travis-ci.org/philsquared/Catch) -[![Build status](https://ci.appveyor.com/api/projects/status/hrtk60hv6tw6fght/branch/master?svg=true)](https://ci.appveyor.com/project/philsquared/catch/branch/master) - -The latest, single header, version can be downloaded directly using this link - -## What's the Catch? - -Catch stands for C++ Automated Test Cases in Headers and is a multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C). It is implemented entirely in a set of header files, but is packaged up as a single header for extra convenience. - -## How to use it -This documentation comprises these three parts: - -* [Why do we need yet another C++ Test Framework?](docs/why-catch.md) -* [Tutorial](docs/tutorial.md) - getting started -* [Reference section](docs/Readme.md) - all the details - -## More -* Issues and bugs can be raised on the [Issue tracker on GitHub](https://github.com/philsquared/Catch/issues) -* For discussion or questions please use [the dedicated Google Groups forum](https://groups.google.com/forum/?fromgroups#!forum/catch-forum) -* See [who else is using Catch](docs/opensource-users.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/appveyor.yml b/libraries/Lora_Serialization/test/lib/Catch/appveyor.yml deleted file mode 100644 index 6576baf..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/appveyor.yml +++ /dev/null @@ -1,45 +0,0 @@ -# version string format -- This will be overwritten later anyway -version: "{build}" - -# Disable the dead branch for v2 development -branches: - except: - - develop-v2 - -os: - - Visual Studio 2013 - - Visual Studio 2015 - -init: - - git config --global core.autocrlf input - # Set build version to git commit-hash - - ps: Update-AppveyorBuild -Version "$($env:APPVEYOR_REPO_BRANCH) - $($env:APPVEYOR_REPO_COMMIT)" - -# fetch repository as zip archive -shallow_clone: true - -# Win32 and x64 are CMake-compatible solution platform names. -# This allows us to pass %PLATFORM% to CMake -A. -platform: - - Win32 - - x64 - -# build Configurations, i.e. Debug, Release, etc. -configuration: - - Debug - - Release - -#Cmake will autodetect the compiler, but we set the arch -before_build: - - echo Running cmake... - - cmake -H. -BBuild -A%PLATFORM% - -# build with MSBuild -build: - project: Build\CatchSelfTest.sln # path to Visual Studio solution or project - parallel: true # enable MSBuild parallel builds - verbosity: normal # MSBuild verbosity level {quiet|minimal|normal|detailed} - -test_script: - - cd Build - - ctest -V -j 2 -C %CONFIGURATION% diff --git a/libraries/Lora_Serialization/test/lib/Catch/catch-hand-icon.png b/libraries/Lora_Serialization/test/lib/Catch/catch-hand-icon.png deleted file mode 100644 index a110d7d..0000000 Binary files a/libraries/Lora_Serialization/test/lib/Catch/catch-hand-icon.png and /dev/null differ diff --git a/libraries/Lora_Serialization/test/lib/Catch/catch-icon-tiny.png b/libraries/Lora_Serialization/test/lib/Catch/catch-icon-tiny.png deleted file mode 100644 index a037041..0000000 Binary files a/libraries/Lora_Serialization/test/lib/Catch/catch-icon-tiny.png and /dev/null differ diff --git a/libraries/Lora_Serialization/test/lib/Catch/catch-logo-small.png b/libraries/Lora_Serialization/test/lib/Catch/catch-logo-small.png deleted file mode 100644 index dd9b5e7..0000000 Binary files a/libraries/Lora_Serialization/test/lib/Catch/catch-logo-small.png and /dev/null differ diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/Readme.md b/libraries/Lora_Serialization/test/lib/Catch/docs/Readme.md deleted file mode 100644 index 1d84c66..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/Readme.md +++ /dev/null @@ -1,23 +0,0 @@ -These are the currently documented areas of the framework. There is more to come. - -Before looking at this material be sure to read the [tutorial](tutorial.md) - -* [Assertion macros](assertions.md) -* [Matchers](matchers.md) -* [Logging macros](logging.md) -* [Test cases and sections](test-cases-and-sections.md) -* [Test fixtures](test-fixtures.md) -* [Command line](command-line.md) -* [Build systems](build-systems.md) -* [Supplying your own main()](own-main.md) -* [Configuration](configuration.md) -* [String Conversions](tostring.md) -* [Why are my tests slow to compile?](slow-compiles.md) -* [Known limitations](limitations.md) - -Other - -* [Why Catch?](why-catch.md) -* [Open Source Projects using Catch](opensource-users.md) -* [Contributing](contributing.md) -* [Release Notes](release-notes.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/assertions.md b/libraries/Lora_Serialization/test/lib/Catch/docs/assertions.md deleted file mode 100644 index ff79f0e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/assertions.md +++ /dev/null @@ -1,136 +0,0 @@ -# Assertion Macros - -Most test frameworks have a large collection of assertion macros to capture all possible conditional forms (```_EQUALS```, ```_NOTEQUALS```, ```_GREATER_THAN``` etc). - -Catch is different. Because it decomposes natural C-style conditional expressions most of these forms are reduced to one or two that you will use all the time. That said there are a rich set of auxilliary macros as well. We'll describe all of these here. - -Most of these macros come in two forms: - -## Natural Expressions - -The ```REQUIRE``` family of macros tests an expression and aborts the test case if it fails. -The ```CHECK``` family are equivalent but execution continues in the same test case even if the assertion fails. This is useful if you have a series of essentially orthogonal assertions and it is useful to see all the results rather than stopping at the first failure. - -* **REQUIRE(** _expression_ **)** and -* **CHECK(** _expression_ **)** - -Evaluates the expression and records the result. If an exception is thrown it is caught, reported, and counted as a failure. These are the macros you will use most of the time - -Examples: -``` -CHECK( str == "string value" ); -CHECK( thisReturnsTrue() ); -REQUIRE( i == 42 ); -``` - -* **REQUIRE_FALSE(** _expression_ **)** and -* **CHECK_FALSE(** _expression_ **)** - -Evaluates the expression and records the _logical NOT_ of the result. If an exception is thrown it is caught, reported, and counted as a failure. -(these forms exist as a workaround for the fact that ! prefixed expressions cannot be decomposed). - -Example: -``` -REQUIRE_FALSE( thisReturnsFalse() ); -``` - -Do note that "overly complex" expressions cannot be decomposed and thus will not compile. This is done partly for practical reasons (to keep the underlying expression template machinery to minimum) and partly for philosophical reasons (assertions should be simple and deterministic). - -Examples: -* `CHECK(a == 1 && b == 2);` -This expression is too complex because of the `&&` operator. If you want to check that 2 or more properties hold, you can either put the expression into parenthesis, which stops decomposition from working, or you need to decompose the expression into two assertions: `CHECK( a == 1 ); CHECK( b == 2);` -* `CHECK( a == 2 || b == 1 );` -This expression is too complex because of the `||` operator. If you want to check that one of several properties hold, you can put the expression into parenthesis (unlike with `&&`, expression decomposition into several `CHECK`s is not possible). - - -### Floating point comparisons - -When comparing floating point numbers - especially if at least one of them has been computed - great care must be taken to allow for rounding errors and inexact representations. - -Catch provides a way to perform tolerant comparisons of floating point values through use of a wrapper class called ```Approx```. ```Approx``` can be used on either side of a comparison expression. It overloads the comparisons operators to take a tolerance into account. Here's a simple example: - -``` -REQUIRE( performComputation() == Approx( 2.1 ) ); -``` - -This way `Approx` is constructed with reasonable defaults, covering most simple cases of rounding errors. If these are insufficient, each `Approx` instance has 3 tuning knobs, that can be used to customize it for your computation. - -* __epsilon__ - epsilon serves to set the percentage by which a result can be erroneous, before it is rejected. By default set to `std::numeric_limits::epsilon()*100`. -* __margin__ - margin serves to set the the absolute value by which a result can be erroneous before it is rejected. By default set to `0.0`. -* __scale__ - scale serves to adjust the base for comparison used by epsilon, can be used when By default set to `1.0`. - -#### epsilon example -```cpp -Approx target = Approx(100).epsilon(0.01); -100.0 == target; // Obviously true -200.0 == target; // Obviously still false -100.5 == target; // True, because we set target to allow up to 1% error -``` - -#### margin example -_Margin check is used only if the relative (epsilon and scale based) check fails._ -```cpp -Approx target = Approx(100).margin(5); -100.0 == target; // Obviously true -200.0 == target; // Obviously still false -104.0 == target; // True, because we set target to allow absolute error up to 5 -``` - -#### scale -Scale can be useful if the computation leading to the result worked on different scale, than is used by the results (and thus expected errors are on a different scale than would be expected based on the results alone). - - -## Exceptions - -* **REQUIRE_NOTHROW(** _expression_ **)** and -* **CHECK_NOTHROW(** _expression_ **)** - -Expects that no exception is thrown during evaluation of the expression. - -* **REQUIRE_THROWS(** _expression_ **)** and -* **CHECK_THROWS(** _expression_ **)** - -Expects that an exception (of any type) is be thrown during evaluation of the expression. - -* **REQUIRE_THROWS_AS(** _expression_, _exception type_ **)** and -* **CHECK_THROWS_AS(** _expression_, _exception type_ **)** - -Expects that an exception of the _specified type_ is thrown during evaluation of the expression. - -* **REQUIRE_THROWS_WITH(** _expression_, _string or string matcher_ **)** and -* **CHECK_THROWS_WITH(** _expression_, _string or string matcher_ **)** - -Expects that an exception is thrown that, when converted to a string, matches the _string_ or _string matcher_ provided (see next section for Matchers). - -e.g. -```cpp -REQUIRE_THROWS_WITH( openThePodBayDoors(), Contains( "afraid" ) && Contains( "can't do that" ) ); -REQUIRE_THROWS_WITH( dismantleHal(), "My mind is going" ); -``` - - -Please note that the `THROW` family of assertions expects to be passed a single expression, not a statement or series of statements. If you want to check a more complicated sequence of operations, you can use a C++11 lambda function. - -```cpp -REQUIRE_NOTHROW([&](){ - int i = 1; - int j = 2; - auto k = i + j; - if (k == 3) { - throw 1; - } -}()); -``` - -## Matcher expressions - -To support Matchers a slightly different form is used. Matchers have [their own documentation](matchers.md). - -* **REQUIRE_THAT(** _lhs_, _matcher expression_ **)** and -* **CHECK_THAT(** _lhs_, _matcher expression_ **)** - -Matchers can be composed using `&&`, `||` and `!` operators. - ---- - -[Home](Readme.md) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/build-systems.md b/libraries/Lora_Serialization/test/lib/Catch/docs/build-systems.md deleted file mode 100644 index 69e7e5f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/build-systems.md +++ /dev/null @@ -1,95 +0,0 @@ -# Integration with build systems - -Build Systems may refer to low-level tools, like CMake, or larger systems that run on servers, like Jenkins or TeamCity. This page will talk about both. - -# Continuous Integration systems - -Probably the most important aspect to using Catch with a build server is the use of different reporters. Catch comes bundled with three reporters that should cover the majority of build servers out there - although adding more for better integration with some is always a possibility (currently we also offer TeamCity, TAP and Automake reporters). - -Two of these reporters are built in (XML and JUnit) and the third (TeamCity) is included as a separate header. It's possible that the other two may be split out in the future too - as that would make the core of Catch smaller for those that don't need them. - -## XML Reporter -```-r xml``` - -The XML Reporter writes in an XML format that is specific to Catch. - -The advantage of this format is that it corresponds well to the way Catch works (especially the more unusual features, such as nested sections) and is a fully streaming format - that is it writes output as it goes, without having to store up all its results before it can start writing. - -The disadvantage is that, being specific to Catch, no existing build servers understand the format natively. It can be used as input to an XSLT transformation that could covert it to, say, HTML - although this loses the streaming advantage, of course. - -## JUnit Reporter -```-r junit``` - -The JUnit Reporter writes in an XML format that mimics the JUnit ANT schema. - -The advantage of this format is that the JUnit Ant schema is widely understood by most build servers and so can usually be consumed with no additional work. - -The disadvantage is that this schema was designed to correspond to how JUnit works - and there is a significant mismatch with how Catch works. Additionally the format is not streamable (because opening elements hold counts of failed and passing tests as attributes) - so the whole test run must complete before it can be written. - -## Other reporters -Other reporters are not part of the single-header distribution and need to be downloaded and included separately. All reporters are stored in `include/reporters` directory in the git repository, and are named `catch_reporter_*.hpp`. For example, to use the TeamCity reporter you need to download `include/reporters/catch_reporter_teamcity.hpp` and include it after Catch itself. - -``` -#define CATCH_CONFIG_MAIN -#include "catch.hpp" -#include "catch_reporter_teamcity.hpp" -``` - -### TeamCity Reporter -```-r teamcity``` - -The TeamCity Reporter writes TeamCity service messages to stdout. In order to be able to use this reporter an additional header must also be included. - -Being specific to TeamCity this is the best reporter to use with it - but it is completely unsuitable for any other purpose. It is a streaming format (it writes as it goes) - although test results don't appear in the TeamCity interface until the completion of a suite (usually the whole test run). - -### Automake Reporter -```-r automake``` - -The Automake Reporter writes out the [meta tags](https://www.gnu.org/software/automake/manual/html_node/Log-files-generation-and-test-results-recording.html#Log-files-generation-and-test-results-recording) expected by automake via `make check`. - -### TAP (Test Anything Protocol) Reporter -```-r tap``` - -Because of the incremental nature of Catch's test suites and ability to run specific tests, our implementation of TAP reporter writes out the number of tests in a suite last. - -# Low-level tools - -## CMake - -You can use the following CMake script to automatically fetch Catch from github and configure it as an external project: - -```CMake -cmake_minimum_required(VERSION 2.8.8) -project(catch_builder CXX) -include(ExternalProject) -find_package(Git REQUIRED) - -ExternalProject_Add( - catch - PREFIX ${CMAKE_BINARY_DIR}/catch - GIT_REPOSITORY https://github.com/philsquared/Catch.git - TIMEOUT 10 - UPDATE_COMMAND ${GIT_EXECUTABLE} pull - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - LOG_DOWNLOAD ON - ) - -# Expose required variable (CATCH_INCLUDE_DIR) to parent scope -ExternalProject_Get_Property(catch source_dir) -set(CATCH_INCLUDE_DIR ${source_dir}/single_include CACHE INTERNAL "Path to include folder for Catch") -``` - -If you put it in, e.g., `${PROJECT_SRC_DIR}/${EXT_PROJECTS_DIR}/catch/`, you can use it in your project by adding the following to your root CMake file: - -```CMake -# Includes Catch in the project: -add_subdirectory(${EXT_PROJECTS_DIR}/catch) -include_directories(${CATCH_INCLUDE_DIR} ${COMMON_INCLUDES}) -enable_testing(true) # Enables unit-testing. -``` - ---- - -[Home](Readme.md) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/command-line.md b/libraries/Lora_Serialization/test/lib/Catch/docs/command-line.md deleted file mode 100644 index 5afb309..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/command-line.md +++ /dev/null @@ -1,277 +0,0 @@ -Catch works quite nicely without any command line options at all - but for those times when you want greater control the following options are available. -Click one of the followings links to take you straight to that option - or scroll on to browse the available options. - - ` ...`
- ` -h, -?, --help`
- ` -l, --list-tests`
- ` -t, --list-tags`
- ` -s, --success`
- ` -b, --break`
- ` -e, --nothrow`
- ` -i, --invisibles`
- ` -o, --out`
- ` -r, --reporter`
- ` -n, --name`
- ` -a, --abort`
- ` -x, --abortx`
- ` -w, --warn`
- ` -d, --durations`
- ` -f, --input-file`
- ` -c, --section`
- ` -#, --filenames-as-tags`
- - -
- - ` --list-test-names-only`
- ` --list-reporters`
- ` --order`
- ` --rng-seed`
- -
- - - - -## Specifying which tests to run - -
<test-spec> ...
- -Test cases, wildcarded test cases, tags and tag expressions are all passed directly as arguments. Tags are distinguished by being enclosed in square brackets. - -If no test specs are supplied then all test cases, except "hidden" tests, are run. -A test is hidden by giving it any tag starting with (or just) a period (```.```) - or, in the deprecated case, tagged ```[hide]``` or given name starting with `'./'`. To specify hidden tests from the command line ```[.]``` or ```[hide]``` can be used *regardless of how they were declared*. - -Specs must be enclosed in quotes if they contain spaces. If they do not contain spaces the quotes are optional. - -Wildcards consist of the `*` character at the beginning and/or end of test case names and can substitute for any number of any characters (including none). - -Test specs are case insensitive. - -If a spec is prefixed with `exclude:` or the `~` character then the pattern matches an exclusion. This means that tests matching the pattern are excluded from the set - even if a prior inclusion spec included them. Subsequent inclusion specs will take precendence, however. -Inclusions and exclusions are evaluated in left-to-right order. - -Test case examples: - -
thisTestOnly            Matches the test case called, 'thisTestOnly'
-"this test only"        Matches the test case called, 'this test only'
-these*                  Matches all cases starting with 'these'
-exclude:notThis         Matches all tests except, 'notThis'
-~notThis                Matches all tests except, 'notThis'
-~*private*              Matches all tests except those that contain 'private'
-a* ~ab* abc             Matches all tests that start with 'a', except those that
-                        start with 'ab', except 'abc', which is included
-
- -Names within square brackets are interpreted as tags. -A series of tags form an AND expression wheras a comma-separated sequence forms an OR expression. e.g.: - -
[one][two],[three]
-This matches all tests tagged `[one]` and `[two]`, as well as all tests tagged `[three]` - -Test names containing special characters, such as `,` or `[` can specify them on the command line using `\`. -`\` also escapes itself. - - -## Choosing a reporter to use - -
-r, --reporter <reporter>
- -A reporter is an object that formats and structures the output of running tests, and potentially summarises the results. By default a console reporter is used that writes, IDE friendly, textual output. Catch comes bundled with some alternative reporters, but more can be added in client code.
-The bundled reporters are: - -
-r console
--r compact
--r xml
--r junit
-
- -The JUnit reporter is an xml format that follows the structure of the JUnit XML Report ANT task, as consumed by a number of third-party tools, including Continuous Integration servers such as Hudson. If not otherwise needed, the standard XML reporter is preferred as this is a streaming reporter, whereas the Junit reporter needs to hold all its results until the end so it can write the overall results into attributes of the root node. - - -## Breaking into the debugger -
-b, --break
- -In some IDEs (currently XCode and Visual Studio) it is possible for Catch to break into the debugger on a test failure. This can be very helpful during debug sessions - especially when there is more than one path through a particular test. - - -## Showing results for successful tests -
-s, --success
- -Usually you only want to see reporting for failed tests. Sometimes it's useful to see *all* the output (especially when you don't trust that that test you just added worked first time!). -To see successful, as well as failing, test results just pass this option. Note that each reporter may treat this option differently. The Junit reporter, for example, logs all results regardless. - - -## Aborting after a certain number of failures -
-a, --abort
--x, --abortx [<failure threshold>]
-
- -If a ```REQUIRE``` assertion fails the test case aborts, but subsequent test cases are still run. -If a ```CHECK``` assertion fails even the current test case is not aborted. - -Sometimes this results in a flood of failure messages and you'd rather just see the first few. Specifying ```-a``` or ```--abort``` on its own will abort the whole test run on the first failed assertion of any kind. Use ```-x``` or ```--abortx``` followed by a number to abort after that number of assertion failures. - - -## Listing available tests, tags or reporters -
-l, --list-tests
--t, --list-tags
---list-reporters
-
- -```-l``` or ```--list-tests``` will list all registered tests, along with any tags. -If one or more test-specs have been supplied too then only the matching tests will be listed. - -```-t``` or ```--list-tags``` lists all available tags, along with the number of test cases they match. Again, supplying test specs limits the tags that match. - -```--list-reporters``` lists the available reporters. - - -## Sending output to a file -
-o, --out <filename>
-
- -Use this option to send all output to a file. By default output is sent to stdout (note that uses of stdout and stderr *from within test cases* are redirected and included in the report - so even stderr will effectively end up on stdout). - - -## Naming a test run -
-n, --name <name for test run>
- -If a name is supplied it will be used by the reporter to provide an overall name for the test run. This can be useful if you are sending to a file, for example, and need to distinguish different test runs - either from different Catch executables or runs of the same executable with different options. If not supplied the name is defaulted to the name of the executable. - - -## Eliding assertions expected to throw -
-e, --nothrow
- -Skips all assertions that test that an exception is thrown, e.g. ```REQUIRE_THROWS```. - -These can be a nuisance in certain debugging environments that may break when exceptions are thrown (while this is usually optional for handled exceptions, it can be useful to have enabled if you are trying to track down something unexpected). - -Sometimes exceptions are expected outside of one of the assertions that tests for them (perhaps thrown and caught within the code-under-test). The whole test case can be skipped when using ```-e``` by marking it with the ```[!throws]``` tag. - -When running with this option any throw checking assertions are skipped so as not to contribute additional noise. Be careful if this affects the behaviour of subsequent tests. - - -## Make whitespace visible -
-i, --invisibles
- -If a string comparison fails due to differences in whitespace - especially leading or trailing whitespace - it can be hard to see what's going on. -This option transforms tabs and newline characters into ```\t``` and ```\n``` respectively when printing. - - -## Warnings -
-w, --warn <warning name>
- -Enables reporting of warnings (only one, at time of this writing). If a warning is issued it fails the test. - -The ony available warning, presently, is ```NoAssertions```. This warning fails a test case, or (leaf) section if no assertions (```REQUIRE```/ ```CHECK``` etc) are encountered. - - -## Reporting timings -
-d, --durations <yes/no>
- -When set to ```yes``` Catch will report the duration of each test case, in milliseconds. Note that it does this regardless of whether a test case passes or fails. Note, also, the certain reporters (e.g. Junit) always report test case durations regardless of this option being set or not. - - -## Load test names to run from a file -
-f, --input-file <filename>
- -Provide the name of a file that contains a list of test case names - one per line. Blank lines are skipped and anything after the comment character, ```#```, is ignored. - -A useful way to generate an initial instance of this file is to use the list-test-names-only option. This can then be manually curated to specify a specific subset of tests - or in a specific order. - - -## Just test names -
--list-test-names-only
- -This option lists all available tests in a non-indented form, one on each line. This makes it ideal for saving to a file and feeding back into the ```-f``` or ```--input-file``` option. - - - -## Specify the order test cases are run -
--order <decl|lex|rand>
- -Test cases are ordered one of three ways: - - -### decl -Declaration order. The order the tests were originally declared in. Note that ordering between files is not guaranteed and is implementation dependent. - -### lex -Lexicographically sorted. Tests are sorted, alpha-numerically, by name. - -### rand -Randomly sorted. Test names are sorted using ```std::random_shuffle()```. By default the random number generator is seeded with 0 - and so the order is repeatable. To control the random seed see rng-seed. - - -## Specify a seed for the Random Number Generator -
--rng-seed <'time'|number>
- -Sets a seed for the random number generator using ```std::srand()```. -If a number is provided this is used directly as the seed so the random pattern is repeatable. -Alternatively if the keyword ```time``` is provided then the result of calling ```std::time(0)``` is used and so the pattern becomes unpredictable. - -In either case the actual value for the seed is printed as part of Catch's output so if an issue is discovered that is sensitive to test ordering the ordering can be reproduced - even if it was originally seeded from ```std::time(0)```. - - -## Usage -
-h, -?, --help
- -Prints the command line arguments to stdout - - - -## Specify the section to run -
-c, --section <section name>
- -To limit execution to a specific section within a test case, use this option one or more times. -To narrow to sub-sections use multiple instances, where each subsequent instance specifies a deeper nesting level. - -E.g. if you have: - -
-TEST_CASE( "Test" ) {
-  SECTION( "sa" ) {
-    SECTION( "sb" ) {
-      /*...*/
-    }
-    SECTION( "sc" ) {
-      /*...*/
-    }
-  }
-  SECTION( "sd" ) {
-    /*...*/
-  }
-}
-
- -Then you can run `sb` with: -
./MyExe Test -c sa -c sb
- -Or run just `sd` with: -
./MyExe Test -c sd
- -To run all of `sa`, including `sb` and `sc` use: -
./MyExe Test -c sa
- -There are some limitations of this feature to be aware of: -- Code outside of sections being skipped will still be executed - e.g. any set-up code in the TEST_CASE before the -start of the first section.
-- At time of writing, wildcards are not supported in section names. -- If you specify a section without narrowing to a test case first then all test cases will be executed -(but only matching sections within them). - - - -## Filenames as tags -
-#, --filenames-as-tags
- -When this option is used then every test is given an additional tag which is formed of the unqualified -filename it is found in, with any extension stripped, prefixed with the `#` character. - -So, for example, tests within the file `~\Dev\MyProject\Ferrets.cpp` would be tagged `[#Ferrets]`. - - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/commercial-users.md b/libraries/Lora_Serialization/test/lib/Catch/docs/commercial-users.md deleted file mode 100644 index 53b0e70..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/commercial-users.md +++ /dev/null @@ -1,12 +0,0 @@ -# Commercial users of Catch - -As well as [Open Source](opensource-users.md) users Catch is widely used within proprietary code bases too. Many companies like to keep this -information internal, and that's fine, but if you're more open it would be great if we could list the names of as -many organisations as possible that use Catch somewhere in their codebase. Enterprise environments often tend to be -far more conservative in their tool adoption - and being aware that other companies are using Catch can ease the -path in. - -So if you are aware of Catch usage in your organisation, and are fairly confident there is no issue with sharing this -fact then please let us know - either directly, via a PR or [issue](https://github.com/philsquared/Catch/issues), or on the [forums](https://groups.google.com/forum/?fromgroups#!forum/catch-forum). - - - Bloomberg diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/configuration.md b/libraries/Lora_Serialization/test/lib/Catch/docs/configuration.md deleted file mode 100644 index 99b7ff2..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/configuration.md +++ /dev/null @@ -1,100 +0,0 @@ -Catch is designed to "just work" as much as possible. For most people the only configuration needed is telling Catch which source file should host all the implementation code (```CATCH_CONFIG_MAIN```). - -Nonetheless there are still some occasions where finer control is needed. For these occasions Catch exposes a set of macros for configuring how it is built. - -# main()/ implementation - - CATCH_CONFIG_MAIN // Designates this as implementation file and defines main() - CATCH_CONFIG_RUNNER // Designates this as implementation file - -Although Catch is header only it still, internally, maintains a distinction between interface headers and headers that contain implementation. Only one source file in your test project should compile the implementation headers and this is controlled through the use of one of these macros - one of these identifiers should be defined before including Catch in *exactly one implementation file in your project*. - -# Prefixing Catch macros - - CATCH_CONFIG_PREFIX_ALL - -To keep test code clean and uncluttered Catch uses short macro names (e.g. ```TEST_CASE``` and ```REQUIRE```). Occasionally these may conflict with identifiers from platform headers or the system under test. In this case the above identifier can be defined. This will cause all the Catch user macros to be prefixed with ```CATCH_``` (e.g. ```CATCH_TEST_CASE``` and ```CATCH_REQUIRE```). - - -# Terminal colour - - CATCH_CONFIG_COLOUR_NONE // completely disables all text colouring - CATCH_CONFIG_COLOUR_WINDOWS // forces the Win32 console API to be used - CATCH_CONFIG_COLOUR_ANSI // forces ANSI colour codes to be used - -Yes, I am English, so I will continue to spell "colour" with a 'u'. - -When sending output to the terminal, if it detects that it can, Catch will use colourised text. On Windows the Win32 API, ```SetConsoleTextAttribute```, is used. On POSIX systems ANSI colour escape codes are inserted into the stream. - -For finer control you can define one of the above identifiers (these are mutually exclusive - but that is not checked so may behave unexpectedly if you mix them): - -Note that when ANSI colour codes are used "unistd.h" must be includable - along with a definition of ```isatty()``` - -Typically you should place the ```#define``` before #including "catch.hpp" in your main source file - but if you prefer you can define it for your whole project by whatever your IDE or build system provides for you to do so. - -# Console width - - CATCH_CONFIG_CONSOLE_WIDTH = x // where x is a number - -Catch formats output intended for the console to fit within a fixed number of characters. This is especially important as indentation is used extensively and uncontrolled line wraps break this. -By default a console width of 80 is assumed but this can be controlled by defining the above identifier to be a different value. - -# stdout - - CATCH_CONFIG_NOSTDOUT - -Catch does not use ```std::cout``` and ```std::cerr``` directly but gets them from ```Catch::cout()``` and ```Catch::cerr()``` respectively. If the above identifier is defined these functions are left unimplemented and you must implement them yourself. Their signatures are: - - std::ostream& cout(); - std::ostream& cerr(); - -This can be useful on certain platforms that do not provide ```std::cout``` and ```std::cerr```, such as certain embedded systems. - -# C++ conformance toggles - - CATCH_CONFIG_CPP11_NULLPTR // nullptr is supported? - CATCH_CONFIG_CPP11_NOEXCEPT // noexcept is supported? - CATCH_CONFIG_CPP11_GENERATED_METHODS // delete and default keywords for methods - CATCH_CONFIG_CPP11_IS_ENUM // std::is_enum is supported? - CATCH_CONFIG_CPP11_TUPLE // std::tuple is supported - CATCH_CONFIG_VARIADIC_MACROS // Usually pre-C++11 compiler extensions are sufficient - CATCH_CONFIG_CPP11_LONG_LONG // generates overloads for the long long type - CATCH_CONFIG_CPP11_OVERRIDE // CATCH_OVERRIDE expands to override (for virtual function implementations) - CATCH_CONFIG_CPP11_UNIQUE_PTR // Use std::unique_ptr instead of std::auto_ptr - CATCH_CONFIG_CPP11_SHUFFLE // Use std::shuffle instead of std::random_shuffle - CATCH_CONFIG_CPP11_TYPE_TRAITS // Use std::enable_if and - -Catch has some basic compiler detection that will attempt to select the appropriate mix of these macros. However being incomplete - and often without access to the respective compilers - this detection tends to be conservative. -So overriding control is given to the user. If a compiler supports a feature (and Catch does not already detect it) then one or more of these may be defined to enable it (or suppress it, in some cases). If you do do this please raise an issue, specifying your compiler version (ideally with an idea of how to detect it) and stating that it has such support. -You may also suppress any of these features by using the `_NO_` form, e.g. `CATCH_CONFIG_CPP11_NO_NULLPTR`. - -All C++11 support can be disabled with `CATCH_CONFIG_NO_CPP11` - -# Other toggles - - CATCH_CONFIG_COUNTER // Use __COUNTER__ to generate unique names for test cases - CATCH_CONFIG_WINDOWS_SEH // Enable SEH handling on Windows - CATCH_CONFIG_FAST_COMPILE // Sacrifices some (extremely minor) features for compilation speed - CATCH_CONFIG_POSIX_SIGNALS // Enable handling POSIX signals - CATCH_CONFIG_WINDOWS_CRTDBG // Enable leak checking using Windows's CRT Debug Heap - -Currently Catch enables `CATCH_CONFIG_WINDOWS_SEH` only when compiled with MSVC, because some versions of MinGW do not have the necessary Win32 API support. - -At this moment, `CATCH_CONFIG_FAST_COMPILE` changes only the behaviour of the `-b` (`--break`) flag, making it break into debugger in a stack frame *below* the actual test, unlike the default behaviour, where the break into debugger occurs in the same stack frame as the actual test. `CATCH_CONFIG_FAST_COMPILE` has to be either defined, or not defined, in all translation units that are linked into single test binary, or the behaviour of setting `-b` flag will be unpredictable. - -`CATCH_CONFIG_POSIX_SIGNALS` is on by default, except when Catch is compiled under `Cygwin`, where it is disabled by default (but can be force-enabled by defining `CATCH_CONFIG_POSIX_SIGNALS`). - -`CATCH_CONFIG_WINDOWS_CRTDBG` is off by default. If enabled, Windows's CRT is used to check for memory leaks, and displays them after the tests finish running. - -Just as with the C++11 conformance toggles, these toggles can be disabled by using `_NO_` form of the toggle, e.g. `CATCH_CONFIG_NO_WINDOWS_SEH`. - -# Windows header clutter - -On Windows Catch includes `windows.h`. To minimize global namespace clutter in the implementation file, it defines `NOMINMAX` and `WIN32_LEAN_AND_MEAN` before including it. You can control this behaviour via two macros: - - CATCH_CONFIG_NO_NOMINMAX // Stops Catch from using NOMINMAX macro - CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN // Stops Catch from using WIN32_LEAN_AND_MEAN macro - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/contributing.md b/libraries/Lora_Serialization/test/lib/Catch/docs/contributing.md deleted file mode 100644 index 28d0643..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/contributing.md +++ /dev/null @@ -1,41 +0,0 @@ -# Contributing to Catch - -So you want to contribute something to Catch? That's great! Whether it's a bug fix, a new feature, support for -additional compilers - or just a fix to the documentation - all contributions are very welcome and very much appreciated. -Of course so are bug reports and other comments and questions. - -If you are contributing to the code base there are a few simple guidelines to keep in mind. This also includes notes to -help you find your way around. As this is liable to drift out of date please raise an issue or, better still, a pull -request for this file, if you notice that. - -## Branches - -Ongoing development is currently on _master_. At some point an integration branch will be set-up and PRs should target - that - but for now it's all against master. You may see feature branches come and go from time to time, too. - -## Directory structure - -_Users_ of Catch primarily use the single header version. _Maintainers_ should work with the full source (which is still, -primarily, in headers). This can be found in the `include` folder. There are a set of test files, currently under -`projects/SelfTest`. The test app can be built via CMake from the `CMakeLists.txt` file in the root, or you can generate -project files for Visual Studio, XCode, and others (instructions in the `projects` folder). If you have access to CLion -that can work with the CMake file directly. - -As well as the runtime test files you'll also see a `SurrogateCpps` directory under `projects/SelfTest`. -This contains a set of .cpp files that each `#include` a single header. -While these files are not essential to compilation they help to keep the implementation headers self-contained. -At time of writing this set is not complete but has reasonable coverage. -If you add additional headers please try to remember to add a surrogate cpp for it. - -The other directories are `scripts` which contains a set of python scripts to help in testing Catch as well as -generating the single include, and `docs`, which contains the documentation as a set of markdown files. - -__When submitting a pull request please do not include changes to the single include, or to the version number file -as these are managed by the scripts!__ - - - *this document is still in-progress...* - ---- - -[Home](Readme.md) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/limitations.md b/libraries/Lora_Serialization/test/lib/Catch/docs/limitations.md deleted file mode 100644 index bee4a29..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/limitations.md +++ /dev/null @@ -1,99 +0,0 @@ -# Known limitations - -Catch has some known limitations, that we are not planning to change. Some of these are caused by our desire to support C++98 compilers, some of these are caused by our desire to keep Catch crossplatform, some exist because their priority is seen as low compared to the development effort they would need and some other yet are compiler/runtime bugs. - -## Features -This section outlines some missing features, what is their status and their possible workarounds. - -### Thread safe assertions -Because threading support in standard C++98 is limited (well, non-existent), assertion macros in Catch are not thread safe. This does not mean that you cannot use threads inside Catch's test, but that only single thread can interact with Catch's assertions and other macros. - -This means that this is ok -```cpp - std::vector threads; - std::atomic cnt{ 0 }; - for (int i = 0; i < 4; ++i) { - threads.emplace_back([&]() { - ++cnt; ++cnt; ++cnt; ++cnt; - }); - } - for (auto& t : threads) { t.join(); } - REQUIRE(cnt == 16); -``` -because only one thread passes the `REQUIRE` macro and this is not -```cpp - std::vector threads; - std::atomic cnt{ 0 }; - for (int i = 0; i < 4; ++i) { - threads.emplace_back([&]() { - ++cnt; ++cnt; ++cnt; ++cnt; - CHECK(cnt == 16); - }); - } - for (auto& t : threads) { t.join(); } - REQUIRE(cnt == 16); -``` - - -_This limitation is highly unlikely to be lifted before Catch 2 is released._ - -### Process isolation in a test -Catch does not support running tests in isolated (forked) processes. While this might in the future, the fact that Windows does not support forking and only allows full-on process creation and the desire to keep code as similar as possible across platforms, mean that this is likely to take significant development time, that is not currently available. - -### Running multiple tests in parallel -Catch's test execution is strictly serial. If you find yourself with a test suite that takes too long to run and you want to make it parallel, there are 2 feasible solutions - * You can split your tests into multiple binaries and then run these binaries in parallel. - * You can have Catch list contained test cases and then run the same test binary multiple times in parallel, passing each instance list of test cases it should run. - -Both of these solutions have their problems, but should let you wring parallelism out of your test suite. - -## 3rd party bugs -This section outlines known bugs in 3rd party components (this means compilers, standard libraries, standard runtimes). - -### Visual Studio 2013 -- do-while loop withing range based for fails to compile (C2059) -There is a known bug in Visual Studio 2013 (VC 12), that causes compilation error if range based for is followed by an assertion macro, without enclosing the block in braces. This snippet is sufficient to trigger the error -```cpp -#define CATCH_CONFIG_MAIN -#include "catch.hpp" - -TEST_CASE("Syntax error with VC12") { - for ( auto x : { 1 , 2, 3 } ) - REQUIRE( x < 3.14 ); -} -``` -An easy workaround is possible, use braces: -```cpp -#define CATCH_CONFIG_MAIN -#include "catch.hpp" - -TEST_CASE("No longer a syntax error with VC12") { - for ( auto x : { 1 , 2, 3 } ) { - REQUIRE( x < 3.14 ); - } -} -``` - -### Visual Studio 2003 -- Syntax error caused by improperly expanded `__LINE__` macro -Older version of Visual Studio can have trouble compiling Catch, not expanding the `__LINE__` macro properly when recompiling the test binary. This is caused by Edit and Continue being on. - -A workaround is to turn off Edit and Continue when compiling the test binary. - -### Clang/G++ -- skipping leaf sections after an exception -Some versions of `libc++` and `libstdc++` (or their runtimes) have a bug with `std::uncaught_exception()` getting stuck returning `true` after rethrow, even if there are no active exceptions. One such case is this snippet, which skipped the sections "a" and "b", when compiled against `libcxxrt` from master -```cpp -#define CATCH_CONFIG_MAIN -#include - -TEST_CASE("a") { - CHECK_THROWS(throw 3); -} - -TEST_CASE("b") { - int i = 0; - SECTION("a") { i = 1; } - SECTION("b") { i = 2; } - CHECK(i > 0); -} -``` - -If you are seeing a problem like this, i.e. a weird test paths that trigger only under Clang with `libc++`, or only under very specific version of `libstdc++`, it is very likely you are seeing this. The only known workaround is to use a fixed version of your standard library. diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/logging.md b/libraries/Lora_Serialization/test/lib/Catch/docs/logging.md deleted file mode 100644 index a659b3e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/logging.md +++ /dev/null @@ -1,52 +0,0 @@ -# Logging macros - -Additional messages can be logged during a test case. - -## Streaming macros - -All these macros allow heterogenous sequences of values to be streaming using the insertion operator (```<<```) in the same way that std::ostream, std::cout, etc support it. - -E.g.: -```c++ -INFO( "The number is " << i ); -``` - -(Note that there is no initial ```<<``` - instead the insertion sequence is placed in parentheses.) -These macros come in three forms: - -**INFO(** _message expression_ **)** - -The message is logged to a buffer, but only reported with the next assertion that is logged. This allows you to log contextual information in case of failures which is not shown during a successful test run (for the console reporter, without -s). Messages are removed from the buffer at the end of their scope, so may be used, for example, in loops. - -**WARN(** _message expression_ **)** - -The message is always reported but does not fail the test. - -**FAIL(** _message expression_ **)** - -The message is reported and the test case fails. - -## Quickly capture a variable value - -**CAPTURE(** _expression_ **)** - -Sometimes you just want to log the name and value of a variable. While you can easily do this with the INFO macro, above, as a convenience the CAPTURE macro handles the stringising of the variable name for you (actually it works with any expression, not just variables). - -E.g. -```c++ -CAPTURE( theAnswer ); -``` - -This would log something like: - -
"theAnswer := 42"
- -## Deprecated macros - -**SCOPED_INFO and SCOPED_CAPTURE** - -These macros are now deprecated and are just aliases for INFO and CAPTURE (which were not previously scoped). - ---- - -[Home](Readme.md) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/matchers.md b/libraries/Lora_Serialization/test/lib/Catch/docs/matchers.md deleted file mode 100644 index 93f6a27..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/matchers.md +++ /dev/null @@ -1,103 +0,0 @@ -# Matchers - -Matchers are an alternative way to do assertions which are easily extensible and composable. -This makes them well suited to use with more complex types (such as collections) or your own custom types. -Matchers were first popularised by the [Hamcrest](https://en.wikipedia.org/wiki/Hamcrest) family of frameworks. - -## In use - -Matchers are introduced with the `REQUIRE_THAT` or `CHECK_THAT` macros, which take two arguments. -The first argument is the thing (object or value) under test. The second part is a match _expression_, -which consists of either a single matcher or one or more matchers combined using `&&`, `||` or `!` operators. - -For example, to assert that a string ends with a certain substring: - - ```c++ -std::string str = getStringFromSomewhere(); -REQUIRE_THAT( str, EndsWith( "as a service" ) ); - ``` - -The matcher objects can take multiple arguments, allowing more fine tuning. -The built-in string matchers, for example, take a second argument specifying whether the comparison is -case sensitive or not: - -```c++ -REQUIRE_THAT( str, EndsWith( "as a service", Catch::CaseSensitive::No ) ); - ``` - -And matchers can be combined: - -```c++ -REQUIRE_THAT( str, - EndsWith( "as a service" ) || - (StartsWith( "Big data" ) && !Contains( "web scale" ) ) ); -``` - -## Built in matchers -Currently Catch has some string matchers and some vector matchers. -The string matchers are `StartsWith`, `EndsWith`, `Contains` and `Equals`. Each of them also takes an optional second argument, that decides case sensitivity (by-default, they are case sensitive). -The vector matchers are `Contains`, `VectorContains` and `Equals`. `VectorContains` looks for a single element in the matched vector, `Contains` looks for a set (vector) of elements inside the matched vector. - - -## Custom matchers -It's easy to provide your own matchers to extend Catch or just to work with your own types. - -You need to provide two things: -1. A matcher class, derived from `Catch::MatcherBase` - where `T` is the type being tested. -The constructor takes and stores any arguments needed (e.g. something to compare against) and you must -override two methods: `match()` and `describe()`. -2. A simple builder function. This is what is actually called from the test code and allows overloading. - -Here's an example for asserting that an integer falls within a given range -(note that it is all inline for the sake of keeping the example short): - -```c++ -// The matcher class -class IntRange : public Catch::MatcherBase { - int m_begin, m_end; -public: - IntRange( int begin, int end ) : m_begin( begin ), m_end( end ) {} - - // Performs the test for this matcher - virtual bool match( int const& i ) const override { - return i >= m_begin && i <= m_end; - } - - // Produces a string describing what this matcher does. It should - // include any provided data (the begin/ end in this case) and - // be written as if it were stating a fact (in the output it will be - // preceded by the value under test). - virtual std::string describe() const { - std::ostringstream ss; - ss << "is between " << m_begin << " and " << m_end; - return ss.str(); - } -}; - -// The builder function -inline IntRange IsBetween( int begin, int end ) { - return IntRange( begin, end ); -} - -// ... - -// Usage -TEST_CASE("Integers are within a range") -{ - CHECK_THAT( 3, IsBetween( 1, 10 ) ); - CHECK_THAT( 100, IsBetween( 1, 10 ) ); -} -``` - -Running this test gives the following in the console: - -``` -/**/TestFile.cpp:123: FAILED: - CHECK_THAT( 100, IsBetween( 1, 10 ) ) -with expansion: - 100 is between 1 and 10 -``` - ---- - -[Home](Readme.md) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/opensource-users.md b/libraries/Lora_Serialization/test/lib/Catch/docs/opensource-users.md deleted file mode 100644 index b0a89eb..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/opensource-users.md +++ /dev/null @@ -1,59 +0,0 @@ -# Open Source projects using Catch - -Catch is great for open source. With it's [liberal license](../LICENSE_1_0.txt) and single-header, dependency-free, distribution -it's easy to just drop the header into your project and start writing tests - what's not to like? - -As a result Catch is now being used in many Open Source projects, including some quite well known ones. -This page is an attempt to track those projects. Obviously it can never be complete. -This effort largely relies on the maintainers of the projects themselves updating this page and submitting a PR -(or, if you prefer contact one of the maintainers of Catch directly, use the -[forums](https://groups.google.com/forum/?fromgroups#!forum/catch-forum)), or raise an [issue](https://github.com/philsquared/Catch/issues) to let us know). -Of course users of those projects might want to update this page too. That's fine - as long you're confident the project maintainers won't mind. -If you're an Open Source project maintainer and see your project listed here but would rather it wasn't - -just let us know via any of the previously mentioned means - although I'm sure there won't be many who feel that way. - -Listing a project here does not imply endorsement and the plan is to keep these ordered alphabetically to avoid an implication of relative importance. - -## Libraries & Frameworks - -### [Azmq](https://github.com/zeromq/azmq) -Boost Asio style bindings for ZeroMQ - -### [ChakraCore](https://github.com/Microsoft/ChakraCore) -The core part of the Chakra Javascript engine that powers Microsoft Edge - -### [ChaiScript](https://github.com/ChaiScript/ChaiScript) -A, header-only, embedded scripting language designed from the ground up to directly target C++ and take advantage of modern C++ development techniques - -### [Couchbase-lite-core](https://github.com/couchbase/couchbase-lite-core) -The next-generation core storage and query engine for Couchbase Lite/ - -### [JSON for Modern C++](https://github.com/nlohmann/json) -A, single-header, JSON parsing library that takes advantage of what C++ has to offer. - -### [MNMLSTC Core](https://github.com/mnmlstc/core) -a small and easy to use C++11 library that adds a functionality set that will be available in C++14 and later, as well as some useful additions - -### [SOCI](https://github.com/SOCI/soci) -The C++ Database Access Library - -### [Ppconsul](https://github.com/oliora/ppconsul) -A C++ client library for Consul. Consul is a distributed tool for discovering and configuring services in your infrastructure - -### [Reactive-Extensions/ RxCpp](https://github.com/Reactive-Extensions/RxCpp) -A library of algorithms for values-distributed-in-time - -### [Trompeloeil](https://github.com/rollbear/trompeloeil) -A thread safe header only mocking framework for C++14 - -## Applications & Tools - -### [MAME](https://github.com/mamedev/mame) -MAME originally stood for Multiple Arcade Machine Emulator - -### [Standardese](https://github.com/foonathan/standardese) -Standardese aims to be a nextgen Doxygen - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/own-main.md b/libraries/Lora_Serialization/test/lib/Catch/docs/own-main.md deleted file mode 100644 index 67e551f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/own-main.md +++ /dev/null @@ -1,72 +0,0 @@ -# Supplying main() yourself - -The easiest way to use Catch is to let it supply ```main()``` for you and handle configuring itself from the command line. - -This is achieved by writing ```#define CATCH_CONFIG_MAIN``` before the ```#include "catch.hpp"``` in *exactly one* source file. - -Sometimes, though, you need to write your own version of main(). You can do this by writing ```#define CATCH_CONFIG_RUNNER``` instead. Now you are free to write ```main()``` as normal and call into Catch yourself manually. - -You now have a lot of flexibility - but here are three recipes to get your started: - -## Let Catch take full control of args and config - -If you just need to have code that executes before and/ or after Catch this is the simplest option. - -```c++ -#define CATCH_CONFIG_RUNNER -#include "catch.hpp" - -int main( int argc, char* argv[] ) -{ - // global setup... - - int result = Catch::Session().run( argc, argv ); - - // global clean-up... - - return ( result < 0xff ? result : 0xff ); -} -``` - -## Amending the config - -If you still want Catch to process the command line, but you want to programatically tweak the config, you can do so in one of two ways: - -```c++ -#define CATCH_CONFIG_RUNNER -#include "catch.hpp" - -int main( int argc, char* argv[] ) -{ - Catch::Session session; // There must be exactly one instance - - // writing to session.configData() here sets defaults - // this is the preferred way to set them - - int returnCode = session.applyCommandLine( argc, argv ); - if( returnCode != 0 ) // Indicates a command line error - return returnCode; - - // writing to session.configData() or session.Config() here - // overrides command line args - // only do this if you know you need to - - int numFailed = session.run(); - // Note that on unices only the lower 8 bits are usually used, clamping - // the return value to 255 prevents false negative when some multiple - // of 256 tests has failed - return ( numFailed < 0xff ? numFailed : 0xff ); -} -``` - -Take a look at the definitions of Config and ConfigData to see what you can do with them. - -To take full control of the config simply omit the call to ```applyCommandLine()```. - -## Adding your own command line options - -Catch embeds a powerful command line parser which you can also use to parse your own options out. This capability is still in active development but will be documented here when it is ready. - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/release-notes.md b/libraries/Lora_Serialization/test/lib/Catch/docs/release-notes.md deleted file mode 100644 index 3820111..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/release-notes.md +++ /dev/null @@ -1,150 +0,0 @@ -# 1.8.1 - -### Fixes - -Cygwin issue with `gettimeofday` - `#define` was not early enough - -# 1.8.0 - -### New features/ minor changes - -* Matchers have new, simpler (and documented) interface. - * Catch provides string and vector matchers. - * For details see [Matchers documentation](matchers.md). -* Changed console reporter test duration reporting format (#322) - * Old format: `Some simple comparisons between doubles completed in 0.000123s` - * New format: `xxx.123s: Some simple comparisons between doubles` _(There will always be exactly 3 decimal places)_ -* Added opt-in leak detection under MSVC + Windows (#439) - * Enable it by compiling Catch's main with `CATCH_CONFIG_WINDOWS_CRTDBG` -* Introduced new compile-time flag, `CATCH_CONFIG_FAST_COMPILE`, trading features for compilation speed. - * Moves debug breaks out of tests and into implementation, speeding up compilation time - * _More changes are coming_ -* Added [TAP (Test Anything Protocol)](https://testanything.org/) and [Automake](https://www.gnu.org/software/automake/manual/html_node/Log-files-generation-and-test-results-recording.html#Log-files-generation-and-test-results-recording) reporters. - * These are not present in the default single-include header and need to be downloaded from GitHub separately. - * For details see [documentation about integrating with build systems](build-systems.md). -* XML reporter now reports filename as part of the `Section` and `TestCase` tags. -* `Approx` now supports an optional margin of absolute error - * It has also received [new documentation](). - -### Fixes -* Silenced C4312 ("conversion from int to 'ClassName *") warnings in the evaluate layer. -* Fixed C4512 ("assignment operator could not be generated") warnings under VS2013. -* Cygwin compatibility fixes - * Signal handling is no longer compiled by default. - * Usage of `gettimeofday` inside Catch should no longer cause compilation errors. -* Improved `-Wparentheses` supression for gcc (#674) - * When compiled with gcc 4.8 or newer, the supression is localized to assertions only - * Otherwise it is supressed for the whole TU -* Fixed test spec parser issue (with escapes in multiple names) - -### Other -* Various documentation fixes and improvements - - -# 1.7.2 - -### Fixes and minor improvements -Xml: - -(technically the first two are breaking changes but are also fixes and arguably break few if any people) -* C-escape control characters instead of XML encoding them (which requires XML 1.1) -* Revert XML output to XML 1.0 -* Can provide stylesheet references by extending the XML reporter -* Added description and tags attribites to XML Reporter -* Tags are closed and the stream flushed more eagerly to avoid stdout interpolation - - -Other: -* `REQUIRE_THROWS_AS` now catches exception by `const&` and reports expected type -* In `SECTION`s the file/ line is now of the `SECTION`. not the `TEST_CASE` -* Added std:: qualification to some functions from C stdlib -* Removed use of RTTI (`dynamic_cast`) that had crept back in -* Silenced a few more warnings in different circumstances -* Travis improvements - -# 1.7.1 - -### Fixes: -* Fixed inconsistency in defining `NOMINMAX` and `WIN32_LEAN_AND_MEAN` inside `catch.hpp`. -* Fixed SEH-related compilation error under older MinGW compilers, by making Windows SEH handling opt-in for compilers other than MSVC. - * For specifics, look into the [documentation](docs/configuration.md). -* Fixed compilation error under MinGW caused by improper compiler detection. -* Fixed XML reporter sometimes leaving an empty output file when a test ends with signal/structured exception. -* Fixed XML reporter not reporting captured stdout/stderr. -* Fixed possible infinite recursion in Windows SEH. -* Fixed possible compilation error caused by Catch's operator overloads being ambiguous in regards to user-defined templated operators. - -## 1.7.0 - -### Features/ Changes: -* Catch now runs significantly faster for passing tests - * Microbenchmark focused on Catch's overhead went from ~3.4s to ~0.7s. - * Real world test using [JSON for Modern C++](https://github.com/nlohmann/json)'s test suite went from ~6m 25s to ~4m 14s. -* Catch can now run specific sections within test cases. - * For now the support is only basic (no wildcards or tags), for details see the [documentation](docs/command-line.md). -* Catch now supports SEH on Windows as well as signals on Linux. - * After receiving a signal, Catch reports failing assertion and then passes the signal onto the previous handler. -* Approx can be used to compare values against strong typedefs (available in C++11 mode only). - * Strong typedefs mean types that are explicitly convertible to double. -* CHECK macro no longer stops executing section if an exception happens. -* Certain characters (space, tab, etc) are now pretty printed. - * This means that a `char c = ' '; REQUIRE(c == '\t');` would be printed as `' ' == '\t'`, instead of ` == 9`. - -### Fixes: -* Text formatting no longer attempts to access out-of-bounds characters under certain conditions. -* THROW family of assertions no longer trigger `-Wunused-value` on expressions containing explicit cast. -* Breaking into debugger under OS X works again and no longer required `DEBUG` to be defined. -* Compilation no longer breaks under certain compiler if a lambda is used inside assertion macro. - -### Other: -* Catch's CMakeLists now defines install command. -* Catch's CMakeLists now generates projects with warnings enabled. - - -## 1.6.1 - -### Features/ Changes: -* Catch now supports breaking into debugger on Linux - -### Fixes: -* Generators no longer leak memory (generators are still unsupported in general) -* JUnit reporter now reports UTC timestamps, instead of "tbd" -* `CHECK_THAT` macro is now properly defined as `CATCH_CHECK_THAT` when using `CATCH_` prefixed macros - -### Other: -* Types with overloaded `&&` operator are no longer evaluated twice when used in an assertion macro. -* The use of `__COUNTER__` is supressed when Catch is parsed by CLion - * This change is not active when compiling a binary -* Approval tests can now be run on Windows -* CMake will now warn if a file is present in the `include` folder but not is not enumerated as part of the project -* Catch now defines `NOMINMAX` and `WIN32_LEAN_AND_MEAN` before including `windows.h` - * This can be disabled if needed, see [documentation](docs/configuration.md) for details. - - -## 1.6.0 - -### Cmake/ projects: -* Moved CMakeLists.txt to root, made it friendlier for CLion and generating XCode and VS projects, and removed the manually maintained XCode and VS projects. - -### Features/ Changes: -* Approx now supports `>=` and `<=` -* Can now use `\` to escape chars in test names on command line -* Standardize C++11 feature toggles - -### Fixes: -* Blue shell colour -* Missing argument to `CATCH_CHECK_THROWS` -* Don't encode extended ASCII in XML -* use `std::shuffle` on more compilers (fixes deprecation warning/error) -* Use `__COUNTER__` more consistently (where available) - -### Other: -* Tweaks and changes to scripts - particularly for Approval test - to make them more portable - - -# Older versions -Release notes were not maintained prior to v1.6.0, but you should be able to work them out from the Git history - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/slow-compiles.md b/libraries/Lora_Serialization/test/lib/Catch/docs/slow-compiles.md deleted file mode 100644 index a12d086..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/slow-compiles.md +++ /dev/null @@ -1,64 +0,0 @@ -# Why do my tests take so long to compile? - -Several people have reported that test code written with Catch takes much longer to compile than they would expect. Why is that? - -Catch is implemented entirely in headers. There is a little overhead due to this - but not as much as you might think - and you can minimise it simply by organising your test code as follows: - -## Short answer -Exactly one source file must ```#define``` either ```CATCH_CONFIG_MAIN``` or ```CATCH_CONFIG_RUNNER``` before ```#include```-ing Catch. In this file *do not write any test cases*! In most cases that means this file will just contain two lines (the ```#define``` and the ```#include```). - -## Long answer - -Usually C++ code is split between a header file, containing declarations and prototypes, and an implementation file (.cpp) containing the definition, or implementation, code. Each implementation file, along with all the headers that it includes (and which those headers include, etc), is expanded into a single entity called a translation unit - which is then passed to the compiler and compiled down to an object file. - -But functions and methods can also be written inline in header files. The downside to this is that these definitions will then be compiled in *every* translation unit that includes the header. - -Because Catch is implemented *entirely* in headers you might think that the whole of Catch must be compiled into every translation unit that uses it! Actually it's not quite as bad as that. Catch mitigates this situation by effectively maintaining the traditional separation between the implementation code and declarations. Internally the implementation code is protected by ```#ifdef```s and is conditionally compiled into only one translation unit. This translation unit is that one that ```#define```s ```CATCH_CONFIG_MAIN``` or ```CATCH_CONFIG_RUNNER```. Let's call this the main source file. - -As a result the main source file *does* compile the whole of Catch every time! So it makes sense to dedicate this file to *only* ```#define```-ing the identifier and ```#include```-ing Catch (and implementing the runner code, if you're doing that). Keep all your test cases in other files. This way you won't pay the recompilation cost for the whole of Catch - -## Practical example -Assume you have the `Factorial` function from the [tutorial](tutorial.md) in `factorial.cpp` (with forward declaration in `factorial.h`) and want to test it and keep the compile times down when adding new tests. Then you should have 2 files, `tests-main.cpp` and `tests-factorial.cpp`: - -```cpp -// tests-main.cpp -#define CATCH_CONFIG_MAIN -#include "catch.hpp" -``` - -```cpp -// tests-factorial.cpp -#include "catch.hpp" - -#include "factorial.h" - -TEST_CASE( "Factorials are computed", "[factorial]" ) { - REQUIRE( Factorial(1) == 1 ); - REQUIRE( Factorial(2) == 2 ); - REQUIRE( Factorial(3) == 6 ); - REQUIRE( Factorial(10) == 3628800 ); -} -``` - -After compiling `tests-main.cpp` once, it is enough to link it with separately compiled `tests-factorial.cpp`. This means that adding more tests to `tests-factorial.cpp`, will not result in recompiling Catch's main and the resulting compilation times will decrease substantially. - -``` -$ g++ tests-main.cpp -c -$ g++ tests-main.o tests-factorial.cpp -o tests && ./tests -r compact -Passed 1 test case with 4 assertions. -``` - -Now, the next time we change the file `tests-factorial.cpp` (say we add `REQUIRE( Factorial(0) == 1)`), it is enough to recompile the tests instead of recompiling main as well: - -``` -$ g++ tests-main.o tests-factorial.cpp -o tests && ./tests -r compact -tests-factorial.cpp:11: failed: Factorial(0) == 1 for: 0 == 1 -Failed 1 test case, failed 1 assertion. -``` - -## Other possible solutions -You can also opt to sacrifice some features in order to speed-up Catch's compilation times. For details see the [documentation on Catch's compile-time configuration](configuration.md#other-toggles). - ---- - -[Home](Readme.md) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/test-cases-and-sections.md b/libraries/Lora_Serialization/test/lib/Catch/docs/test-cases-and-sections.md deleted file mode 100644 index 809935b..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/test-cases-and-sections.md +++ /dev/null @@ -1,88 +0,0 @@ -# Test cases and sections - -While Catch fully supports the traditional, xUnit, style of class-based fixtures containing test case methods this is not the preferred style. - -Instead Catch provides a powerful mechanism for nesting test case sections within a test case. For a more detailed discussion see the [tutorial](tutorial.md#test-cases-and-sections). - -Test cases and sections are very easy to use in practice: - -* **TEST_CASE(** _test name_ \[, _tags_ \] **)** -* **SECTION(** _section name_ **)** - -_test name_ and _section name_ are free form, quoted, strings. The optional _tags_ argument is a quoted string containing one or more tags enclosed in square brackets. Tags are discussed below. Test names must be unique within the Catch executable. - -For examples see the [Tutorial](tutorial.md) - -## Tags - -Tags allow an arbitrary number of additional strings to be associated with a test case. Test cases can be selected (for running, or just for listing) by tag - or even by an expression that combines several tags. At their most basic level they provide a simple way to group several related tests together. - -As an example - given the following test cases: - - TEST_CASE( "A", "[widget]" ) { /* ... */ } - TEST_CASE( "B", "[widget]" ) { /* ... */ } - TEST_CASE( "C", "[gadget]" ) { /* ... */ } - TEST_CASE( "D", "[widget][gadget]" ) { /* ... */ } - -The tag expression, ```"[widget]"``` selects A, B & D. ```"[gadget]"``` selects C & D. ```"[widget][gadget]"``` selects just D and ```"[widget],[gadget]"``` selects all four test cases. - -For more detail on command line selection see [the command line docs](command-line.md#specifying-which-tests-to-run) - -Tag names are not case sensitive. - -### Special Tags - -All tag names beginning with non-alphanumeric characters are reserved by Catch. Catch defines a number of "special" tags, which have meaning to the test runner itself. These special tags all begin with a symbol character. Following is a list of currently defined special tags and their meanings. - -* `[!hide]` or `[.]` (or, for legacy reasons, `[hide]`) - causes test cases to be skipped from the default list (i.e. when no test cases have been explicitly selected through tag expressions or name wildcards). The hide tag is often combined with another, user, tag (for example `[.][integration]` - so all integration tests are excluded from the default run but can be run by passing `[integration]` on the command line). As a short-cut you can combine these by simply prefixing your user tag with a `.` - e.g. `[.integration]`. Because the hide tag has evolved to have several forms, all forms are added as tags if you use one of them. - -* `[!throws]` - lets Catch know that this test is likely to throw an exception even if successful. This causes the test to be excluded when running with `-e` or `--nothrow`. - -* `[!shouldfail]` - reverse the failing logic of the test: if the test is successful if it fails, and vice-versa. - -* `[!mayfail]` - doesn't fail the test if any given assertion fails (but still reports it). This can be useful to flag a work-in-progress, or a known issue that you don't want to immediately fix but still want to track in the your tests. - -* `[!nonportable]` - Indicates that behaviour may vary between platforms or compilers. - -* `[#]` - running with `-#` or `--filenames-as-tags` causes Catch to add the filename, prefixed with `#` (and with any extension stripped) as a tag. e.g. tests in testfile.cpp would all be tagged `[#testfile]`. - -* `[@]` - tag aliases all begin with `@` (see below). - -## Tag aliases - -Between tag expressions and wildcarded test names (as well as combinations of the two) quite complex patterns can be constructed to direct which test cases are run. If a complex pattern is used often it is convenient to be able to create an alias for the expression. this can be done, in code, using the following form: - - CATCH_REGISTER_TAG_ALIAS( , ) - -Aliases must begin with the `@` character. An example of a tag alias is: - - CATCH_REGISTER_TAG_ALIAS( "[@nhf]", "[failing]~[.]" ) - -Now when `[@nhf]` is used on the command line this matches all tests that are tagged `[failing]`, but which are not also hidden. - -## BDD-style test cases - -In addition to Catch's take on the classic style of test cases, Catch supports an alternative syntax that allow tests to be written as "executable specifications" (one of the early goals of [Behaviour Driven Development](http://dannorth.net/introducing-bdd/)). This set of macros map on to ```TEST_CASE```s and ```SECTION```s, with a little internal support to make them smoother to work with. - -* **SCENARIO(** _scenario name_ \[, _tags_ \] **)** - -This macro maps onto ```TEST_CASE``` and works in the same way, except that the test case name will be prefixed by "Scenario: " - -* **GIVEN(** _something_ **)** -* **WHEN(** _something_ **)** -* **THEN(** _something_ **)** - -These macros map onto ```SECTION```s except that the section names are the _something_s prefixed by "given: ", "when: " or "then: " respectively. - -* **AND_WHEN(** _something_ **)** -* **AND_THEN(** _something_ **)** - -Similar to ```WHEN``` and ```THEN``` except that the prefixes start with "and ". These are used to chain ```WHEN```s and ```THEN```s together. - -When any of these macros are used the console reporter recognises them and formats the test case header such that the Givens, Whens and Thens are aligned to aid readability. - -Other than the additional prefixes and the formatting in the console reporter these macros behave exactly as ```TEST_CASE```s and ```SECTION```s. As such there is nothing enforcing the correct sequencing of these macros - that's up to the programmer! - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/test-fixtures.md b/libraries/Lora_Serialization/test/lib/Catch/docs/test-fixtures.md deleted file mode 100644 index fc546b3..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/test-fixtures.md +++ /dev/null @@ -1,32 +0,0 @@ -Although Catch allows you to group tests together as sections within a test case, it can still be convenient, sometimes, to group them using a more traditional test fixture. Catch fully supports this too. You define the test fixture as a simple structure: - -```c++ -class UniqueTestsFixture { - private: - static int uniqueID; - protected: - DBConnection conn; - public: - UniqueTestsFixture() : conn(DBConnection::createConnection("myDB")) { - } - protected: - int getID() { - return ++uniqueID; - } - }; - - int UniqueTestsFixture::uniqueID = 0; - - TEST_CASE_METHOD(UniqueTestsFixture, "Create Employee/No Name", "[create]") { - REQUIRE_THROWS(conn.executeSQL("INSERT INTO employee (id, name) VALUES (?, ?)", getID(), "")); - } - TEST_CASE_METHOD(UniqueTestsFixture, "Create Employee/Normal", "[create]") { - REQUIRE(conn.executeSQL("INSERT INTO employee (id, name) VALUES (?, ?)", getID(), "Joe Bloggs")); - } -``` - -The two test cases here will create uniquely-named derived classes of UniqueTestsFixture and thus can access the `getID()` protected method and `conn` member variables. This ensures that both the test cases are able to create a DBConnection using the same method (DRY principle) and that any ID's created are unique such that the order that tests are executed does not matter. - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/tostring.md b/libraries/Lora_Serialization/test/lib/Catch/docs/tostring.md deleted file mode 100644 index dbb6cb8..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/tostring.md +++ /dev/null @@ -1,70 +0,0 @@ -# String conversions - -Catch needs to be able to convert types you use in assertions and logging expressions into strings (for logging and reporting purposes). -Most built-in or std types are supported out of the box but there are three ways that you can tell Catch how to convert your own types (or other, third-party types) into strings. - -## operator << overload for std::ostream - -This is the standard way of providing string conversions in C++ - and the chances are you may already provide this for your own purposes. If you're not familiar with this idiom it involves writing a free function of the form: - -``` -std::ostream& operator << ( std::ostream& os, T const& value ) { - os << convertMyTypeToString( value ); - return os; -} -``` - -(where ```T``` is your type and ```convertMyTypeToString``` is where you'll write whatever code is necessary to make your type printable - it doesn't have to be in another function). - -You should put this function in the same namespace as your type. - -Alternatively you may prefer to write it as a member function: - -``` -std::ostream& T::operator << ( std::ostream& os ) const { - os << convertMyTypeToString( *this ); - return os; -} -``` - -## Catch::toString overload - -If you don't want to provide an ```operator <<``` overload, or you want to convert your type differently for testing purposes, you can provide an overload for ```Catch::toString()``` for your type. - -``` -namespace Catch { - std::string toString( T const& value ) { - return convertMyTypeToString( value ); - } -} -``` - -Again ```T``` is your type and ```convertMyTypeToString``` is where you'll write whatever code is necessary to make your type printable. Note that the function must be in the Catch namespace, which itself must be in the global namespace. - -## Catch::StringMaker specialisation - -There are some cases where overloading toString does not work as expected. Specialising StringMaker gives you more precise, and reliable, control - but at the cost of slightly more code and complexity: - -``` -namespace Catch { - template<> struct StringMaker { - static std::string convert( T const& value ) { - return convertMyTypeToString( value ); - } - }; -} -``` - -## Exceptions - -By default all exceptions deriving from `std::exception` will be translated to strings by calling the `what()` method. For exception types that do not derive from `std::exception` - or if `what()` does not return a suitable string - use `CATCH_TRANSLATE_EXCEPTION`. This defines a function that takes your exception type, by reference, and returns a string. It can appear anywhere in the code - it doesn't have to be in the same translation unit. For example: - -``` -CATCH_TRANSLATE_EXCEPTION( MyType& ex ) { - return ex.message(); -} -``` - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/tutorial.md b/libraries/Lora_Serialization/test/lib/Catch/docs/tutorial.md deleted file mode 100644 index 7392459..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/tutorial.md +++ /dev/null @@ -1,249 +0,0 @@ -# Getting Catch - -The simplest way to get Catch is to download the latest [single header version](https://raw.githubusercontent.com/philsquared/Catch/master/single_include/catch.hpp). The single header is generated by merging a set of individual headers but it is still just normal source code in a header file. - -The full source for Catch, including test projects, documentation, and other things, is hosted on GitHub. [http://catch-lib.net](http://catch-lib.net) will redirect you there. - - -## Where to put it? - -Catch is header only. All you need to do is drop the file(s) somewhere reachable from your project - either in some central location you can set your header search path to find, or directly into your project tree itself! This is a particularly good option for other Open-Source projects that want to use Catch for their test suite. See [this blog entry for more on that](http://www.levelofindirection.com/journal/2011/5/27/unit-testing-in-c-and-objective-c-just-got-ridiculously-easi.html). - -The rest of this tutorial will assume that the Catch single-include header (or the include folder) is available unqualified - but you may need to prefix it with a folder name if necessary. - -# Writing tests - -Let's start with a really simple example. Say you have written a function to calculate factorials and now you want to test it (let's leave aside TDD for now). - -```c++ -unsigned int Factorial( unsigned int number ) { - return number <= 1 ? number : Factorial(number-1)*number; -} -``` - -To keep things simple we'll put everything in a single file (see later for more on how to structure your test files) - -```c++ -#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file -#include "catch.hpp" - -unsigned int Factorial( unsigned int number ) { - return number <= 1 ? number : Factorial(number-1)*number; -} - -TEST_CASE( "Factorials are computed", "[factorial]" ) { - REQUIRE( Factorial(1) == 1 ); - REQUIRE( Factorial(2) == 2 ); - REQUIRE( Factorial(3) == 6 ); - REQUIRE( Factorial(10) == 3628800 ); -} -``` - -This will compile to a complete executable which responds to [command line arguments](command-line.md). If you just run it with no arguments it will execute all test cases (in this case there is just one), report any failures, report a summary of how many tests passed and failed and return the number of failed tests (useful for if you just want a yes/ no answer to: "did it work"). - -If you run this as written it will pass. Everything is good. Right? -Well, there is still a bug here. In fact the first version of this tutorial I posted here genuinely had the bug in! So it's not completely contrived (thanks to Daryle Walker (```@CTMacUser```) for pointing this out). - -What is the bug? Well what is the factorial of zero? -[The factorial of zero is one](http://mathforum.org/library/drmath/view/57128.html) - which is just one of those things you have to know (and remember!). - -Let's add that to the test case: - -```c++ -TEST_CASE( "Factorials are computed", "[factorial]" ) { - REQUIRE( Factorial(0) == 1 ); - REQUIRE( Factorial(1) == 1 ); - REQUIRE( Factorial(2) == 2 ); - REQUIRE( Factorial(3) == 6 ); - REQUIRE( Factorial(10) == 3628800 ); -} -``` - -Now we get a failure - something like: - -``` -Example.cpp:9: FAILED: - REQUIRE( Factorial(0) == 1 ) -with expansion: - 0 == 1 -``` - -Note that we get the actual return value of Factorial(0) printed for us (0) - even though we used a natural expression with the == operator. That let's us immediately see what the problem is. - -Let's change the factorial function to: - -```c++ -unsigned int Factorial( unsigned int number ) { - return number > 1 ? Factorial(number-1)*number : 1; -} -``` - -Now all the tests pass. - -Of course there are still more issues to do deal with. For example we'll hit problems when the return value starts to exceed the range of an unsigned int. With factorials that can happen quite quickly. You might want to add tests for such cases and decide how to handle them. We'll stop short of doing that here. - -## What did we do here? - -Although this was a simple test it's been enough to demonstrate a few things about how Catch is used. Let's take moment to consider those before we move on. - -1. All we did was ```#define``` one identifier and ```#include``` one header and we got everything - even an implementation of ```main()``` that will [respond to command line arguments](command-line.md). You can only use that ```#define``` in one implementation file, for (hopefully) obvious reasons. Once you have more than one file with unit tests in you'll just ```#include "catch.hpp"``` and go. Usually it's a good idea to have a dedicated implementation file that just has ```#define CATCH_CONFIG_MAIN``` and ```#include "catch.hpp"```. You can also provide your own implementation of main and drive Catch yourself (see [Supplying-your-own-main()](own-main.md)). -2. We introduce test cases with the ```TEST_CASE``` macro. This macro takes one or two arguments - a free form test name and, optionally, one or more tags (for more see Test cases and Sections, ). The test name must be unique. You can run sets of tests by specifying a wildcarded test name or a tag expression. See the [command line docs](command-line.md) for more information on running tests. -3. The name and tags arguments are just strings. We haven't had to declare a function or method - or explicitly register the test case anywhere. Behind the scenes a function with a generated name is defined for you, and automatically registered using static registry classes. By abstracting the function name away we can name our tests without the constraints of identifier names. -4. We write our individual test assertions using the ```REQUIRE``` macro. Rather than a separate macro for each type of condition we express the condition naturally using C/C++ syntax. Behind the scenes a simple set of expression templates captures the left-hand-side and right-hand-side of the expression so we can display the values in our test report. As we'll see later there _are_ other assertion macros - but because of this technique the number of them is drastically reduced. - - -## Test cases and sections - -Most test frameworks have a class-based fixture mechanism. That is, test cases map to methods on a class and common setup and teardown can be performed in ```setup()``` and ```teardown()``` methods (or constructor/ destructor in languages, like C++, that support deterministic destruction). - -While Catch fully supports this way of working there are a few problems with the approach. In particular the way your code must be split up, and the blunt granularity of it, may cause problems. You can only have one setup/ teardown pair across a set of methods, but sometimes you want slightly different setup in each method, or you may even want several levels of setup (a concept which we will clarify later on in this tutorial). It was problems like these that led James Newkirk, who led the team that built NUnit, to start again from scratch and build xUnit). - -Catch takes a different approach (to both NUnit and xUnit) that is a more natural fit for C++ and the C family of languages. This is best explained through an example: - -```c++ -TEST_CASE( "vectors can be sized and resized", "[vector]" ) { - - std::vector v( 5 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 5 ); - - SECTION( "resizing bigger changes size and capacity" ) { - v.resize( 10 ); - - REQUIRE( v.size() == 10 ); - REQUIRE( v.capacity() >= 10 ); - } - SECTION( "resizing smaller changes size but not capacity" ) { - v.resize( 0 ); - - REQUIRE( v.size() == 0 ); - REQUIRE( v.capacity() >= 5 ); - } - SECTION( "reserving bigger changes capacity but not size" ) { - v.reserve( 10 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 10 ); - } - SECTION( "reserving smaller does not change size or capacity" ) { - v.reserve( 0 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 5 ); - } -} -``` - -For each ```SECTION``` the ```TEST_CASE``` is executed from the start - so as we enter each section we know that size is 5 and capacity is at least 5. We enforced those requirements with the ```REQUIRE```s at the top level so we can be confident in them. -This works because the ```SECTION``` macro contains an if statement that calls back into Catch to see if the section should be executed. One leaf section is executed on each run through a ```TEST_CASE```. The other sections are skipped. Next time through the next section is executed, and so on until no new sections are encountered. - -So far so good - this is already an improvement on the setup/teardown approach because now we see our setup code inline and use the stack. - -The power of sections really shows, however, when we need to execute a sequence of, checked, operations. Continuing the vector example, we might want to verify that attempting to reserve a capacity smaller than the current capacity of the vector changes nothing. We can do that, naturally, like so: - -```c++ - SECTION( "reserving bigger changes capacity but not size" ) { - v.reserve( 10 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 10 ); - - SECTION( "reserving smaller again does not change capacity" ) { - v.reserve( 7 ); - - REQUIRE( v.capacity() >= 10 ); - } - } -``` - -Sections can be nested to an arbitrary depth (limited only by your stack size). Each leaf section (i.e. a section that contains no nested sections) will be executed exactly once, on a separate path of execution from any other leaf section (so no leaf section can interfere with another). A failure in a parent section will prevent nested sections from running - but then that's the idea. - -## BDD-Style - -If you name your test cases and sections appropriately you can achieve a BDD-style specification structure. This became such a useful way of working that first class support has been added to Catch. Scenarios can be specified using ```SCENARIO```, ```GIVEN```, ```WHEN``` and ```THEN``` macros, which map on to ```TEST_CASE```s and ```SECTION```s, respectively. For more details see [Test cases and sections](test-cases-and-sections.md). - -The vector example can be adjusted to use these macros like so: - -```c++ -SCENARIO( "vectors can be sized and resized", "[vector]" ) { - - GIVEN( "A vector with some items" ) { - std::vector v( 5 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 5 ); - - WHEN( "the size is increased" ) { - v.resize( 10 ); - - THEN( "the size and capacity change" ) { - REQUIRE( v.size() == 10 ); - REQUIRE( v.capacity() >= 10 ); - } - } - WHEN( "the size is reduced" ) { - v.resize( 0 ); - - THEN( "the size changes but not capacity" ) { - REQUIRE( v.size() == 0 ); - REQUIRE( v.capacity() >= 5 ); - } - } - WHEN( "more capacity is reserved" ) { - v.reserve( 10 ); - - THEN( "the capacity changes but not the size" ) { - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 10 ); - } - } - WHEN( "less capacity is reserved" ) { - v.reserve( 0 ); - - THEN( "neither size nor capacity are changed" ) { - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 5 ); - } - } - } -} -``` - -Conveniently, these tests will be reported as follows when run: - -``` -Scenario: vectors can be sized and resized - Given: A vector with some items - When: more capacity is reserved - Then: the capacity changes but not the size -``` - - -## Scaling up - -To keep the tutorial simple we put all our code in a single file. This is fine to get started - and makes jumping into Catch even quicker and easier. As you write more real-world tests, though, this is not really the best approach. - -The requirement is that the following block of code ([or equivalent](own-main.md)): - -```c++ -#define CATCH_CONFIG_MAIN -#include "catch.hpp" -``` - -appears in _exactly one_ source file. Use as many additional cpp files (or whatever you call your implementation files) as you need for your tests, partitioned however makes most sense for your way of working. Each additional file need only ```#include "catch.hpp"``` - do not repeat the ```#define```! - -In fact it is usually a good idea to put the block with the ```#define``` [in its own source file](slow-compiles.md). - -Do not write your tests in header files! - - -## Next steps - -This has been a brief introduction to get you up and running with Catch, and to point out some of the key differences between Catch and other frameworks you may already be familiar with. This will get you going quite far already and you are now in a position to dive in and write some tests. - -Of course there is more to learn - most of which you should be able to page-fault in as you go. Please see the ever-growing [Reference section](Readme.md) for what's available. - ---- - -[Home](Readme.md) diff --git a/libraries/Lora_Serialization/test/lib/Catch/docs/why-catch.md b/libraries/Lora_Serialization/test/lib/Catch/docs/why-catch.md deleted file mode 100644 index b77ca2c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/docs/why-catch.md +++ /dev/null @@ -1,46 +0,0 @@ -# Why do we need yet another C++ test framework? - -Good question. For C++ there are quite a number of established frameworks, including (but not limited to), [CppUnit](http://sourceforge.net/apps/mediawiki/cppunit/index.php?title=Main_Page), [Google Test](http://code.google.com/p/googletest/), [Boost.Test](http://www.boost.org/doc/libs/1_49_0/libs/test/doc/html/index.html), [Aeryn](https://launchpad.net/aeryn), [Cute](http://r2.ifs.hsr.ch/cute), [Fructose](http://fructose.sourceforge.net/) and [many, many more](http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B). Even for Objective-C there are a few, including OCUnit - which now comes bundled with XCode. - -So what does Catch bring to the party that differentiates it from these? Apart from a Catchy name, of course. - -## Key Features - -* Really easy to get started. Just download catch.hpp, #include it and you're away. -* No external dependencies. As long as you can compile C++98 and have a C++ standard library available. -* Write test cases as, self-registering, functions or methods. -* Divide test cases into sections, each of which is run in isolation (eliminates the need for fixtures!) -* Use BDD-style Given-When-Then sections as well as traditional unit test cases. -* Only one core assertion macro for comparisons. Standard C/C++ operators are used for the comparison - yet the full expression is decomposed and lhs and rhs values are logged. - -## Other core features - -* Tests are named using free-form strings - no more couching names in legal identifiers. -* Tests can be tagged for easily running ad-hoc groups of tests. -* Failures can (optionally) break into the debugger on Windows and Mac. -* Output is through modular reporter objects. Basic textual and XML reporters are included. Custom reporters can easily be added. -* JUnit xml output is supported for integration with third-party tools, such as CI servers. -* A default main() function is provided (in a header), but you can supply your own for complete control (e.g. integration into your own test runner GUI). -* A command line parser is provided and can still be used if you choose to provided your own main() function. -* Catch can test itself. -* Alternative assertion macro(s) report failures but don't abort the test case -* Floating point tolerance comparisons are built in using an expressive Approx() syntax. -* Internal and friendly macros are isolated so name clashes can be managed -* Support for Matchers (early stages) - -## Objective-C-specific features - -* Automatically detects if you are using it from an Objective-C project -* Works with and without ARC with no additional configuration -* Implement test fixtures using Obj-C classes too (like OCUnit) -* Additional built in matchers that work with Obj-C types (e.g. string matchers) - -## Who else is using Catch? - -See the list of [open source projects using Catch](opensource-users.md). - -See the [tutorial](tutorial.md) to get more of a taste of using CATCH in practice - ---- - -[Home](Readme.md) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/catch.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/catch.hpp deleted file mode 100644 index 5d009ee..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/catch.hpp +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Created by Phil on 22/10/2010. - * Copyright 2010 Two Blue Cubes Ltd - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#ifndef TWOBLUECUBES_CATCH_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_HPP_INCLUDED - -#ifdef __clang__ -# pragma clang system_header -#elif defined __GNUC__ -# pragma GCC system_header -#endif - -#include "internal/catch_suppress_warnings.h" - -#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) -# define CATCH_IMPL -#endif - -#ifdef CATCH_IMPL -# ifndef CLARA_CONFIG_MAIN -# define CLARA_CONFIG_MAIN_NOT_DEFINED -# define CLARA_CONFIG_MAIN -# endif -#endif - -#include "internal/catch_notimplemented_exception.h" -#include "internal/catch_context.h" -#include "internal/catch_test_registry.hpp" -#include "internal/catch_capture.hpp" -#include "internal/catch_section.h" -#include "internal/catch_generators.hpp" -#include "internal/catch_interfaces_exception.h" -#include "internal/catch_approx.hpp" -#include "internal/catch_matchers_string.h" -#include "internal/catch_matchers_vector.h" -#include "internal/catch_compiler_capabilities.h" -#include "internal/catch_interfaces_tag_alias_registry.h" - -// These files are included here so the single_include script doesn't put them -// in the conditionally compiled sections -#include "internal/catch_test_case_info.h" -#include "internal/catch_interfaces_runner.h" - -#ifdef __OBJC__ -#include "internal/catch_objc.hpp" -#endif - -#ifdef CATCH_IMPL - -// !TBD: Move the leak detector code into a separate header -#ifdef CATCH_CONFIG_WINDOWS_CRTDBG -#include -class LeakDetector { -public: - LeakDetector() { - int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); - flag |= _CRTDBG_LEAK_CHECK_DF; - flag |= _CRTDBG_ALLOC_MEM_DF; - _CrtSetDbgFlag(flag); - _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); - _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); - // Change this to leaking allocation's number to break there - _CrtSetBreakAlloc(-1); - } -}; -#else -class LeakDetector {}; -#endif - -LeakDetector leakDetector; - -#include "internal/catch_impl.hpp" -#endif - -#ifdef CATCH_CONFIG_MAIN -#include "internal/catch_default_main.hpp" -#endif - - -#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED -# undef CLARA_CONFIG_MAIN -#endif - -////// - -// If this config identifier is defined then all CATCH macros are prefixed with CATCH_ -#ifdef CATCH_CONFIG_PREFIX_ALL - -#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" ) -#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" ) - -#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" ) -#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" ) -#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" ) -#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" ) - -#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" ) -#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" ) -#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" ) -#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" ) -#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" ) - -#define CATCH_CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" ) -#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" ) -#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" ) -#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" ) - -#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" ) -#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" ) - -#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" ) -#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg ) -#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" ) -#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << Catch::toString(msg), "CATCH_CAPTURE" ) -#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << Catch::toString(msg), "CATCH_CAPTURE" ) - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) - #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) - #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) - #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) - #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) - #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ ) - #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ ) -#else - #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description ) - #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description ) - #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description ) - #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description ) - #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description ) - #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg ) - #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg ) -#endif -#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" ) - -#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) -#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) - -#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr ) - -// "BDD-style" convenience wrappers -#ifdef CATCH_CONFIG_VARIADIC_MACROS -#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ ) -#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) -#else -#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags ) -#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags ) -#endif -#define CATCH_GIVEN( desc ) CATCH_SECTION( std::string( "Given: ") + desc, "" ) -#define CATCH_WHEN( desc ) CATCH_SECTION( std::string( " When: ") + desc, "" ) -#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" ) -#define CATCH_THEN( desc ) CATCH_SECTION( std::string( " Then: ") + desc, "" ) -#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" ) - -// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required -#else - -#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" ) -#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" ) - -#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" ) -#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" ) -#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" ) -#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" ) - -#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" ) -#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" ) -#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" ) -#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" ) -#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" ) - -#define CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" ) -#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" ) -#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" ) -#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" ) - -#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" ) -#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" ) - -#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" ) -#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg ) -#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" ) -#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << Catch::toString(msg), "CAPTURE" ) -#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << Catch::toString(msg), "CAPTURE" ) - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) - #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) - #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) - #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) - #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) - #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ ) - #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ ) -#else - #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description ) - #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description ) - #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description ) - #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description ) - #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description ) - #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg ) - #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg ) -#endif -#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" ) - -#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) -#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) - -#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr ) - -#endif - -#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) - -// "BDD-style" convenience wrappers -#ifdef CATCH_CONFIG_VARIADIC_MACROS -#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ ) -#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) -#else -#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags ) -#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags ) -#endif -#define GIVEN( desc ) SECTION( std::string(" Given: ") + desc, "" ) -#define WHEN( desc ) SECTION( std::string(" When: ") + desc, "" ) -#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" ) -#define THEN( desc ) SECTION( std::string(" Then: ") + desc, "" ) -#define AND_THEN( desc ) SECTION( std::string(" And: ") + desc, "" ) - -using Catch::Detail::Approx; - -#include "internal/catch_reenable_warnings.h" - -#endif // TWOBLUECUBES_CATCH_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/catch_session.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/catch_session.hpp deleted file mode 100644 index a9c3366..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/catch_session.hpp +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Created by Phil on 31/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED - -#include "internal/catch_commandline.hpp" -#include "internal/catch_list.hpp" -#include "internal/catch_run_context.hpp" -#include "internal/catch_test_spec.hpp" -#include "internal/catch_version.h" -#include "internal/catch_text.h" - -#include -#include -#include - -namespace Catch { - - Ptr createReporter( std::string const& reporterName, Ptr const& config ) { - Ptr reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() ); - if( !reporter ) { - std::ostringstream oss; - oss << "No reporter registered with name: '" << reporterName << "'"; - throw std::domain_error( oss.str() ); - } - return reporter; - } - - Ptr makeReporter( Ptr const& config ) { - std::vector reporters = config->getReporterNames(); - if( reporters.empty() ) - reporters.push_back( "console" ); - - Ptr reporter; - for( std::vector::const_iterator it = reporters.begin(), itEnd = reporters.end(); - it != itEnd; - ++it ) - reporter = addReporter( reporter, createReporter( *it, config ) ); - return reporter; - } - Ptr addListeners( Ptr const& config, Ptr reporters ) { - IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners(); - for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end(); - it != itEnd; - ++it ) - reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) ); - return reporters; - } - - - Totals runTests( Ptr const& config ) { - - Ptr iconfig = config.get(); - - Ptr reporter = makeReporter( config ); - reporter = addListeners( iconfig, reporter ); - - RunContext context( iconfig, reporter ); - - Totals totals; - - context.testGroupStarting( config->name(), 1, 1 ); - - TestSpec testSpec = config->testSpec(); - if( !testSpec.hasFilters() ) - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests - - std::vector const& allTestCases = getAllTestCasesSorted( *iconfig ); - for( std::vector::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end(); - it != itEnd; - ++it ) { - if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) ) - totals += context.runTest( *it ); - else - reporter->skipTest( *it ); - } - - context.testGroupEnded( iconfig->name(), totals, 1, 1 ); - return totals; - } - - void applyFilenamesAsTags( IConfig const& config ) { - std::vector const& tests = getAllTestCasesSorted( config ); - for(std::size_t i = 0; i < tests.size(); ++i ) { - TestCase& test = const_cast( tests[i] ); - std::set tags = test.tags; - - std::string filename = test.lineInfo.file; - std::string::size_type lastSlash = filename.find_last_of( "\\/" ); - if( lastSlash != std::string::npos ) - filename = filename.substr( lastSlash+1 ); - - std::string::size_type lastDot = filename.find_last_of( "." ); - if( lastDot != std::string::npos ) - filename = filename.substr( 0, lastDot ); - - tags.insert( "#" + filename ); - setTags( test, tags ); - } - } - - class Session : NonCopyable { - static bool alreadyInstantiated; - - public: - - struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; }; - - Session() - : m_cli( makeCommandLineParser() ) { - if( alreadyInstantiated ) { - std::string msg = "Only one instance of Catch::Session can ever be used"; - Catch::cerr() << msg << std::endl; - throw std::logic_error( msg ); - } - alreadyInstantiated = true; - } - ~Session() { - Catch::cleanUp(); - } - - void showHelp( std::string const& processName ) { - Catch::cout() << "\nCatch v" << libraryVersion << "\n"; - - m_cli.usage( Catch::cout(), processName ); - Catch::cout() << "For more detail usage please see the project docs\n" << std::endl; - } - - int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) { - try { - m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail ); - m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData ); - if( m_configData.showHelp ) - showHelp( m_configData.processName ); - m_config.reset(); - } - catch( std::exception& ex ) { - { - Colour colourGuard( Colour::Red ); - Catch::cerr() - << "\nError(s) in input:\n" - << Text( ex.what(), TextAttributes().setIndent(2) ) - << "\n\n"; - } - m_cli.usage( Catch::cout(), m_configData.processName ); - return (std::numeric_limits::max)(); - } - return 0; - } - - void useConfigData( ConfigData const& _configData ) { - m_configData = _configData; - m_config.reset(); - } - - int run( int argc, char const* const* const argv ) { - - int returnCode = applyCommandLine( argc, argv ); - if( returnCode == 0 ) - returnCode = run(); - return returnCode; - } - - int run() { - if( m_configData.showHelp ) - return 0; - - try - { - config(); // Force config to be constructed - - seedRng( *m_config ); - - if( m_configData.filenamesAsTags ) - applyFilenamesAsTags( *m_config ); - - // Handle list request - if( Option listed = list( config() ) ) - return static_cast( *listed ); - - return static_cast( runTests( m_config ).assertions.failed ); - } - catch( std::exception& ex ) { - Catch::cerr() << ex.what() << std::endl; - return (std::numeric_limits::max)(); - } - } - - Clara::CommandLine const& cli() const { - return m_cli; - } - std::vector const& unusedTokens() const { - return m_unusedTokens; - } - ConfigData& configData() { - return m_configData; - } - Config& config() { - if( !m_config ) - m_config = new Config( m_configData ); - return *m_config; - } - private: - Clara::CommandLine m_cli; - std::vector m_unusedTokens; - ConfigData m_configData; - Ptr m_config; - }; - - bool Session::alreadyInstantiated = false; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/catch_with_main.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/catch_with_main.hpp deleted file mode 100644 index 54aa651..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/catch_with_main.hpp +++ /dev/null @@ -1,14 +0,0 @@ - /* - * Created by Phil on 01/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED - -#define CATCH_CONFIG_MAIN -#include "catch.hpp" - -#endif // TWOBLUECUBES_CATCH_WITH_MAIN_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/external/clara.h b/libraries/Lora_Serialization/test/lib/Catch/include/external/clara.h deleted file mode 100644 index a999a37..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/external/clara.h +++ /dev/null @@ -1,1051 +0,0 @@ -/* - * Created by Phil on 25/05/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -// Version 0.0.2.4 - -// Only use header guard if we are not using an outer namespace -#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE) - -#ifndef STITCH_CLARA_OPEN_NAMESPACE -#define TWOBLUECUBES_CLARA_H_INCLUDED -#define STITCH_CLARA_OPEN_NAMESPACE -#define STITCH_CLARA_CLOSE_NAMESPACE -#else -#define STITCH_CLARA_CLOSE_NAMESPACE } -#endif - - -#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE - -// ----------- #included from tbc_text_format.h ----------- - -/* - * Created by Phil on 18/4/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -// Only use header guard if we are not using an outer namespace -#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE) -#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -#define TBC_TEXT_FORMAT_H_INCLUDED -#endif - -#include -#include -#include -#include - -// Use optional outer namespace -#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE { -#endif - -namespace Tbc { - -#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH - const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - struct TextAttributes { - TextAttributes() - : initialIndent( std::string::npos ), - indent( 0 ), - width( consoleWidth-1 ), - tabChar( '\t' ) - {} - - TextAttributes& setInitialIndent( std::size_t _value ) { initialIndent = _value; return *this; } - TextAttributes& setIndent( std::size_t _value ) { indent = _value; return *this; } - TextAttributes& setWidth( std::size_t _value ) { width = _value; return *this; } - TextAttributes& setTabChar( char _value ) { tabChar = _value; return *this; } - - std::size_t initialIndent; // indent of first line, or npos - std::size_t indent; // indent of subsequent lines, or all if initialIndent is npos - std::size_t width; // maximum width of text, including indent. Longer text will wrap - char tabChar; // If this char is seen the indent is changed to current pos - }; - - class Text { - public: - Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() ) - : attr( _attr ) - { - std::string wrappableChars = " [({.,/|\\-"; - std::size_t indent = _attr.initialIndent != std::string::npos - ? _attr.initialIndent - : _attr.indent; - std::string remainder = _str; - - while( !remainder.empty() ) { - if( lines.size() >= 1000 ) { - lines.push_back( "... message truncated due to excessive size" ); - return; - } - std::size_t tabPos = std::string::npos; - std::size_t width = (std::min)( remainder.size(), _attr.width - indent ); - std::size_t pos = remainder.find_first_of( '\n' ); - if( pos <= width ) { - width = pos; - } - pos = remainder.find_last_of( _attr.tabChar, width ); - if( pos != std::string::npos ) { - tabPos = pos; - if( remainder[width] == '\n' ) - width--; - remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 ); - } - - if( width == remainder.size() ) { - spliceLine( indent, remainder, width ); - } - else if( remainder[width] == '\n' ) { - spliceLine( indent, remainder, width ); - if( width <= 1 || remainder.size() != 1 ) - remainder = remainder.substr( 1 ); - indent = _attr.indent; - } - else { - pos = remainder.find_last_of( wrappableChars, width ); - if( pos != std::string::npos && pos > 0 ) { - spliceLine( indent, remainder, pos ); - if( remainder[0] == ' ' ) - remainder = remainder.substr( 1 ); - } - else { - spliceLine( indent, remainder, width-1 ); - lines.back() += "-"; - } - if( lines.size() == 1 ) - indent = _attr.indent; - if( tabPos != std::string::npos ) - indent += tabPos; - } - } - } - - void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) { - lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) ); - _remainder = _remainder.substr( _pos ); - } - - typedef std::vector::const_iterator const_iterator; - - const_iterator begin() const { return lines.begin(); } - const_iterator end() const { return lines.end(); } - std::string const& last() const { return lines.back(); } - std::size_t size() const { return lines.size(); } - std::string const& operator[]( std::size_t _index ) const { return lines[_index]; } - std::string toString() const { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - - inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) { - for( Text::const_iterator it = _text.begin(), itEnd = _text.end(); - it != itEnd; ++it ) { - if( it != _text.begin() ) - _stream << "\n"; - _stream << *it; - } - return _stream; - } - - private: - std::string str; - TextAttributes attr; - std::vector lines; - }; - -} // end namespace Tbc - -#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -} // end outer namespace -#endif - -#endif // TBC_TEXT_FORMAT_H_INCLUDED - -// ----------- end of #include from tbc_text_format.h ----------- -// ........... back in clara.h - -#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE - - -// ----------- #included from clara_compilers.h ----------- - -/* - * Created by Phil on 10/02/2016. - * Copyright 2016 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED -#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED - -// Detect a number of compiler features - mostly C++11/14 conformance - by compiler -// The following features are defined: -// -// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported? -// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported? -// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods -// CLARA_CONFIG_CPP11_OVERRIDE : is override supported? -// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr) - -// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported? - -// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported? - -// In general each macro has a _NO_ form -// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature. -// Many features, at point of detection, define an _INTERNAL_ macro, so they -// can be combined, en-mass, with the _NO_ forms later. - -// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11 - -#ifdef __clang__ - -#if __has_feature(cxx_nullptr) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -#if __has_feature(cxx_noexcept) -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#endif - -#endif // __clang__ - -//////////////////////////////////////////////////////////////////////////////// -// GCC -#ifdef __GNUC__ - -#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -// - otherwise more recent versions define __cplusplus >= 201103L -// and will get picked up below - -#endif // __GNUC__ - -//////////////////////////////////////////////////////////////////////////////// -// Visual C++ -#ifdef _MSC_VER - -#if (_MSC_VER >= 1600) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#endif - -#endif // _MSC_VER - - -//////////////////////////////////////////////////////////////////////////////// -// C++ language feature support - -// catch all support for C++11 -#if defined(__cplusplus) && __cplusplus >= 201103L - -#define CLARA_CPP11_OR_GREATER - -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#endif - -#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#endif - -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) -#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE -#endif -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) -#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - - -#endif // __cplusplus >= 201103L - -// Now set the actual defines based on the above + anything the user has configured -#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_NULLPTR -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_NOEXCEPT -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_GENERATED_METHODS -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_OVERRIDE -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_UNIQUE_PTR -#endif - - -// noexcept support: -#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT) -#define CLARA_NOEXCEPT noexcept -# define CLARA_NOEXCEPT_IS(x) noexcept(x) -#else -#define CLARA_NOEXCEPT throw() -# define CLARA_NOEXCEPT_IS(x) -#endif - -// nullptr support -#ifdef CLARA_CONFIG_CPP11_NULLPTR -#define CLARA_NULL nullptr -#else -#define CLARA_NULL NULL -#endif - -// override support -#ifdef CLARA_CONFIG_CPP11_OVERRIDE -#define CLARA_OVERRIDE override -#else -#define CLARA_OVERRIDE -#endif - -// unique_ptr support -#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR -# define CLARA_AUTO_PTR( T ) std::unique_ptr -#else -# define CLARA_AUTO_PTR( T ) std::auto_ptr -#endif - -#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED - - -// ----------- end of #include from clara_compilers.h ----------- -// ........... back in clara.h - - -#include -#include -#include - -#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) -#define CLARA_PLATFORM_WINDOWS -#endif - - -// Use optional outer namespace -#ifdef STITCH_CLARA_OPEN_NAMESPACE -STITCH_CLARA_OPEN_NAMESPACE -#endif - -namespace Clara { - - struct UnpositionalTag {}; - - extern UnpositionalTag _; - -#ifdef CLARA_CONFIG_MAIN - UnpositionalTag _; -#endif - - namespace Detail { - -#ifdef CLARA_CONSOLE_WIDTH - const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - using namespace Tbc; - - inline bool startsWith( std::string const& str, std::string const& prefix ) { - return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix; - } - - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - - template struct IsBool { static const bool value = false; }; - template<> struct IsBool { static const bool value = true; }; - - template - void convertInto( std::string const& _source, T& _dest ) { - std::stringstream ss; - ss << _source; - ss >> _dest; - if( ss.fail() ) - throw std::runtime_error( "Unable to convert " + _source + " to destination type" ); - } - inline void convertInto( std::string const& _source, std::string& _dest ) { - _dest = _source; - } - char toLowerCh(char c) { - return static_cast( ::tolower( c ) ); - } - inline void convertInto( std::string const& _source, bool& _dest ) { - std::string sourceLC = _source; - std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), toLowerCh ); - if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" ) - _dest = true; - else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" ) - _dest = false; - else - throw std::runtime_error( "Expected a boolean value but did not recognise:\n '" + _source + "'" ); - } - - - template - struct IArgFunction { - virtual ~IArgFunction() {} -#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS - IArgFunction() = default; - IArgFunction( IArgFunction const& ) = default; -#endif - virtual void set( ConfigT& config, std::string const& value ) const = 0; - virtual bool takesArg() const = 0; - virtual IArgFunction* clone() const = 0; - }; - - template - class BoundArgFunction { - public: - BoundArgFunction() : functionObj( CLARA_NULL ) {} - BoundArgFunction( IArgFunction* _functionObj ) : functionObj( _functionObj ) {} - BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {} - BoundArgFunction& operator = ( BoundArgFunction const& other ) { - IArgFunction* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL; - delete functionObj; - functionObj = newFunctionObj; - return *this; - } - ~BoundArgFunction() { delete functionObj; } - - void set( ConfigT& config, std::string const& value ) const { - functionObj->set( config, value ); - } - bool takesArg() const { return functionObj->takesArg(); } - - bool isSet() const { - return functionObj != CLARA_NULL; - } - private: - IArgFunction* functionObj; - }; - - - template - struct NullBinder : IArgFunction{ - virtual void set( C&, std::string const& ) const {} - virtual bool takesArg() const { return true; } - virtual IArgFunction* clone() const { return new NullBinder( *this ); } - }; - - template - struct BoundDataMember : IArgFunction{ - BoundDataMember( M C::* _member ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - convertInto( stringValue, p.*member ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundDataMember( *this ); } - M C::* member; - }; - template - struct BoundUnaryMethod : IArgFunction{ - BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - typename RemoveConstRef::type value; - convertInto( stringValue, value ); - (p.*member)( value ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundUnaryMethod( *this ); } - void (C::*member)( M ); - }; - template - struct BoundNullaryMethod : IArgFunction{ - BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - bool value; - convertInto( stringValue, value ); - if( value ) - (p.*member)(); - } - virtual bool takesArg() const { return false; } - virtual IArgFunction* clone() const { return new BoundNullaryMethod( *this ); } - void (C::*member)(); - }; - - template - struct BoundUnaryFunction : IArgFunction{ - BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {} - virtual void set( C& obj, std::string const& stringValue ) const { - bool value; - convertInto( stringValue, value ); - if( value ) - function( obj ); - } - virtual bool takesArg() const { return false; } - virtual IArgFunction* clone() const { return new BoundUnaryFunction( *this ); } - void (*function)( C& ); - }; - - template - struct BoundBinaryFunction : IArgFunction{ - BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {} - virtual void set( C& obj, std::string const& stringValue ) const { - typename RemoveConstRef::type value; - convertInto( stringValue, value ); - function( obj, value ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundBinaryFunction( *this ); } - void (*function)( C&, T ); - }; - - } // namespace Detail - - inline std::vector argsToVector( int argc, char const* const* const argv ) { - std::vector args( static_cast( argc ) ); - for( std::size_t i = 0; i < static_cast( argc ); ++i ) - args[i] = argv[i]; - - return args; - } - - class Parser { - enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional }; - Mode mode; - std::size_t from; - bool inQuotes; - public: - - struct Token { - enum Type { Positional, ShortOpt, LongOpt }; - Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {} - Type type; - std::string data; - }; - - Parser() : mode( None ), from( 0 ), inQuotes( false ){} - - void parseIntoTokens( std::vector const& args, std::vector& tokens ) { - const std::string doubleDash = "--"; - for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i ) - parseIntoTokens( args[i], tokens); - } - - void parseIntoTokens( std::string const& arg, std::vector& tokens ) { - for( std::size_t i = 0; i <= arg.size(); ++i ) { - char c = arg[i]; - if( c == '"' ) - inQuotes = !inQuotes; - mode = handleMode( i, c, arg, tokens ); - } - } - Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector& tokens ) { - switch( mode ) { - case None: return handleNone( i, c ); - case MaybeShortOpt: return handleMaybeShortOpt( i, c ); - case ShortOpt: - case LongOpt: - case SlashOpt: return handleOpt( i, c, arg, tokens ); - case Positional: return handlePositional( i, c, arg, tokens ); - default: throw std::logic_error( "Unknown mode" ); - } - } - - Mode handleNone( std::size_t i, char c ) { - if( inQuotes ) { - from = i; - return Positional; - } - switch( c ) { - case '-': return MaybeShortOpt; -#ifdef CLARA_PLATFORM_WINDOWS - case '/': from = i+1; return SlashOpt; -#endif - default: from = i; return Positional; - } - } - Mode handleMaybeShortOpt( std::size_t i, char c ) { - switch( c ) { - case '-': from = i+1; return LongOpt; - default: from = i; return ShortOpt; - } - } - Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector& tokens ) { - if( std::string( ":=\0", 3 ).find( c ) == std::string::npos ) - return mode; - - std::string optName = arg.substr( from, i-from ); - if( mode == ShortOpt ) - for( std::size_t j = 0; j < optName.size(); ++j ) - tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) ); - else if( mode == SlashOpt && optName.size() == 1 ) - tokens.push_back( Token( Token::ShortOpt, optName ) ); - else - tokens.push_back( Token( Token::LongOpt, optName ) ); - return None; - } - Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector& tokens ) { - if( inQuotes || std::string( "\0", 1 ).find( c ) == std::string::npos ) - return mode; - - std::string data = arg.substr( from, i-from ); - tokens.push_back( Token( Token::Positional, data ) ); - return None; - } - }; - - template - struct CommonArgProperties { - CommonArgProperties() {} - CommonArgProperties( Detail::BoundArgFunction const& _boundField ) : boundField( _boundField ) {} - - Detail::BoundArgFunction boundField; - std::string description; - std::string detail; - std::string placeholder; // Only value if boundField takes an arg - - bool takesArg() const { - return !placeholder.empty(); - } - void validate() const { - if( !boundField.isSet() ) - throw std::logic_error( "option not bound" ); - } - }; - struct OptionArgProperties { - std::vector shortNames; - std::string longName; - - bool hasShortName( std::string const& shortName ) const { - return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end(); - } - bool hasLongName( std::string const& _longName ) const { - return _longName == longName; - } - }; - struct PositionalArgProperties { - PositionalArgProperties() : position( -1 ) {} - int position; // -1 means non-positional (floating) - - bool isFixedPositional() const { - return position != -1; - } - }; - - template - class CommandLine { - - struct Arg : CommonArgProperties, OptionArgProperties, PositionalArgProperties { - Arg() {} - Arg( Detail::BoundArgFunction const& _boundField ) : CommonArgProperties( _boundField ) {} - - using CommonArgProperties::placeholder; // !TBD - - std::string dbgName() const { - if( !longName.empty() ) - return "--" + longName; - if( !shortNames.empty() ) - return "-" + shortNames[0]; - return "positional args"; - } - std::string commands() const { - std::ostringstream oss; - bool first = true; - std::vector::const_iterator it = shortNames.begin(), itEnd = shortNames.end(); - for(; it != itEnd; ++it ) { - if( first ) - first = false; - else - oss << ", "; - oss << "-" << *it; - } - if( !longName.empty() ) { - if( !first ) - oss << ", "; - oss << "--" << longName; - } - if( !placeholder.empty() ) - oss << " <" << placeholder << ">"; - return oss.str(); - } - }; - - typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr; - - friend void addOptName( Arg& arg, std::string const& optName ) - { - if( optName.empty() ) - return; - if( Detail::startsWith( optName, "--" ) ) { - if( !arg.longName.empty() ) - throw std::logic_error( "Only one long opt may be specified. '" - + arg.longName - + "' already specified, now attempting to add '" - + optName + "'" ); - arg.longName = optName.substr( 2 ); - } - else if( Detail::startsWith( optName, "-" ) ) - arg.shortNames.push_back( optName.substr( 1 ) ); - else - throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" ); - } - friend void setPositionalArg( Arg& arg, int position ) - { - arg.position = position; - } - - - class ArgBuilder { - public: - ArgBuilder( Arg* arg ) : m_arg( arg ) {} - - // Bind a non-boolean data member (requires placeholder string) - template - void bind( M C::* field, std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundDataMember( field ); - m_arg->placeholder = placeholder; - } - // Bind a boolean data member (no placeholder required) - template - void bind( bool C::* field ) { - m_arg->boundField = new Detail::BoundDataMember( field ); - } - - // Bind a method taking a single, non-boolean argument (requires a placeholder string) - template - void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundUnaryMethod( unaryMethod ); - m_arg->placeholder = placeholder; - } - - // Bind a method taking a single, boolean argument (no placeholder string required) - template - void bind( void (C::* unaryMethod)( bool ) ) { - m_arg->boundField = new Detail::BoundUnaryMethod( unaryMethod ); - } - - // Bind a method that takes no arguments (will be called if opt is present) - template - void bind( void (C::* nullaryMethod)() ) { - m_arg->boundField = new Detail::BoundNullaryMethod( nullaryMethod ); - } - - // Bind a free function taking a single argument - the object to operate on (no placeholder string required) - template - void bind( void (* unaryFunction)( C& ) ) { - m_arg->boundField = new Detail::BoundUnaryFunction( unaryFunction ); - } - - // Bind a free function taking a single argument - the object to operate on (requires a placeholder string) - template - void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundBinaryFunction( binaryFunction ); - m_arg->placeholder = placeholder; - } - - ArgBuilder& describe( std::string const& description ) { - m_arg->description = description; - return *this; - } - ArgBuilder& detail( std::string const& detail ) { - m_arg->detail = detail; - return *this; - } - - protected: - Arg* m_arg; - }; - - class OptBuilder : public ArgBuilder { - public: - OptBuilder( Arg* arg ) : ArgBuilder( arg ) {} - OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {} - - OptBuilder& operator[]( std::string const& optName ) { - addOptName( *ArgBuilder::m_arg, optName ); - return *this; - } - }; - - public: - - CommandLine() - : m_boundProcessName( new Detail::NullBinder() ), - m_highestSpecifiedArgPosition( 0 ), - m_throwOnUnrecognisedTokens( false ) - {} - CommandLine( CommandLine const& other ) - : m_boundProcessName( other.m_boundProcessName ), - m_options ( other.m_options ), - m_positionalArgs( other.m_positionalArgs ), - m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ), - m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens ) - { - if( other.m_floatingArg.get() ) - m_floatingArg.reset( new Arg( *other.m_floatingArg ) ); - } - - CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) { - m_throwOnUnrecognisedTokens = shouldThrow; - return *this; - } - - - OptBuilder operator[]( std::string const& optName ) { - m_options.push_back( Arg() ); - addOptName( m_options.back(), optName ); - OptBuilder builder( &m_options.back() ); - return builder; - } - - ArgBuilder operator[]( int position ) { - m_positionalArgs.insert( std::make_pair( position, Arg() ) ); - if( position > m_highestSpecifiedArgPosition ) - m_highestSpecifiedArgPosition = position; - setPositionalArg( m_positionalArgs[position], position ); - ArgBuilder builder( &m_positionalArgs[position] ); - return builder; - } - - // Invoke this with the _ instance - ArgBuilder operator[]( UnpositionalTag ) { - if( m_floatingArg.get() ) - throw std::logic_error( "Only one unpositional argument can be added" ); - m_floatingArg.reset( new Arg() ); - ArgBuilder builder( m_floatingArg.get() ); - return builder; - } - - template - void bindProcessName( M C::* field ) { - m_boundProcessName = new Detail::BoundDataMember( field ); - } - template - void bindProcessName( void (C::*_unaryMethod)( M ) ) { - m_boundProcessName = new Detail::BoundUnaryMethod( _unaryMethod ); - } - - void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const { - typename std::vector::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it; - std::size_t maxWidth = 0; - for( it = itBegin; it != itEnd; ++it ) - maxWidth = (std::max)( maxWidth, it->commands().size() ); - - for( it = itBegin; it != itEnd; ++it ) { - Detail::Text usage( it->commands(), Detail::TextAttributes() - .setWidth( maxWidth+indent ) - .setIndent( indent ) ); - Detail::Text desc( it->description, Detail::TextAttributes() - .setWidth( width - maxWidth - 3 ) ); - - for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) { - std::string usageCol = i < usage.size() ? usage[i] : ""; - os << usageCol; - - if( i < desc.size() && !desc[i].empty() ) - os << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' ) - << desc[i]; - os << "\n"; - } - } - } - std::string optUsage() const { - std::ostringstream oss; - optUsage( oss ); - return oss.str(); - } - - void argSynopsis( std::ostream& os ) const { - for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) { - if( i > 1 ) - os << " "; - typename std::map::const_iterator it = m_positionalArgs.find( i ); - if( it != m_positionalArgs.end() ) - os << "<" << it->second.placeholder << ">"; - else if( m_floatingArg.get() ) - os << "<" << m_floatingArg->placeholder << ">"; - else - throw std::logic_error( "non consecutive positional arguments with no floating args" ); - } - // !TBD No indication of mandatory args - if( m_floatingArg.get() ) { - if( m_highestSpecifiedArgPosition > 1 ) - os << " "; - os << "[<" << m_floatingArg->placeholder << "> ...]"; - } - } - std::string argSynopsis() const { - std::ostringstream oss; - argSynopsis( oss ); - return oss.str(); - } - - void usage( std::ostream& os, std::string const& procName ) const { - validate(); - os << "usage:\n " << procName << " "; - argSynopsis( os ); - if( !m_options.empty() ) { - os << " [options]\n\nwhere options are: \n"; - optUsage( os, 2 ); - } - os << "\n"; - } - std::string usage( std::string const& procName ) const { - std::ostringstream oss; - usage( oss, procName ); - return oss.str(); - } - - ConfigT parse( std::vector const& args ) const { - ConfigT config; - parseInto( args, config ); - return config; - } - - std::vector parseInto( std::vector const& args, ConfigT& config ) const { - std::string processName = args[0]; - std::size_t lastSlash = processName.find_last_of( "/\\" ); - if( lastSlash != std::string::npos ) - processName = processName.substr( lastSlash+1 ); - m_boundProcessName.set( config, processName ); - std::vector tokens; - Parser parser; - parser.parseIntoTokens( args, tokens ); - return populate( tokens, config ); - } - - std::vector populate( std::vector const& tokens, ConfigT& config ) const { - validate(); - std::vector unusedTokens = populateOptions( tokens, config ); - unusedTokens = populateFixedArgs( unusedTokens, config ); - unusedTokens = populateFloatingArgs( unusedTokens, config ); - return unusedTokens; - } - - std::vector populateOptions( std::vector const& tokens, ConfigT& config ) const { - std::vector unusedTokens; - std::vector errors; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - typename std::vector::const_iterator it = m_options.begin(), itEnd = m_options.end(); - for(; it != itEnd; ++it ) { - Arg const& arg = *it; - - try { - if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) || - ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) { - if( arg.takesArg() ) { - if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional ) - errors.push_back( "Expected argument to option: " + token.data ); - else - arg.boundField.set( config, tokens[++i].data ); - } - else { - arg.boundField.set( config, "true" ); - } - break; - } - } - catch( std::exception& ex ) { - errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" ); - } - } - if( it == itEnd ) { - if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens ) - unusedTokens.push_back( token ); - else if( errors.empty() && m_throwOnUnrecognisedTokens ) - errors.push_back( "unrecognised option: " + token.data ); - } - } - if( !errors.empty() ) { - std::ostringstream oss; - for( std::vector::const_iterator it = errors.begin(), itEnd = errors.end(); - it != itEnd; - ++it ) { - if( it != errors.begin() ) - oss << "\n"; - oss << *it; - } - throw std::runtime_error( oss.str() ); - } - return unusedTokens; - } - std::vector populateFixedArgs( std::vector const& tokens, ConfigT& config ) const { - std::vector unusedTokens; - int position = 1; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - typename std::map::const_iterator it = m_positionalArgs.find( position ); - if( it != m_positionalArgs.end() ) - it->second.boundField.set( config, token.data ); - else - unusedTokens.push_back( token ); - if( token.type == Parser::Token::Positional ) - position++; - } - return unusedTokens; - } - std::vector populateFloatingArgs( std::vector const& tokens, ConfigT& config ) const { - if( !m_floatingArg.get() ) - return tokens; - std::vector unusedTokens; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - if( token.type == Parser::Token::Positional ) - m_floatingArg->boundField.set( config, token.data ); - else - unusedTokens.push_back( token ); - } - return unusedTokens; - } - - void validate() const - { - if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() ) - throw std::logic_error( "No options or arguments specified" ); - - for( typename std::vector::const_iterator it = m_options.begin(), - itEnd = m_options.end(); - it != itEnd; ++it ) - it->validate(); - } - - private: - Detail::BoundArgFunction m_boundProcessName; - std::vector m_options; - std::map m_positionalArgs; - ArgAutoPtr m_floatingArg; - int m_highestSpecifiedArgPosition; - bool m_throwOnUnrecognisedTokens; - }; - -} // end namespace Clara - - -STITCH_CLARA_CLOSE_NAMESPACE -#undef STITCH_CLARA_OPEN_NAMESPACE -#undef STITCH_CLARA_CLOSE_NAMESPACE - - -#endif // TWOBLUECUBES_CLARA_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/external/tbc_text_format.h b/libraries/Lora_Serialization/test/lib/Catch/include/external/tbc_text_format.h deleted file mode 100644 index 5209d80..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/external/tbc_text_format.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Created by Phil on 18/4/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -// Only use header guard if we are not using an outer namespace -#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED -# ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -# define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -# endif -# else -# define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED -# endif -#endif -#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -#include -#include -#include - -// Use optional outer namespace -#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE { -#endif - -namespace Tbc { - -#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH - const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - struct TextAttributes { - TextAttributes() - : initialIndent( std::string::npos ), - indent( 0 ), - width( consoleWidth-1 ) - {} - - TextAttributes& setInitialIndent( std::size_t _value ) { initialIndent = _value; return *this; } - TextAttributes& setIndent( std::size_t _value ) { indent = _value; return *this; } - TextAttributes& setWidth( std::size_t _value ) { width = _value; return *this; } - - std::size_t initialIndent; // indent of first line, or npos - std::size_t indent; // indent of subsequent lines, or all if initialIndent is npos - std::size_t width; // maximum width of text, including indent. Longer text will wrap - }; - - class Text { - public: - Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() ) - : attr( _attr ) - { - const std::string wrappableBeforeChars = "[({<\t"; - const std::string wrappableAfterChars = "])}>-,./|\\"; - const std::string wrappableInsteadOfChars = " \n\r"; - std::string indent = _attr.initialIndent != std::string::npos - ? std::string( _attr.initialIndent, ' ' ) - : std::string( _attr.indent, ' ' ); - - typedef std::string::const_iterator iterator; - iterator it = _str.begin(); - const iterator strEnd = _str.end(); - - while( it != strEnd ) { - - if( lines.size() >= 1000 ) { - lines.push_back( "... message truncated due to excessive size" ); - return; - } - - - std::string suffix; - std::size_t width = (std::min)( static_cast( strEnd-it ), _attr.width-static_cast( indent.size() ) ); - iterator itEnd = it+width; - iterator itNext = _str.end(); - - iterator itNewLine = std::find( it, itEnd, '\n' ); - if( itNewLine != itEnd ) - itEnd = itNewLine; - - if( itEnd != strEnd ) { - bool foundWrapPoint = false; - iterator findIt = itEnd; - do { - if( wrappableAfterChars.find( *findIt ) != std::string::npos && findIt != itEnd ) { - itEnd = findIt+1; - itNext = findIt+1; - foundWrapPoint = true; - } - else if( findIt > it && wrappableBeforeChars.find( *findIt ) != std::string::npos ) { - itEnd = findIt; - itNext = findIt; - foundWrapPoint = true; - } - else if( wrappableInsteadOfChars.find( *findIt ) != std::string::npos ) { - itNext = findIt+1; - itEnd = findIt; - foundWrapPoint = true; - } - if( findIt == it ) - break; - else - --findIt; - } - while( !foundWrapPoint ); - - if( !foundWrapPoint ) { - // No good wrap char, so we'll break mid word and add a hyphen - --itEnd; - itNext = itEnd; - suffix = "-"; - } - else { - while( itEnd > it && wrappableInsteadOfChars.find( *(itEnd-1) ) != std::string::npos ) - --itEnd; - } - } - lines.push_back( indent + std::string( it, itEnd ) + suffix ); - - if( indent.size() != _attr.indent ) - indent = std::string( _attr.indent, ' ' ); - it = itNext; - } - } - - - - typedef std::vector::const_iterator const_iterator; - - const_iterator begin() const { return lines.begin(); } - const_iterator end() const { return lines.end(); } - std::string const& last() const { return lines.back(); } - std::size_t size() const { return lines.size(); } - std::string const& operator[]( std::size_t _index ) const { return lines[_index]; } - std::string toString() const { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - - inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) { - for( Text::const_iterator it = _text.begin(), itEnd = _text.end(); - it != itEnd; ++it ) { - if( it != _text.begin() ) - _stream << "\n"; - _stream << *it; - } - return _stream; - } - - - private: - std::string str; - TextAttributes attr; - std::vector lines; - }; - -} // end namespace Tbc - -#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -} // end outer namespace -#endif - -#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_approx.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_approx.hpp deleted file mode 100644 index 5d6df1d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_approx.hpp +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Created by Phil on 28/04/2011. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED - -#include "catch_tostring.h" - -#include -#include - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) -#include -#endif - -namespace Catch { -namespace Detail { - - class Approx { - public: - explicit Approx ( double value ) - : m_epsilon( std::numeric_limits::epsilon()*100 ), - m_margin( 0.0 ), - m_scale( 1.0 ), - m_value( value ) - {} - - Approx( Approx const& other ) - : m_epsilon( other.m_epsilon ), - m_margin( other.m_margin ), - m_scale( other.m_scale ), - m_value( other.m_value ) - {} - - static Approx custom() { - return Approx( 0 ); - } - - Approx operator()( double value ) { - Approx approx( value ); - approx.epsilon( m_epsilon ); - approx.margin( m_margin ); - approx.scale( m_scale ); - return approx; - } - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) - template ::value>::type> - friend bool operator == ( const T& lhs, Approx const& rhs ) { - // Thanks to Richard Harris for his help refining this formula - auto lhs_v = double(lhs); - bool relativeOK = std::fabs(lhs_v - rhs.m_value) < rhs.m_epsilon * (rhs.m_scale + (std::max)(std::fabs(lhs_v), std::fabs(rhs.m_value))); - if (relativeOK) { - return true; - } - return std::fabs(lhs_v - rhs.m_value) < rhs.m_margin; - } - - template ::value>::type> - friend bool operator == ( Approx const& lhs, const T& rhs ) { - return operator==( rhs, lhs ); - } - - template ::value>::type> - friend bool operator != ( T lhs, Approx const& rhs ) { - return !operator==( lhs, rhs ); - } - - template ::value>::type> - friend bool operator != ( Approx const& lhs, T rhs ) { - return !operator==( rhs, lhs ); - } - - template ::value>::type> - friend bool operator <= ( T lhs, Approx const& rhs ) - { - return double(lhs) < rhs.m_value || lhs == rhs; - } - - template ::value>::type> - friend bool operator <= ( Approx const& lhs, T rhs ) - { - return lhs.m_value < double(rhs) || lhs == rhs; - } - - template ::value>::type> - friend bool operator >= ( T lhs, Approx const& rhs ) - { - return double(lhs) > rhs.m_value || lhs == rhs; - } - - template ::value>::type> - friend bool operator >= ( Approx const& lhs, T rhs ) - { - return lhs.m_value > double(rhs) || lhs == rhs; - } -#else - friend bool operator == ( double lhs, Approx const& rhs ) { - // Thanks to Richard Harris for his help refining this formula - bool relativeOK = std::fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( std::fabs(lhs), std::fabs(rhs.m_value) ) ); - if (relativeOK) { - return true; - } - return std::fabs(lhs - rhs.m_value) < rhs.m_margin; - } - - friend bool operator == ( Approx const& lhs, double rhs ) { - return operator==( rhs, lhs ); - } - - friend bool operator != ( double lhs, Approx const& rhs ) { - return !operator==( lhs, rhs ); - } - - friend bool operator != ( Approx const& lhs, double rhs ) { - return !operator==( rhs, lhs ); - } - - friend bool operator <= ( double lhs, Approx const& rhs ) - { - return lhs < rhs.m_value || lhs == rhs; - } - - friend bool operator <= ( Approx const& lhs, double rhs ) - { - return lhs.m_value < rhs || lhs == rhs; - } - - friend bool operator >= ( double lhs, Approx const& rhs ) - { - return lhs > rhs.m_value || lhs == rhs; - } - - friend bool operator >= ( Approx const& lhs, double rhs ) - { - return lhs.m_value > rhs || lhs == rhs; - } -#endif - - Approx& epsilon( double newEpsilon ) { - m_epsilon = newEpsilon; - return *this; - } - - Approx& margin( double newMargin ) { - m_margin = newMargin; - return *this; - } - - Approx& scale( double newScale ) { - m_scale = newScale; - return *this; - } - - std::string toString() const { - std::ostringstream oss; - oss << "Approx( " << Catch::toString( m_value ) << " )"; - return oss.str(); - } - - private: - double m_epsilon; - double m_margin; - double m_scale; - double m_value; - }; -} - -template<> -inline std::string toString( Detail::Approx const& value ) { - return value.toString(); -} - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_assertionresult.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_assertionresult.h deleted file mode 100644 index a193c55..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_assertionresult.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Created by Phil on 28/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED -#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED - -#include -#include "catch_result_type.h" - -namespace Catch { - - struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison; - - struct DecomposedExpression - { - virtual ~DecomposedExpression() {} - virtual bool isBinaryExpression() const { - return false; - } - virtual void reconstructExpression( std::string& dest ) const = 0; - - // Only simple binary comparisons can be decomposed. - // If more complex check is required then wrap sub-expressions in parentheses. - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator % ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( T const& ); - - private: - DecomposedExpression& operator = (DecomposedExpression const&); - }; - - struct AssertionInfo - { - AssertionInfo() {} - AssertionInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - std::string const& _capturedExpression, - ResultDisposition::Flags _resultDisposition ); - - std::string macroName; - SourceLineInfo lineInfo; - std::string capturedExpression; - ResultDisposition::Flags resultDisposition; - }; - - struct AssertionResultData - { - AssertionResultData() : decomposedExpression( CATCH_NULL ) - , resultType( ResultWas::Unknown ) - , negated( false ) - , parenthesized( false ) {} - - void negate( bool parenthesize ) { - negated = !negated; - parenthesized = parenthesize; - if( resultType == ResultWas::Ok ) - resultType = ResultWas::ExpressionFailed; - else if( resultType == ResultWas::ExpressionFailed ) - resultType = ResultWas::Ok; - } - - std::string const& reconstructExpression() const { - if( decomposedExpression != CATCH_NULL ) { - decomposedExpression->reconstructExpression( reconstructedExpression ); - if( parenthesized ) { - reconstructedExpression.insert( 0, 1, '(' ); - reconstructedExpression.append( 1, ')' ); - } - if( negated ) { - reconstructedExpression.insert( 0, 1, '!' ); - } - decomposedExpression = CATCH_NULL; - } - return reconstructedExpression; - } - - mutable DecomposedExpression const* decomposedExpression; - mutable std::string reconstructedExpression; - std::string message; - ResultWas::OfType resultType; - bool negated; - bool parenthesized; - }; - - class AssertionResult { - public: - AssertionResult(); - AssertionResult( AssertionInfo const& info, AssertionResultData const& data ); - ~AssertionResult(); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - AssertionResult( AssertionResult const& ) = default; - AssertionResult( AssertionResult && ) = default; - AssertionResult& operator = ( AssertionResult const& ) = default; - AssertionResult& operator = ( AssertionResult && ) = default; -# endif - - bool isOk() const; - bool succeeded() const; - ResultWas::OfType getResultType() const; - bool hasExpression() const; - bool hasMessage() const; - std::string getExpression() const; - std::string getExpressionInMacro() const; - bool hasExpandedExpression() const; - std::string getExpandedExpression() const; - std::string getMessage() const; - SourceLineInfo getSourceInfo() const; - std::string getTestMacroName() const; - void discardDecomposedExpression() const; - void expandDecomposedExpression() const; - - protected: - AssertionInfo m_info; - AssertionResultData m_resultData; - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_assertionresult.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_assertionresult.hpp deleted file mode 100644 index 9b63702..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_assertionresult.hpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Created by Phil on 8/8/12 - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED - -#include "catch_assertionresult.h" - -namespace Catch { - - - AssertionInfo::AssertionInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - std::string const& _capturedExpression, - ResultDisposition::Flags _resultDisposition ) - : macroName( _macroName ), - lineInfo( _lineInfo ), - capturedExpression( _capturedExpression ), - resultDisposition( _resultDisposition ) - {} - - AssertionResult::AssertionResult() {} - - AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data ) - : m_info( info ), - m_resultData( data ) - {} - - AssertionResult::~AssertionResult() {} - - // Result was a success - bool AssertionResult::succeeded() const { - return Catch::isOk( m_resultData.resultType ); - } - - // Result was a success, or failure is suppressed - bool AssertionResult::isOk() const { - return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition ); - } - - ResultWas::OfType AssertionResult::getResultType() const { - return m_resultData.resultType; - } - - bool AssertionResult::hasExpression() const { - return !m_info.capturedExpression.empty(); - } - - bool AssertionResult::hasMessage() const { - return !m_resultData.message.empty(); - } - - std::string AssertionResult::getExpression() const { - if( isFalseTest( m_info.resultDisposition ) ) - return '!' + m_info.capturedExpression; - else - return m_info.capturedExpression; - } - std::string AssertionResult::getExpressionInMacro() const { - if( m_info.macroName.empty() ) - return m_info.capturedExpression; - else - return m_info.macroName + "( " + m_info.capturedExpression + " )"; - } - - bool AssertionResult::hasExpandedExpression() const { - return hasExpression() && getExpandedExpression() != getExpression(); - } - - std::string AssertionResult::getExpandedExpression() const { - return m_resultData.reconstructExpression(); - } - - std::string AssertionResult::getMessage() const { - return m_resultData.message; - } - SourceLineInfo AssertionResult::getSourceInfo() const { - return m_info.lineInfo; - } - - std::string AssertionResult::getTestMacroName() const { - return m_info.macroName; - } - - void AssertionResult::discardDecomposedExpression() const { - m_resultData.decomposedExpression = CATCH_NULL; - } - - void AssertionResult::expandDecomposedExpression() const { - m_resultData.reconstructExpression(); - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_capture.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_capture.hpp deleted file mode 100644 index ef0fcc7..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_capture.hpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Created by Phil on 18/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED - -#include "catch_result_builder.h" -#include "catch_message.h" -#include "catch_interfaces_capture.h" -#include "catch_debugger.h" -#include "catch_common.h" -#include "catch_tostring.h" -#include "catch_interfaces_runner.h" -#include "catch_compiler_capabilities.h" -#include "catch_type_traits.hpp" - - -#if defined(CATCH_CONFIG_FAST_COMPILE) -/////////////////////////////////////////////////////////////////////////////// -// We can speedup compilation significantly by breaking into debugger lower in -// the callstack, because then we don't have to expand CATCH_BREAK_INTO_DEBUGGER -// macro in each assertion -#define INTERNAL_CATCH_REACT( resultBuilder ) \ - resultBuilder.react(); -#else -/////////////////////////////////////////////////////////////////////////////// -// In the event of a failure works out if the debugger needs to be invoked -// and/or an exception thrown and takes appropriate action. -// This needs to be done as a macro so the debugger will stop in the user -// source code rather than in Catch library code -#define INTERNAL_CATCH_REACT( resultBuilder ) \ - if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \ - resultBuilder.react(); -#endif - - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ - try { \ - CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ - ( __catchResult <= expr ).endExpression(); \ - CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::isTrue( false && static_cast( !!(expr) ) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look - // The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&. - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \ - INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \ - if( Catch::getResultCapture().getLastResult()->succeeded() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \ - INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \ - if( !Catch::getResultCapture().getLastResult()->succeeded() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ - try { \ - static_cast(expr); \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \ - if( __catchResult.allowThrows() ) \ - try { \ - static_cast(expr); \ - __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \ - } \ - catch( ... ) { \ - __catchResult.captureExpectedException( matcher ); \ - } \ - else \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr ", " #exceptionType, resultDisposition ); \ - if( __catchResult.allowThrows() ) \ - try { \ - static_cast(expr); \ - __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \ - } \ - catch( Catch::add_const::type>::type ) { \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - else \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - - -/////////////////////////////////////////////////////////////////////////////// -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \ - __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \ - __catchResult.captureResult( messageType ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) -#else - #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \ - __catchResult << log + ::Catch::StreamEndStop(); \ - __catchResult.captureResult( messageType ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) -#endif - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_INFO( log, macroName ) \ - Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log; - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \ - try { \ - __catchResult.captureMatch( arg, matcher, #matcher ); \ - } catch( ... ) { \ - __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -#endif // TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_clara.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_clara.h deleted file mode 100644 index bfe2f4b..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_clara.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Created by Phil on 10/2/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ -#ifndef TWOBLUECUBES_CATCH_CLARA_H_INCLUDED -#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED - -// Use Catch's value for console width (store Clara's off to the side, if present) -#ifdef CLARA_CONFIG_CONSOLE_WIDTH -#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH -#undef CLARA_CONFIG_CONSOLE_WIDTH -#endif -#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH - - -// Declare Clara inside the Catch namespace -#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch { -#include "../external/clara.h" -#undef STITCH_CLARA_OPEN_NAMESPACE - - -// Restore Clara's value for console width, if present -#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#endif - -#endif // TWOBLUECUBES_CATCH_CLARA_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_commandline.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_commandline.hpp deleted file mode 100644 index 742f01a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_commandline.hpp +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Created by Phil on 02/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED - -#include "catch_config.hpp" -#include "catch_common.h" -#include "catch_clara.h" - -#include -#include - -namespace Catch { - - inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; } - inline void abortAfterX( ConfigData& config, int x ) { - if( x < 1 ) - throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" ); - config.abortAfter = x; - } - inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); } - inline void addSectionToRun( ConfigData& config, std::string const& sectionName ) { config.sectionsToRun.push_back( sectionName ); } - inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); } - - inline void addWarning( ConfigData& config, std::string const& _warning ) { - if( _warning == "NoAssertions" ) - config.warnings = static_cast( config.warnings | WarnAbout::NoAssertions ); - else - throw std::runtime_error( "Unrecognised warning: '" + _warning + '\'' ); - } - inline void setOrder( ConfigData& config, std::string const& order ) { - if( startsWith( "declared", order ) ) - config.runOrder = RunTests::InDeclarationOrder; - else if( startsWith( "lexical", order ) ) - config.runOrder = RunTests::InLexicographicalOrder; - else if( startsWith( "random", order ) ) - config.runOrder = RunTests::InRandomOrder; - else - throw std::runtime_error( "Unrecognised ordering: '" + order + '\'' ); - } - inline void setRngSeed( ConfigData& config, std::string const& seed ) { - if( seed == "time" ) { - config.rngSeed = static_cast( std::time(0) ); - } - else { - std::stringstream ss; - ss << seed; - ss >> config.rngSeed; - if( ss.fail() ) - throw std::runtime_error( "Argument to --rng-seed should be the word 'time' or a number" ); - } - } - inline void setVerbosity( ConfigData& config, int level ) { - // !TBD: accept strings? - config.verbosity = static_cast( level ); - } - inline void setShowDurations( ConfigData& config, bool _showDurations ) { - config.showDurations = _showDurations - ? ShowDurations::Always - : ShowDurations::Never; - } - inline void setUseColour( ConfigData& config, std::string const& value ) { - std::string mode = toLower( value ); - - if( mode == "yes" ) - config.useColour = UseColour::Yes; - else if( mode == "no" ) - config.useColour = UseColour::No; - else if( mode == "auto" ) - config.useColour = UseColour::Auto; - else - throw std::runtime_error( "colour mode must be one of: auto, yes or no" ); - } - inline void forceColour( ConfigData& config ) { - config.useColour = UseColour::Yes; - } - inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) { - std::ifstream f( _filename.c_str() ); - if( !f.is_open() ) - throw std::domain_error( "Unable to load input file: " + _filename ); - - std::string line; - while( std::getline( f, line ) ) { - line = trim(line); - if( !line.empty() && !startsWith( line, '#' ) ) { - if( !startsWith( line, '"' ) ) - line = '"' + line + '"'; - addTestOrTags( config, line + ',' ); - } - } - } - - inline Clara::CommandLine makeCommandLineParser() { - - using namespace Clara; - CommandLine cli; - - cli.bindProcessName( &ConfigData::processName ); - - cli["-?"]["-h"]["--help"] - .describe( "display usage information" ) - .bind( &ConfigData::showHelp ); - - cli["-l"]["--list-tests"] - .describe( "list all/matching test cases" ) - .bind( &ConfigData::listTests ); - - cli["-t"]["--list-tags"] - .describe( "list all/matching tags" ) - .bind( &ConfigData::listTags ); - - cli["-s"]["--success"] - .describe( "include successful tests in output" ) - .bind( &ConfigData::showSuccessfulTests ); - - cli["-b"]["--break"] - .describe( "break into debugger on failure" ) - .bind( &ConfigData::shouldDebugBreak ); - - cli["-e"]["--nothrow"] - .describe( "skip exception tests" ) - .bind( &ConfigData::noThrow ); - - cli["-i"]["--invisibles"] - .describe( "show invisibles (tabs, newlines)" ) - .bind( &ConfigData::showInvisibles ); - - cli["-o"]["--out"] - .describe( "output filename" ) - .bind( &ConfigData::outputFilename, "filename" ); - - cli["-r"]["--reporter"] -// .placeholder( "name[:filename]" ) - .describe( "reporter to use (defaults to console)" ) - .bind( &addReporterName, "name" ); - - cli["-n"]["--name"] - .describe( "suite name" ) - .bind( &ConfigData::name, "name" ); - - cli["-a"]["--abort"] - .describe( "abort at first failure" ) - .bind( &abortAfterFirst ); - - cli["-x"]["--abortx"] - .describe( "abort after x failures" ) - .bind( &abortAfterX, "no. failures" ); - - cli["-w"]["--warn"] - .describe( "enable warnings" ) - .bind( &addWarning, "warning name" ); - -// - needs updating if reinstated -// cli.into( &setVerbosity ) -// .describe( "level of verbosity (0=no output)" ) -// .shortOpt( "v") -// .longOpt( "verbosity" ) -// .placeholder( "level" ); - - cli[_] - .describe( "which test or tests to use" ) - .bind( &addTestOrTags, "test name, pattern or tags" ); - - cli["-d"]["--durations"] - .describe( "show test durations" ) - .bind( &setShowDurations, "yes|no" ); - - cli["-f"]["--input-file"] - .describe( "load test names to run from a file" ) - .bind( &loadTestNamesFromFile, "filename" ); - - cli["-#"]["--filenames-as-tags"] - .describe( "adds a tag for the filename" ) - .bind( &ConfigData::filenamesAsTags ); - - cli["-c"]["--section"] - .describe( "specify section to run" ) - .bind( &addSectionToRun, "section name" ); - - // Less common commands which don't have a short form - cli["--list-test-names-only"] - .describe( "list all/matching test cases names only" ) - .bind( &ConfigData::listTestNamesOnly ); - - cli["--list-reporters"] - .describe( "list all reporters" ) - .bind( &ConfigData::listReporters ); - - cli["--order"] - .describe( "test case order (defaults to decl)" ) - .bind( &setOrder, "decl|lex|rand" ); - - cli["--rng-seed"] - .describe( "set a specific seed for random numbers" ) - .bind( &setRngSeed, "'time'|number" ); - - cli["--force-colour"] - .describe( "force colourised output (deprecated)" ) - .bind( &forceColour ); - - cli["--use-colour"] - .describe( "should output be colourised" ) - .bind( &setUseColour, "yes|no" ); - - return cli; - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_common.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_common.h deleted file mode 100644 index d325a08..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_common.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Created by Phil on 29/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_COMMON_H_INCLUDED -#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED - -#include "catch_compiler_capabilities.h" - -#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line -#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) -#ifdef CATCH_CONFIG_COUNTER -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) -#else -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) -#endif - -#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr -#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr ) - -#include -#include - -namespace Catch { - - struct IConfig; - - struct CaseSensitive { enum Choice { - Yes, - No - }; }; - - class NonCopyable { -#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - NonCopyable( NonCopyable const& ) = delete; - NonCopyable( NonCopyable && ) = delete; - NonCopyable& operator = ( NonCopyable const& ) = delete; - NonCopyable& operator = ( NonCopyable && ) = delete; -#else - NonCopyable( NonCopyable const& info ); - NonCopyable& operator = ( NonCopyable const& ); -#endif - - protected: - NonCopyable() {} - virtual ~NonCopyable(); - }; - - class SafeBool { - public: - typedef void (SafeBool::*type)() const; - - static type makeSafe( bool value ) { - return value ? &SafeBool::trueValue : 0; - } - private: - void trueValue() const {} - }; - - template - inline void deleteAll( ContainerT& container ) { - typename ContainerT::const_iterator it = container.begin(); - typename ContainerT::const_iterator itEnd = container.end(); - for(; it != itEnd; ++it ) - delete *it; - } - template - inline void deleteAllValues( AssociativeContainerT& container ) { - typename AssociativeContainerT::const_iterator it = container.begin(); - typename AssociativeContainerT::const_iterator itEnd = container.end(); - for(; it != itEnd; ++it ) - delete it->second; - } - - bool startsWith( std::string const& s, std::string const& prefix ); - bool startsWith( std::string const& s, char prefix ); - bool endsWith( std::string const& s, std::string const& suffix ); - bool endsWith( std::string const& s, char suffix ); - bool contains( std::string const& s, std::string const& infix ); - void toLowerInPlace( std::string& s ); - std::string toLower( std::string const& s ); - std::string trim( std::string const& str ); - bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ); - - struct pluralise { - pluralise( std::size_t count, std::string const& label ); - - friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ); - - std::size_t m_count; - std::string m_label; - }; - - struct SourceLineInfo { - - SourceLineInfo(); - SourceLineInfo( char const* _file, std::size_t _line ); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - SourceLineInfo(SourceLineInfo const& other) = default; - SourceLineInfo( SourceLineInfo && ) = default; - SourceLineInfo& operator = ( SourceLineInfo const& ) = default; - SourceLineInfo& operator = ( SourceLineInfo && ) = default; -# endif - bool empty() const; - bool operator == ( SourceLineInfo const& other ) const; - bool operator < ( SourceLineInfo const& other ) const; - - char const* file; - std::size_t line; - }; - - std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); - - // This is just here to avoid compiler warnings with macro constants and boolean literals - inline bool isTrue( bool value ){ return value; } - inline bool alwaysTrue() { return true; } - inline bool alwaysFalse() { return false; } - - void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ); - - void seedRng( IConfig const& config ); - unsigned int rngSeed(); - - // Use this in variadic streaming macros to allow - // >> +StreamEndStop - // as well as - // >> stuff +StreamEndStop - struct StreamEndStop { - std::string operator+() { - return std::string(); - } - }; - template - T const& operator + ( T const& value, StreamEndStop ) { - return value; - } -} - -#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) -#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO ); - -#endif // TWOBLUECUBES_CATCH_COMMON_H_INCLUDED - diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_common.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_common.hpp deleted file mode 100644 index 9f94377..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_common.hpp +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Created by Phil on 27/11/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED - -#include "catch_common.h" - -#include -#include - -namespace Catch { - - bool startsWith( std::string const& s, std::string const& prefix ) { - return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin()); - } - bool startsWith( std::string const& s, char prefix ) { - return !s.empty() && s[0] == prefix; - } - bool endsWith( std::string const& s, std::string const& suffix ) { - return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin()); - } - bool endsWith( std::string const& s, char suffix ) { - return !s.empty() && s[s.size()-1] == suffix; - } - bool contains( std::string const& s, std::string const& infix ) { - return s.find( infix ) != std::string::npos; - } - char toLowerCh(char c) { - return static_cast( std::tolower( c ) ); - } - void toLowerInPlace( std::string& s ) { - std::transform( s.begin(), s.end(), s.begin(), toLowerCh ); - } - std::string toLower( std::string const& s ) { - std::string lc = s; - toLowerInPlace( lc ); - return lc; - } - std::string trim( std::string const& str ) { - static char const* whitespaceChars = "\n\r\t "; - std::string::size_type start = str.find_first_not_of( whitespaceChars ); - std::string::size_type end = str.find_last_not_of( whitespaceChars ); - - return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string(); - } - - bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) { - bool replaced = false; - std::size_t i = str.find( replaceThis ); - while( i != std::string::npos ) { - replaced = true; - str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() ); - if( i < str.size()-withThis.size() ) - i = str.find( replaceThis, i+withThis.size() ); - else - i = std::string::npos; - } - return replaced; - } - - pluralise::pluralise( std::size_t count, std::string const& label ) - : m_count( count ), - m_label( label ) - {} - - std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) { - os << pluraliser.m_count << ' ' << pluraliser.m_label; - if( pluraliser.m_count != 1 ) - os << 's'; - return os; - } - - SourceLineInfo::SourceLineInfo() : file(""), line( 0 ){} - SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line ) - : file( _file ), - line( _line ) - {} - bool SourceLineInfo::empty() const { - return file[0] == '\0'; - } - bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const { - return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0); - } - bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const { - return line < other.line || ( line == other.line && (std::strcmp(file, other.file) < 0)); - } - - void seedRng( IConfig const& config ) { - if( config.rngSeed() != 0 ) - std::srand( config.rngSeed() ); - } - unsigned int rngSeed() { - return getCurrentContext().getConfig()->rngSeed(); - } - - std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) { -#ifndef __GNUG__ - os << info.file << '(' << info.line << ')'; -#else - os << info.file << ':' << info.line; -#endif - return os; - } - - void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) { - std::ostringstream oss; - oss << locationInfo << ": Internal Catch error: '" << message << '\''; - if( alwaysTrue() ) - throw std::logic_error( oss.str() ); - } -} - -#endif // TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED - diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_compiler_capabilities.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_compiler_capabilities.h deleted file mode 100644 index 735d3d4..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_compiler_capabilities.h +++ /dev/null @@ -1,313 +0,0 @@ -/* - * Created by Phil on 15/04/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED - -// Detect a number of compiler features - mostly C++11/14 conformance - by compiler -// The following features are defined: -// -// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported? -// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported? -// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods -// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported? -// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported -// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported? -// CATCH_CONFIG_CPP11_OVERRIDE : is override supported? -// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr) -// CATCH_CONFIG_CPP11_SHUFFLE : is std::shuffle supported? -// CATCH_CONFIG_CPP11_TYPE_TRAITS : are type_traits and enable_if supported? - -// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported? - -// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported? -// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? -// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? -// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported? -// **************** -// Note to maintainers: if new toggles are added please document them -// in configuration.md, too -// **************** - -// In general each macro has a _NO_ form -// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature. -// Many features, at point of detection, define an _INTERNAL_ macro, so they -// can be combined, en-mass, with the _NO_ forms later. - -// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11 - -#ifdef __cplusplus - -# if __cplusplus >= 201103L -# define CATCH_CPP11_OR_GREATER -# endif - -# if __cplusplus >= 201402L -# define CATCH_CPP14_OR_GREATER -# endif - -#endif - -#ifdef __clang__ - -# if __has_feature(cxx_nullptr) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# if __has_feature(cxx_noexcept) -# define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# endif - -# if defined(CATCH_CPP11_OR_GREATER) -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "clang diagnostic push" ) \ - _Pragma( "clang diagnostic ignored \"-Wparentheses\"" ) -# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "clang diagnostic pop" ) -# endif - -#endif // __clang__ - - -//////////////////////////////////////////////////////////////////////////////// -// Cygwin -#ifdef __CYGWIN__ - -# if !defined(CATCH_CONFIG_POSIX_SIGNALS) -# define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS -# endif - -// Required for some versions of Cygwin to declare gettimeofday -// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin -# define _BSD_SOURCE - -#endif // __CYGWIN__ - -//////////////////////////////////////////////////////////////////////////////// -// Borland -#ifdef __BORLANDC__ - - -#endif // __BORLANDC__ - -//////////////////////////////////////////////////////////////////////////////// -// EDG -#ifdef __EDG_VERSION__ - - -#endif // __EDG_VERSION__ - -//////////////////////////////////////////////////////////////////////////////// -// Digital Mars -#ifdef __DMC__ - - -#endif // __DMC__ - -//////////////////////////////////////////////////////////////////////////////// -// GCC -#ifdef __GNUC__ - -# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) -# define CATCH_GCC_HAS_NEW_PRAGMA -# endif - -# if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) && defined(CATCH_GCC_HAS_NEW_PRAGMA) -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "GCC diagnostic push" ) \ - _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" ) -# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "GCC diagnostic pop" ) -# endif - - - -// - otherwise more recent versions define __cplusplus >= 201103L -// and will get picked up below - - -#endif // __GNUC__ - -//////////////////////////////////////////////////////////////////////////////// -// Visual C++ -#ifdef _MSC_VER - -#define CATCH_INTERNAL_CONFIG_WINDOWS_SEH - -#if (_MSC_VER >= 1600) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) -#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE -#define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS -#endif - -#endif // _MSC_VER - -//////////////////////////////////////////////////////////////////////////////// - -// Use variadic macros if the compiler supports them -#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \ - ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \ - ( defined __GNUC__ && __GNUC__ >= 3 ) || \ - ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L ) - -#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS - -#endif - -// Use __COUNTER__ if the compiler supports it -#if ( defined _MSC_VER && _MSC_VER >= 1300 ) || \ - ( defined __GNUC__ && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 ) || \ - ( defined __clang__ && __clang_major__ >= 3 ) - -#define CATCH_INTERNAL_CONFIG_COUNTER - -#endif - -//////////////////////////////////////////////////////////////////////////////// -// C++ language feature support - -// catch all support for C++11 -#if defined(CATCH_CPP11_OR_GREATER) - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -# define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM -# define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE -# define CATCH_INTERNAL_CONFIG_CPP11_TUPLE -# endif - -# ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS -# define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS -# endif - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) -# define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG -# endif - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) -# define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE -# endif -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) -# define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -# endif -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) -# define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE -# endif -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) -# define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS -# endif - -#endif // __cplusplus >= 201103L - -// Now set the actual defines based on the above + anything the user has configured -#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_NULLPTR -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_NOEXCEPT -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_GENERATED_METHODS -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_IS_ENUM -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_TUPLE -#endif -#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS) -# define CATCH_CONFIG_VARIADIC_MACROS -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_LONG_LONG -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_OVERRIDE -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_UNIQUE_PTR -#endif -// Use of __COUNTER__ is suppressed if __JETBRAINS_IDE__ is #defined (meaning we're being parsed by a JetBrains IDE for -// analytics) because, at time of writing, __COUNTER__ is not properly handled by it. -// This does not affect compilation -#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) && !defined(__JETBRAINS_IDE__) -# define CATCH_CONFIG_COUNTER -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_SHUFFLE -#endif -# if defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_NO_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_TYPE_TRAITS -# endif -#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) -# define CATCH_CONFIG_WINDOWS_SEH -#endif -// This is set by default, because we assume that unix compilers are posix-signal-compatible by default. -#if !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS) -# define CATCH_CONFIG_POSIX_SIGNALS -#endif - -#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS -# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS -#endif - -// noexcept support: -#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT) -# define CATCH_NOEXCEPT noexcept -# define CATCH_NOEXCEPT_IS(x) noexcept(x) -#else -# define CATCH_NOEXCEPT throw() -# define CATCH_NOEXCEPT_IS(x) -#endif - -// nullptr support -#ifdef CATCH_CONFIG_CPP11_NULLPTR -# define CATCH_NULL nullptr -#else -# define CATCH_NULL NULL -#endif - -// override support -#ifdef CATCH_CONFIG_CPP11_OVERRIDE -# define CATCH_OVERRIDE override -#else -# define CATCH_OVERRIDE -#endif - -// unique_ptr support -#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR -# define CATCH_AUTO_PTR( T ) std::unique_ptr -#else -# define CATCH_AUTO_PTR( T ) std::auto_ptr -#endif - -#endif // TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED - diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_config.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_config.hpp deleted file mode 100644 index 174850b..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_config.hpp +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Created by Phil on 08/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED - -#include "catch_test_spec_parser.hpp" -#include "catch_context.h" -#include "catch_interfaces_config.h" -#include "catch_stream.h" - -#include -#include -#include -#include - -#ifndef CATCH_CONFIG_CONSOLE_WIDTH -#define CATCH_CONFIG_CONSOLE_WIDTH 80 -#endif - -namespace Catch { - - struct ConfigData { - - ConfigData() - : listTests( false ), - listTags( false ), - listReporters( false ), - listTestNamesOnly( false ), - showSuccessfulTests( false ), - shouldDebugBreak( false ), - noThrow( false ), - showHelp( false ), - showInvisibles( false ), - filenamesAsTags( false ), - abortAfter( -1 ), - rngSeed( 0 ), - verbosity( Verbosity::Normal ), - warnings( WarnAbout::Nothing ), - showDurations( ShowDurations::DefaultForReporter ), - runOrder( RunTests::InDeclarationOrder ), - useColour( UseColour::Auto ) - {} - - bool listTests; - bool listTags; - bool listReporters; - bool listTestNamesOnly; - - bool showSuccessfulTests; - bool shouldDebugBreak; - bool noThrow; - bool showHelp; - bool showInvisibles; - bool filenamesAsTags; - - int abortAfter; - unsigned int rngSeed; - - Verbosity::Level verbosity; - WarnAbout::What warnings; - ShowDurations::OrNot showDurations; - RunTests::InWhatOrder runOrder; - UseColour::YesOrNo useColour; - - std::string outputFilename; - std::string name; - std::string processName; - - std::vector reporterNames; - std::vector testsOrTags; - std::vector sectionsToRun; - }; - - - class Config : public SharedImpl { - private: - Config( Config const& other ); - Config& operator = ( Config const& other ); - virtual void dummy(); - public: - - Config() - {} - - Config( ConfigData const& data ) - : m_data( data ), - m_stream( openStream() ) - { - if( !data.testsOrTags.empty() ) { - TestSpecParser parser( ITagAliasRegistry::get() ); - for( std::size_t i = 0; i < data.testsOrTags.size(); ++i ) - parser.parse( data.testsOrTags[i] ); - m_testSpec = parser.testSpec(); - } - } - - virtual ~Config() {} - - std::string const& getFilename() const { - return m_data.outputFilename ; - } - - bool listTests() const { return m_data.listTests; } - bool listTestNamesOnly() const { return m_data.listTestNamesOnly; } - bool listTags() const { return m_data.listTags; } - bool listReporters() const { return m_data.listReporters; } - - std::string getProcessName() const { return m_data.processName; } - - std::vector const& getReporterNames() const { return m_data.reporterNames; } - std::vector const& getSectionsToRun() const CATCH_OVERRIDE { return m_data.sectionsToRun; } - - virtual TestSpec const& testSpec() const CATCH_OVERRIDE { return m_testSpec; } - - bool showHelp() const { return m_data.showHelp; } - - // IConfig interface - virtual bool allowThrows() const CATCH_OVERRIDE { return !m_data.noThrow; } - virtual std::ostream& stream() const CATCH_OVERRIDE { return m_stream->stream(); } - virtual std::string name() const CATCH_OVERRIDE { return m_data.name.empty() ? m_data.processName : m_data.name; } - virtual bool includeSuccessfulResults() const CATCH_OVERRIDE { return m_data.showSuccessfulTests; } - virtual bool warnAboutMissingAssertions() const CATCH_OVERRIDE { return m_data.warnings & WarnAbout::NoAssertions; } - virtual ShowDurations::OrNot showDurations() const CATCH_OVERRIDE { return m_data.showDurations; } - virtual RunTests::InWhatOrder runOrder() const CATCH_OVERRIDE { return m_data.runOrder; } - virtual unsigned int rngSeed() const CATCH_OVERRIDE { return m_data.rngSeed; } - virtual UseColour::YesOrNo useColour() const CATCH_OVERRIDE { return m_data.useColour; } - virtual bool shouldDebugBreak() const CATCH_OVERRIDE { return m_data.shouldDebugBreak; } - virtual int abortAfter() const CATCH_OVERRIDE { return m_data.abortAfter; } - virtual bool showInvisibles() const CATCH_OVERRIDE { return m_data.showInvisibles; } - - private: - - IStream const* openStream() { - if( m_data.outputFilename.empty() ) - return new CoutStream(); - else if( m_data.outputFilename[0] == '%' ) { - if( m_data.outputFilename == "%debug" ) - return new DebugOutStream(); - else - throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename ); - } - else - return new FileStream( m_data.outputFilename ); - } - ConfigData m_data; - - CATCH_AUTO_PTR( IStream const ) m_stream; - TestSpec m_testSpec; - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_console_colour.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_console_colour.hpp deleted file mode 100644 index f0a8a69..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_console_colour.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Created by Phil on 25/2/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED - -#include "catch_common.h" - -namespace Catch { - - struct Colour { - enum Code { - None = 0, - - White, - Red, - Green, - Blue, - Cyan, - Yellow, - Grey, - - Bright = 0x10, - - BrightRed = Bright | Red, - BrightGreen = Bright | Green, - LightGrey = Bright | Grey, - BrightWhite = Bright | White, - - // By intention - FileName = LightGrey, - Warning = Yellow, - ResultError = BrightRed, - ResultSuccess = BrightGreen, - ResultExpectedFailure = Warning, - - Error = BrightRed, - Success = Green, - - OriginalExpression = Cyan, - ReconstructedExpression = Yellow, - - SecondaryText = LightGrey, - Headers = White - }; - - // Use constructed object for RAII guard - Colour( Code _colourCode ); - Colour( Colour const& other ); - ~Colour(); - - // Use static method for one-shot changes - static void use( Code _colourCode ); - - private: - bool m_moved; - }; - - inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_console_colour_impl.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_console_colour_impl.hpp deleted file mode 100644 index ba2a9d1..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_console_colour_impl.hpp +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Created by Phil on 25/2/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED - -#include "catch_console_colour.hpp" - -namespace Catch { - namespace { - - struct IColourImpl { - virtual ~IColourImpl() {} - virtual void use( Colour::Code _colourCode ) = 0; - }; - - struct NoColourImpl : IColourImpl { - void use( Colour::Code ) {} - - static IColourImpl* instance() { - static NoColourImpl s_instance; - return &s_instance; - } - }; - - } // anon namespace -} // namespace Catch - -#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI ) -# ifdef CATCH_PLATFORM_WINDOWS -# define CATCH_CONFIG_COLOUR_WINDOWS -# else -# define CATCH_CONFIG_COLOUR_ANSI -# endif -#endif - - -#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) ///////////////////////////////////////// - -#include "catch_windows_h_proxy.h" - -namespace Catch { -namespace { - - class Win32ColourImpl : public IColourImpl { - public: - Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) ) - { - CONSOLE_SCREEN_BUFFER_INFO csbiInfo; - GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo ); - originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY ); - originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY ); - } - - virtual void use( Colour::Code _colourCode ) { - switch( _colourCode ) { - case Colour::None: return setTextAttribute( originalForegroundAttributes ); - case Colour::White: return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); - case Colour::Red: return setTextAttribute( FOREGROUND_RED ); - case Colour::Green: return setTextAttribute( FOREGROUND_GREEN ); - case Colour::Blue: return setTextAttribute( FOREGROUND_BLUE ); - case Colour::Cyan: return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN ); - case Colour::Yellow: return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN ); - case Colour::Grey: return setTextAttribute( 0 ); - - case Colour::LightGrey: return setTextAttribute( FOREGROUND_INTENSITY ); - case Colour::BrightRed: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED ); - case Colour::BrightGreen: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN ); - case Colour::BrightWhite: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); - - case Colour::Bright: throw std::logic_error( "not a colour" ); - } - } - - private: - void setTextAttribute( WORD _textAttribute ) { - SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes ); - } - HANDLE stdoutHandle; - WORD originalForegroundAttributes; - WORD originalBackgroundAttributes; - }; - - IColourImpl* platformColourInstance() { - static Win32ColourImpl s_instance; - - Ptr config = getCurrentContext().getConfig(); - UseColour::YesOrNo colourMode = config - ? config->useColour() - : UseColour::Auto; - if( colourMode == UseColour::Auto ) - colourMode = !isDebuggerActive() - ? UseColour::Yes - : UseColour::No; - return colourMode == UseColour::Yes - ? &s_instance - : NoColourImpl::instance(); - } - -} // end anon namespace -} // end namespace Catch - -#elif defined( CATCH_CONFIG_COLOUR_ANSI ) ////////////////////////////////////// - -#include - -namespace Catch { -namespace { - - // use POSIX/ ANSI console terminal codes - // Thanks to Adam Strzelecki for original contribution - // (http://github.com/nanoant) - // https://github.com/philsquared/Catch/pull/131 - class PosixColourImpl : public IColourImpl { - public: - virtual void use( Colour::Code _colourCode ) { - switch( _colourCode ) { - case Colour::None: - case Colour::White: return setColour( "[0m" ); - case Colour::Red: return setColour( "[0;31m" ); - case Colour::Green: return setColour( "[0;32m" ); - case Colour::Blue: return setColour( "[0;34m" ); - case Colour::Cyan: return setColour( "[0;36m" ); - case Colour::Yellow: return setColour( "[0;33m" ); - case Colour::Grey: return setColour( "[1;30m" ); - - case Colour::LightGrey: return setColour( "[0;37m" ); - case Colour::BrightRed: return setColour( "[1;31m" ); - case Colour::BrightGreen: return setColour( "[1;32m" ); - case Colour::BrightWhite: return setColour( "[1;37m" ); - - case Colour::Bright: throw std::logic_error( "not a colour" ); - } - } - static IColourImpl* instance() { - static PosixColourImpl s_instance; - return &s_instance; - } - - private: - void setColour( const char* _escapeCode ) { - Catch::cout() << '\033' << _escapeCode; - } - }; - - IColourImpl* platformColourInstance() { - Ptr config = getCurrentContext().getConfig(); - UseColour::YesOrNo colourMode = config - ? config->useColour() - : UseColour::Auto; - if( colourMode == UseColour::Auto ) - colourMode = (!isDebuggerActive() && isatty(STDOUT_FILENO) ) - ? UseColour::Yes - : UseColour::No; - return colourMode == UseColour::Yes - ? PosixColourImpl::instance() - : NoColourImpl::instance(); - } - -} // end anon namespace -} // end namespace Catch - -#else // not Windows or ANSI /////////////////////////////////////////////// - -namespace Catch { - - static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); } - -} // end namespace Catch - -#endif // Windows/ ANSI/ None - -namespace Catch { - - Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); } - Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast( _other ).m_moved = true; } - Colour::~Colour(){ if( !m_moved ) use( None ); } - - void Colour::use( Code _colourCode ) { - static IColourImpl* impl = platformColourInstance(); - impl->use( _colourCode ); - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_context.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_context.h deleted file mode 100644 index 8b68386..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_context.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Created by Phil on 31/12/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED -#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED - -#include "catch_interfaces_generators.h" -#include "catch_ptr.hpp" - - -namespace Catch { - - class TestCase; - class Stream; - struct IResultCapture; - struct IRunner; - struct IGeneratorsForTest; - struct IConfig; - - struct IContext - { - virtual ~IContext(); - - virtual IResultCapture* getResultCapture() = 0; - virtual IRunner* getRunner() = 0; - virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0; - virtual bool advanceGeneratorsForCurrentTest() = 0; - virtual Ptr getConfig() const = 0; - }; - - struct IMutableContext : IContext - { - virtual ~IMutableContext(); - virtual void setResultCapture( IResultCapture* resultCapture ) = 0; - virtual void setRunner( IRunner* runner ) = 0; - virtual void setConfig( Ptr const& config ) = 0; - }; - - IContext& getCurrentContext(); - IMutableContext& getCurrentMutableContext(); - void cleanUpContext(); - Stream createStream( std::string const& streamName ); - -} - -#endif // TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_context_impl.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_context_impl.hpp deleted file mode 100644 index 8516ad9..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_context_impl.hpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Created by Phil on 31/12/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED - -#include "catch_run_context.hpp" - -#include "catch_context.h" -#include "catch_stream.hpp" -#include "catch_common.h" - -namespace Catch { - - class Context : public IMutableContext { - - Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {} - Context( Context const& ); - void operator=( Context const& ); - - public: - virtual ~Context() { - deleteAllValues( m_generatorsByTestName ); - } - - public: // IContext - virtual IResultCapture* getResultCapture() { - return m_resultCapture; - } - virtual IRunner* getRunner() { - return m_runner; - } - virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) { - return getGeneratorsForCurrentTest() - .getGeneratorInfo( fileInfo, totalSize ) - .getCurrentIndex(); - } - virtual bool advanceGeneratorsForCurrentTest() { - IGeneratorsForTest* generators = findGeneratorsForCurrentTest(); - return generators && generators->moveNext(); - } - - virtual Ptr getConfig() const { - return m_config; - } - - public: // IMutableContext - virtual void setResultCapture( IResultCapture* resultCapture ) { - m_resultCapture = resultCapture; - } - virtual void setRunner( IRunner* runner ) { - m_runner = runner; - } - virtual void setConfig( Ptr const& config ) { - m_config = config; - } - - friend IMutableContext& getCurrentMutableContext(); - - private: - IGeneratorsForTest* findGeneratorsForCurrentTest() { - std::string testName = getResultCapture()->getCurrentTestName(); - - std::map::const_iterator it = - m_generatorsByTestName.find( testName ); - return it != m_generatorsByTestName.end() - ? it->second - : CATCH_NULL; - } - - IGeneratorsForTest& getGeneratorsForCurrentTest() { - IGeneratorsForTest* generators = findGeneratorsForCurrentTest(); - if( !generators ) { - std::string testName = getResultCapture()->getCurrentTestName(); - generators = createGeneratorsForTest(); - m_generatorsByTestName.insert( std::make_pair( testName, generators ) ); - } - return *generators; - } - - private: - Ptr m_config; - IRunner* m_runner; - IResultCapture* m_resultCapture; - std::map m_generatorsByTestName; - }; - - namespace { - Context* currentContext = CATCH_NULL; - } - IMutableContext& getCurrentMutableContext() { - if( !currentContext ) - currentContext = new Context(); - return *currentContext; - } - IContext& getCurrentContext() { - return getCurrentMutableContext(); - } - - void cleanUpContext() { - delete currentContext; - currentContext = CATCH_NULL; - } -} - -#endif // TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_debugger.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_debugger.h deleted file mode 100644 index 15a4c64..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_debugger.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Created by Phil on 3/12/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ -#ifndef TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED -#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED - -#include "catch_platform.h" - -#include - -namespace Catch{ - - bool isDebuggerActive(); - void writeToDebugConsole( std::string const& text ); -} - -#ifdef CATCH_PLATFORM_MAC - - // The following code snippet based on: - // http://cocoawithlove.com/2008/03/break-into-debugger.html - #if defined(__ppc64__) || defined(__ppc__) - #define CATCH_TRAP() \ - __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \ - : : : "memory","r0","r3","r4" ) - #else - #define CATCH_TRAP() __asm__("int $3\n" : : ) - #endif - -#elif defined(CATCH_PLATFORM_LINUX) - // If we can use inline assembler, do it because this allows us to break - // directly at the location of the failing check instead of breaking inside - // raise() called from it, i.e. one stack frame below. - #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64)) - #define CATCH_TRAP() asm volatile ("int $3") - #else // Fall back to the generic way. - #include - - #define CATCH_TRAP() raise(SIGTRAP) - #endif -#elif defined(_MSC_VER) - #define CATCH_TRAP() __debugbreak() -#elif defined(__MINGW32__) - extern "C" __declspec(dllimport) void __stdcall DebugBreak(); - #define CATCH_TRAP() DebugBreak() -#endif - -#ifdef CATCH_TRAP - #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { CATCH_TRAP(); } -#else - #define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue(); -#endif - -#endif // TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_debugger.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_debugger.hpp deleted file mode 100644 index 47daf8a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_debugger.hpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Created by Phil on 27/12/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ -#ifndef TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED - -#include "catch_debugger.h" - -#ifdef CATCH_PLATFORM_MAC - - #include - #include - #include - #include - #include - - namespace Catch{ - - // The following function is taken directly from the following technical note: - // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html - - // Returns true if the current process is being debugged (either - // running under the debugger or has a debugger attached post facto). - bool isDebuggerActive(){ - - int mib[4]; - struct kinfo_proc info; - size_t size; - - // Initialize the flags so that, if sysctl fails for some bizarre - // reason, we get a predictable result. - - info.kp_proc.p_flag = 0; - - // Initialize mib, which tells sysctl the info we want, in this case - // we're looking for information about a specific process ID. - - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_PID; - mib[3] = getpid(); - - // Call sysctl. - - size = sizeof(info); - if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) { - Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl; - return false; - } - - // We're being debugged if the P_TRACED flag is set. - - return ( (info.kp_proc.p_flag & P_TRACED) != 0 ); - } - } // namespace Catch - -#elif defined(CATCH_PLATFORM_LINUX) - #include - #include - - namespace Catch{ - // The standard POSIX way of detecting a debugger is to attempt to - // ptrace() the process, but this needs to be done from a child and not - // this process itself to still allow attaching to this process later - // if wanted, so is rather heavy. Under Linux we have the PID of the - // "debugger" (which doesn't need to be gdb, of course, it could also - // be strace, for example) in /proc/$PID/status, so just get it from - // there instead. - bool isDebuggerActive(){ - std::ifstream in("/proc/self/status"); - for( std::string line; std::getline(in, line); ) { - static const int PREFIX_LEN = 11; - if( line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0 ) { - // We're traced if the PID is not 0 and no other PID starts - // with 0 digit, so it's enough to check for just a single - // character. - return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0'; - } - } - - return false; - } - } // namespace Catch -#elif defined(_MSC_VER) - extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); - namespace Catch { - bool isDebuggerActive() { - return IsDebuggerPresent() != 0; - } - } -#elif defined(__MINGW32__) - extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); - namespace Catch { - bool isDebuggerActive() { - return IsDebuggerPresent() != 0; - } - } -#else - namespace Catch { - inline bool isDebuggerActive() { return false; } - } -#endif // Platform - -#ifdef CATCH_PLATFORM_WINDOWS - -#include "catch_windows_h_proxy.h" - - namespace Catch { - void writeToDebugConsole( std::string const& text ) { - ::OutputDebugStringA( text.c_str() ); - } - } -#else - namespace Catch { - void writeToDebugConsole( std::string const& text ) { - // !TBD: Need a version for Mac/ XCode and other IDEs - Catch::cout() << text; - } - } -#endif // Platform - -#endif // TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_default_main.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_default_main.hpp deleted file mode 100644 index a0c4239..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_default_main.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Created by Phil on 20/05/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED - -#ifndef __OBJC__ - -// Standard C/C++ main entry point -int main (int argc, char * argv[]) { - int result = Catch::Session().run( argc, argv ); - return ( result < 0xff ? result : 0xff ); -} - -#else // __OBJC__ - -// Objective-C entry point -int main (int argc, char * const argv[]) { -#if !CATCH_ARC_ENABLED - NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; -#endif - - Catch::registerTestMethods(); - int result = Catch::Session().run( argc, (char* const*)argv ); - -#if !CATCH_ARC_ENABLED - [pool drain]; -#endif - - return ( result < 0xff ? result : 0xff ); -} - -#endif // __OBJC__ - -#endif // TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_evaluate.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_evaluate.hpp deleted file mode 100644 index 87fcc17..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_evaluate.hpp +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Created by Phil on 04/03/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4389) // '==' : signed/unsigned mismatch -#pragma warning(disable:4312) // Converting int to T* using reinterpret_cast (issue on x64 platform) -#endif - -#include - -namespace Catch { -namespace Internal { - - enum Operator { - IsEqualTo, - IsNotEqualTo, - IsLessThan, - IsGreaterThan, - IsLessThanOrEqualTo, - IsGreaterThanOrEqualTo - }; - - template struct OperatorTraits { static const char* getName(){ return "*error*"; } }; - template<> struct OperatorTraits { static const char* getName(){ return "=="; } }; - template<> struct OperatorTraits { static const char* getName(){ return "!="; } }; - template<> struct OperatorTraits { static const char* getName(){ return "<"; } }; - template<> struct OperatorTraits { static const char* getName(){ return ">"; } }; - template<> struct OperatorTraits { static const char* getName(){ return "<="; } }; - template<> struct OperatorTraits{ static const char* getName(){ return ">="; } }; - - template - inline T& opCast(T const& t) { return const_cast(t); } - -// nullptr_t support based on pull request #154 from Konstantin Baumann -#ifdef CATCH_CONFIG_CPP11_NULLPTR - inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; } -#endif // CATCH_CONFIG_CPP11_NULLPTR - - - // So the compare overloads can be operator agnostic we convey the operator as a template - // enum, which is used to specialise an Evaluator for doing the comparison. - template - class Evaluator{}; - - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs) { - return bool( opCast( lhs ) == opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) != opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) < opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) > opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) >= opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) <= opCast( rhs ) ); - } - }; - - template - bool applyEvaluator( T1 const& lhs, T2 const& rhs ) { - return Evaluator::evaluate( lhs, rhs ); - } - - // This level of indirection allows us to specialise for integer types - // to avoid signed/ unsigned warnings - - // "base" overload - template - bool compare( T1 const& lhs, T2 const& rhs ) { - return Evaluator::evaluate( lhs, rhs ); - } - - // unsigned X to int - template bool compare( unsigned int lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned long lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned char lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - - // unsigned X to long - template bool compare( unsigned int lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned long lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned char lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - - // int to unsigned X - template bool compare( int lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( int lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( int lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // long to unsigned X - template bool compare( long lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // pointer to long (when comparing against NULL) - template bool compare( long lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, long rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } - - // pointer to int (when comparing against NULL) - template bool compare( int lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, int rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG - // long long to unsigned X - template bool compare( long long lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned long long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // unsigned long long to X - template bool compare( unsigned long long lhs, int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, long long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // pointer to long long (when comparing against NULL) - template bool compare( long long lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, long long rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } -#endif // CATCH_CONFIG_CPP11_LONG_LONG - -#ifdef CATCH_CONFIG_CPP11_NULLPTR - // pointer to nullptr_t (when comparing against nullptr) - template bool compare( std::nullptr_t, T* rhs ) { - return Evaluator::evaluate( nullptr, rhs ); - } - template bool compare( T* lhs, std::nullptr_t ) { - return Evaluator::evaluate( lhs, nullptr ); - } -#endif // CATCH_CONFIG_CPP11_NULLPTR - -} // end of namespace Internal -} // end of namespace Catch - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -#endif // TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_exception_translator_registry.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_exception_translator_registry.hpp deleted file mode 100644 index c4bdb40..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_exception_translator_registry.hpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Created by Phil on 20/04/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED - -#include "catch_interfaces_exception.h" -#include "catch_tostring.h" - -#ifdef __OBJC__ -#import "Foundation/Foundation.h" -#endif - -namespace Catch { - - class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry { - public: - ~ExceptionTranslatorRegistry() { - deleteAll( m_translators ); - } - - virtual void registerTranslator( const IExceptionTranslator* translator ) { - m_translators.push_back( translator ); - } - - virtual std::string translateActiveException() const { - try { -#ifdef __OBJC__ - // In Objective-C try objective-c exceptions first - @try { - return tryTranslators(); - } - @catch (NSException *exception) { - return Catch::toString( [exception description] ); - } -#else - return tryTranslators(); -#endif - } - catch( TestFailureException& ) { - throw; - } - catch( std::exception& ex ) { - return ex.what(); - } - catch( std::string& msg ) { - return msg; - } - catch( const char* msg ) { - return msg; - } - catch(...) { - return "Unknown exception"; - } - } - - std::string tryTranslators() const { - if( m_translators.empty() ) - throw; - else - return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() ); - } - - private: - std::vector m_translators; - }; -} - -#endif // TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_expression_lhs.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_expression_lhs.hpp deleted file mode 100644 index 106a6b0..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_expression_lhs.hpp +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Created by Phil on 11/5/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED - -#include "catch_result_builder.h" -#include "catch_evaluate.hpp" -#include "catch_tostring.h" - -namespace Catch { - -template -class BinaryExpression; - -template -class MatchExpression; - -// Wraps the LHS of an expression and overloads comparison operators -// for also capturing those and RHS (if any) -template -class ExpressionLhs : public DecomposedExpression { -public: - ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ), m_truthy(false) {} - - ExpressionLhs& operator = ( const ExpressionLhs& ); - - template - BinaryExpression - operator == ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator != ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator < ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator > ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator <= ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator >= ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - BinaryExpression operator == ( bool rhs ) { - return captureExpression( rhs ); - } - - BinaryExpression operator != ( bool rhs ) { - return captureExpression( rhs ); - } - - void endExpression() { - m_truthy = m_lhs ? true : false; - m_rb - .setResultType( m_truthy ) - .endExpression( *this ); - } - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE { - dest = Catch::toString( m_truthy ); - } - -private: - template - BinaryExpression captureExpression( RhsT& rhs ) const { - return BinaryExpression( m_rb, m_lhs, rhs ); - } - - template - BinaryExpression captureExpression( bool rhs ) const { - return BinaryExpression( m_rb, m_lhs, rhs ); - } - -private: - ResultBuilder& m_rb; - T m_lhs; - bool m_truthy; -}; - -template -class BinaryExpression : public DecomposedExpression { -public: - BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs ) - : m_rb( rb ), m_lhs( lhs ), m_rhs( rhs ) {} - - BinaryExpression& operator = ( BinaryExpression& ); - - void endExpression() const { - m_rb - .setResultType( Internal::compare( m_lhs, m_rhs ) ) - .endExpression( *this ); - } - - virtual bool isBinaryExpression() const CATCH_OVERRIDE { - return true; - } - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE { - std::string lhs = Catch::toString( m_lhs ); - std::string rhs = Catch::toString( m_rhs ); - char delim = lhs.size() + rhs.size() < 40 && - lhs.find('\n') == std::string::npos && - rhs.find('\n') == std::string::npos ? ' ' : '\n'; - dest.reserve( 7 + lhs.size() + rhs.size() ); - // 2 for spaces around operator - // 2 for operator - // 2 for parentheses (conditionally added later) - // 1 for negation (conditionally added later) - dest = lhs; - dest += delim; - dest += Internal::OperatorTraits::getName(); - dest += delim; - dest += rhs; - } - -private: - ResultBuilder& m_rb; - LhsT m_lhs; - RhsT m_rhs; -}; - -template -class MatchExpression : public DecomposedExpression { -public: - MatchExpression( ArgT arg, MatcherT matcher, char const* matcherString ) - : m_arg( arg ), m_matcher( matcher ), m_matcherString( matcherString ) {} - - virtual bool isBinaryExpression() const CATCH_OVERRIDE { - return true; - } - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE { - std::string matcherAsString = m_matcher.toString(); - dest = Catch::toString( m_arg ); - dest += ' '; - if( matcherAsString == Detail::unprintableString ) - dest += m_matcherString; - else - dest += matcherAsString; - } - -private: - ArgT m_arg; - MatcherT m_matcher; - char const* m_matcherString; -}; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_fatal_condition.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_fatal_condition.hpp deleted file mode 100644 index 1d6674f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_fatal_condition.hpp +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Created by Phil on 21/08/2014 - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ -#ifndef TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED -#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED - - -namespace Catch { - - // Report the error condition - inline void reportFatal( std::string const& message ) { - IContext& context = Catch::getCurrentContext(); - IResultCapture* resultCapture = context.getResultCapture(); - resultCapture->handleFatalErrorCondition( message ); - } - -} // namespace Catch - -#if defined ( CATCH_PLATFORM_WINDOWS ) ///////////////////////////////////////// -#include "catch_windows_h_proxy.h" - -# if !defined ( CATCH_CONFIG_WINDOWS_SEH ) - -namespace Catch { - struct FatalConditionHandler { - void reset() {} - }; -} - -# else // CATCH_CONFIG_WINDOWS_SEH is defined - -namespace Catch { - - struct SignalDefs { DWORD id; const char* name; }; - extern SignalDefs signalDefs[]; - // There is no 1-1 mapping between signals and windows exceptions. - // Windows can easily distinguish between SO and SigSegV, - // but SigInt, SigTerm, etc are handled differently. - SignalDefs signalDefs[] = { - { EXCEPTION_ILLEGAL_INSTRUCTION, "SIGILL - Illegal instruction signal" }, - { EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow" }, - { EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal" }, - { EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error" }, - }; - - struct FatalConditionHandler { - - static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) { - for (int i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) { - if (ExceptionInfo->ExceptionRecord->ExceptionCode == signalDefs[i].id) { - reportFatal(signalDefs[i].name); - } - } - // If its not an exception we care about, pass it along. - // This stops us from eating debugger breaks etc. - return EXCEPTION_CONTINUE_SEARCH; - } - - FatalConditionHandler() { - isSet = true; - // 32k seems enough for Catch to handle stack overflow, - // but the value was found experimentally, so there is no strong guarantee - guaranteeSize = 32 * 1024; - exceptionHandlerHandle = CATCH_NULL; - // Register as first handler in current chain - exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException); - // Pass in guarantee size to be filled - SetThreadStackGuarantee(&guaranteeSize); - } - - static void reset() { - if (isSet) { - // Unregister handler and restore the old guarantee - RemoveVectoredExceptionHandler(exceptionHandlerHandle); - SetThreadStackGuarantee(&guaranteeSize); - exceptionHandlerHandle = CATCH_NULL; - isSet = false; - } - } - - ~FatalConditionHandler() { - reset(); - } - private: - static bool isSet; - static ULONG guaranteeSize; - static PVOID exceptionHandlerHandle; - }; - - bool FatalConditionHandler::isSet = false; - ULONG FatalConditionHandler::guaranteeSize = 0; - PVOID FatalConditionHandler::exceptionHandlerHandle = CATCH_NULL; - -} // namespace Catch - -# endif // CATCH_CONFIG_WINDOWS_SEH - -#else // Not Windows - assumed to be POSIX compatible ////////////////////////// - -# if !defined(CATCH_CONFIG_POSIX_SIGNALS) - -namespace Catch { - struct FatalConditionHandler { - void reset() {} - }; -} - - -# else // CATCH_CONFIG_POSIX_SIGNALS is defined - -#include - -namespace Catch { - - struct SignalDefs { - int id; - const char* name; - }; - extern SignalDefs signalDefs[]; - SignalDefs signalDefs[] = { - { SIGINT, "SIGINT - Terminal interrupt signal" }, - { SIGILL, "SIGILL - Illegal instruction signal" }, - { SIGFPE, "SIGFPE - Floating point error signal" }, - { SIGSEGV, "SIGSEGV - Segmentation violation signal" }, - { SIGTERM, "SIGTERM - Termination request signal" }, - { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" } - }; - - struct FatalConditionHandler { - - static bool isSet; - static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)]; - static stack_t oldSigStack; - static char altStackMem[SIGSTKSZ]; - - static void handleSignal( int sig ) { - std::string name = ""; - for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) { - SignalDefs &def = signalDefs[i]; - if (sig == def.id) { - name = def.name; - break; - } - } - reset(); - reportFatal(name); - raise( sig ); - } - - FatalConditionHandler() { - isSet = true; - stack_t sigStack; - sigStack.ss_sp = altStackMem; - sigStack.ss_size = SIGSTKSZ; - sigStack.ss_flags = 0; - sigaltstack(&sigStack, &oldSigStack); - struct sigaction sa = { 0 }; - - sa.sa_handler = handleSignal; - sa.sa_flags = SA_ONSTACK; - for (std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i) { - sigaction(signalDefs[i].id, &sa, &oldSigActions[i]); - } - } - - - ~FatalConditionHandler() { - reset(); - } - static void reset() { - if( isSet ) { - // Set signals back to previous values -- hopefully nobody overwrote them in the meantime - for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) { - sigaction(signalDefs[i].id, &oldSigActions[i], CATCH_NULL); - } - // Return the old stack - sigaltstack(&oldSigStack, CATCH_NULL); - isSet = false; - } - } - }; - - bool FatalConditionHandler::isSet = false; - struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {}; - stack_t FatalConditionHandler::oldSigStack = {}; - char FatalConditionHandler::altStackMem[SIGSTKSZ] = {}; - - -} // namespace Catch - -# endif // CATCH_CONFIG_POSIX_SIGNALS - -#endif // not Windows - -#endif // TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_generators.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_generators.hpp deleted file mode 100644 index 84eb22f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_generators.hpp +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Created by Phil on 27/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED - -#include "catch_context.h" - -#include -#include -#include -#include - -namespace Catch { - -template -struct IGenerator { - virtual ~IGenerator() {} - virtual T getValue( std::size_t index ) const = 0; - virtual std::size_t size () const = 0; -}; - -template -class BetweenGenerator : public IGenerator { -public: - BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){} - - virtual T getValue( std::size_t index ) const { - return m_from+static_cast( index ); - } - - virtual std::size_t size() const { - return static_cast( 1+m_to-m_from ); - } - -private: - - T m_from; - T m_to; -}; - -template -class ValuesGenerator : public IGenerator { -public: - ValuesGenerator(){} - - void add( T value ) { - m_values.push_back( value ); - } - - virtual T getValue( std::size_t index ) const { - return m_values[index]; - } - - virtual std::size_t size() const { - return m_values.size(); - } - -private: - std::vector m_values; -}; - -template -class CompositeGenerator { -public: - CompositeGenerator() : m_totalSize( 0 ) {} - - // *** Move semantics, similar to auto_ptr *** - CompositeGenerator( CompositeGenerator& other ) - : m_fileInfo( other.m_fileInfo ), - m_totalSize( 0 ) - { - move( other ); - } - - CompositeGenerator& setFileInfo( const char* fileInfo ) { - m_fileInfo = fileInfo; - return *this; - } - - ~CompositeGenerator() { - deleteAll( m_composed ); - } - - operator T () const { - size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize ); - - typename std::vector*>::const_iterator it = m_composed.begin(); - typename std::vector*>::const_iterator itEnd = m_composed.end(); - for( size_t index = 0; it != itEnd; ++it ) - { - const IGenerator* generator = *it; - if( overallIndex >= index && overallIndex < index + generator->size() ) - { - return generator->getValue( overallIndex-index ); - } - index += generator->size(); - } - CATCH_INTERNAL_ERROR( "Indexed past end of generated range" ); - return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so - } - - void add( const IGenerator* generator ) { - m_totalSize += generator->size(); - m_composed.push_back( generator ); - } - - CompositeGenerator& then( CompositeGenerator& other ) { - move( other ); - return *this; - } - - CompositeGenerator& then( T value ) { - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( value ); - add( valuesGen ); - return *this; - } - -private: - - void move( CompositeGenerator& other ) { - std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) ); - m_totalSize += other.m_totalSize; - other.m_composed.clear(); - } - - std::vector*> m_composed; - std::string m_fileInfo; - size_t m_totalSize; -}; - -namespace Generators -{ - template - CompositeGenerator between( T from, T to ) { - CompositeGenerator generators; - generators.add( new BetweenGenerator( from, to ) ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2 ) { - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - generators.add( valuesGen ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2, T val3 ){ - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - valuesGen->add( val3 ); - generators.add( valuesGen ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2, T val3, T val4 ) { - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - valuesGen->add( val3 ); - valuesGen->add( val4 ); - generators.add( valuesGen ); - return generators; - } - -} // end namespace Generators - -using namespace Generators; - -} // end namespace Catch - -#define INTERNAL_CATCH_LINESTR2( line ) #line -#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line ) - -#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" ) - -#endif // TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_generators_impl.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_generators_impl.hpp deleted file mode 100644 index fea699a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_generators_impl.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Created by Phil on 28/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED - -#include "catch_interfaces_generators.h" - -#include "catch_common.h" - -#include -#include -#include - -namespace Catch { - - struct GeneratorInfo : IGeneratorInfo { - - GeneratorInfo( std::size_t size ) - : m_size( size ), - m_currentIndex( 0 ) - {} - - bool moveNext() { - if( ++m_currentIndex == m_size ) { - m_currentIndex = 0; - return false; - } - return true; - } - - std::size_t getCurrentIndex() const { - return m_currentIndex; - } - - std::size_t m_size; - std::size_t m_currentIndex; - }; - - /////////////////////////////////////////////////////////////////////////// - - class GeneratorsForTest : public IGeneratorsForTest { - - public: - ~GeneratorsForTest() { - deleteAll( m_generatorsInOrder ); - } - - IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) { - std::map::const_iterator it = m_generatorsByName.find( fileInfo ); - if( it == m_generatorsByName.end() ) { - IGeneratorInfo* info = new GeneratorInfo( size ); - m_generatorsByName.insert( std::make_pair( fileInfo, info ) ); - m_generatorsInOrder.push_back( info ); - return *info; - } - return *it->second; - } - - bool moveNext() { - std::vector::const_iterator it = m_generatorsInOrder.begin(); - std::vector::const_iterator itEnd = m_generatorsInOrder.end(); - for(; it != itEnd; ++it ) { - if( (*it)->moveNext() ) - return true; - } - return false; - } - - private: - std::map m_generatorsByName; - std::vector m_generatorsInOrder; - }; - - IGeneratorsForTest* createGeneratorsForTest() - { - return new GeneratorsForTest(); - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_impl.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_impl.hpp deleted file mode 100644 index 3886136..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_impl.hpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Created by Phil on 5/8/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED - -// Collect all the implementation files together here -// These are the equivalent of what would usually be cpp files - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wweak-vtables" -#endif - -#include "../catch_session.hpp" -#include "catch_registry_hub.hpp" -#include "catch_notimplemented_exception.hpp" -#include "catch_context_impl.hpp" -#include "catch_console_colour_impl.hpp" -#include "catch_generators_impl.hpp" -#include "catch_assertionresult.hpp" -#include "catch_test_case_info.hpp" -#include "catch_test_spec.hpp" -#include "catch_version.hpp" -#include "catch_message.hpp" -#include "catch_legacy_reporter_adapter.hpp" -#include "catch_timer.hpp" -#include "catch_common.hpp" -#include "catch_section.hpp" -#include "catch_debugger.hpp" -#include "catch_tostring.hpp" -#include "catch_result_builder.hpp" -#include "catch_tag_alias_registry.hpp" -#include "catch_test_case_tracker.hpp" -#include "catch_matchers_string.hpp" - -#include "../reporters/catch_reporter_multi.hpp" -#include "../reporters/catch_reporter_xml.hpp" -#include "../reporters/catch_reporter_junit.hpp" -#include "../reporters/catch_reporter_console.hpp" -#include "../reporters/catch_reporter_compact.hpp" - -namespace Catch { - // These are all here to avoid warnings about not having any out of line - // virtual methods - NonCopyable::~NonCopyable() {} - IShared::~IShared() {} - IStream::~IStream() CATCH_NOEXCEPT {} - FileStream::~FileStream() CATCH_NOEXCEPT {} - CoutStream::~CoutStream() CATCH_NOEXCEPT {} - DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {} - StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {} - IContext::~IContext() {} - IResultCapture::~IResultCapture() {} - ITestCase::~ITestCase() {} - ITestCaseRegistry::~ITestCaseRegistry() {} - IRegistryHub::~IRegistryHub() {} - IMutableRegistryHub::~IMutableRegistryHub() {} - IExceptionTranslator::~IExceptionTranslator() {} - IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {} - IReporter::~IReporter() {} - IReporterFactory::~IReporterFactory() {} - IReporterRegistry::~IReporterRegistry() {} - IStreamingReporter::~IStreamingReporter() {} - AssertionStats::~AssertionStats() {} - SectionStats::~SectionStats() {} - TestCaseStats::~TestCaseStats() {} - TestGroupStats::~TestGroupStats() {} - TestRunStats::~TestRunStats() {} - CumulativeReporterBase::SectionNode::~SectionNode() {} - CumulativeReporterBase::~CumulativeReporterBase() {} - - StreamingReporterBase::~StreamingReporterBase() {} - ConsoleReporter::~ConsoleReporter() {} - CompactReporter::~CompactReporter() {} - IRunner::~IRunner() {} - IMutableContext::~IMutableContext() {} - IConfig::~IConfig() {} - XmlReporter::~XmlReporter() {} - JunitReporter::~JunitReporter() {} - TestRegistry::~TestRegistry() {} - FreeFunctionTestCase::~FreeFunctionTestCase() {} - IGeneratorInfo::~IGeneratorInfo() {} - IGeneratorsForTest::~IGeneratorsForTest() {} - WildcardPattern::~WildcardPattern() {} - TestSpec::Pattern::~Pattern() {} - TestSpec::NamePattern::~NamePattern() {} - TestSpec::TagPattern::~TagPattern() {} - TestSpec::ExcludedPattern::~ExcludedPattern() {} - - void Config::dummy() {} - - namespace TestCaseTracking { - ITracker::~ITracker() {} - TrackerBase::~TrackerBase() {} - SectionTracker::~SectionTracker() {} - IndexTracker::~IndexTracker() {} - } -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif // TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_capture.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_capture.h deleted file mode 100644 index b7b6e32..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_capture.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Created by Phil on 07/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED - -#include -#include "catch_result_type.h" -#include "catch_common.h" - -namespace Catch { - - class TestCase; - class AssertionResult; - struct AssertionInfo; - struct SectionInfo; - struct SectionEndInfo; - struct MessageInfo; - class ScopedMessageBuilder; - struct Counts; - - struct IResultCapture { - - virtual ~IResultCapture(); - - virtual void assertionEnded( AssertionResult const& result ) = 0; - virtual bool sectionStarted( SectionInfo const& sectionInfo, - Counts& assertions ) = 0; - virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0; - virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0; - virtual void pushScopedMessage( MessageInfo const& message ) = 0; - virtual void popScopedMessage( MessageInfo const& message ) = 0; - - virtual std::string getCurrentTestName() const = 0; - virtual const AssertionResult* getLastResult() const = 0; - - virtual void handleFatalErrorCondition( std::string const& message ) = 0; - }; - - IResultCapture& getResultCapture(); -} - -#endif // TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_config.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_config.h deleted file mode 100644 index 5730a8c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_config.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Created by Phil on 05/06/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED - -#include -#include -#include - -#include "catch_ptr.hpp" - -namespace Catch { - - struct Verbosity { enum Level { - NoOutput = 0, - Quiet, - Normal - }; }; - - struct WarnAbout { enum What { - Nothing = 0x00, - NoAssertions = 0x01 - }; }; - - struct ShowDurations { enum OrNot { - DefaultForReporter, - Always, - Never - }; }; - struct RunTests { enum InWhatOrder { - InDeclarationOrder, - InLexicographicalOrder, - InRandomOrder - }; }; - struct UseColour { enum YesOrNo { - Auto, - Yes, - No - }; }; - - class TestSpec; - - struct IConfig : IShared { - - virtual ~IConfig(); - - virtual bool allowThrows() const = 0; - virtual std::ostream& stream() const = 0; - virtual std::string name() const = 0; - virtual bool includeSuccessfulResults() const = 0; - virtual bool shouldDebugBreak() const = 0; - virtual bool warnAboutMissingAssertions() const = 0; - virtual int abortAfter() const = 0; - virtual bool showInvisibles() const = 0; - virtual ShowDurations::OrNot showDurations() const = 0; - virtual TestSpec const& testSpec() const = 0; - virtual RunTests::InWhatOrder runOrder() const = 0; - virtual unsigned int rngSeed() const = 0; - virtual UseColour::YesOrNo useColour() const = 0; - virtual std::vector const& getSectionsToRun() const = 0; - - }; -} - -#endif // TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_exception.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_exception.h deleted file mode 100644 index bf29b71..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_exception.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Created by Phil on 20/04/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED - -#include -#include - -#include "catch_interfaces_registry_hub.h" - -namespace Catch { - - typedef std::string(*exceptionTranslateFunction)(); - - struct IExceptionTranslator; - typedef std::vector ExceptionTranslators; - - struct IExceptionTranslator { - virtual ~IExceptionTranslator(); - virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0; - }; - - struct IExceptionTranslatorRegistry { - virtual ~IExceptionTranslatorRegistry(); - - virtual std::string translateActiveException() const = 0; - }; - - class ExceptionTranslatorRegistrar { - template - class ExceptionTranslator : public IExceptionTranslator { - public: - - ExceptionTranslator( std::string(*translateFunction)( T& ) ) - : m_translateFunction( translateFunction ) - {} - - virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE { - try { - if( it == itEnd ) - throw; - else - return (*it)->translate( it+1, itEnd ); - } - catch( T& ex ) { - return m_translateFunction( ex ); - } - } - - protected: - std::string(*m_translateFunction)( T& ); - }; - - public: - template - ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) { - getMutableRegistryHub().registerTranslator - ( new ExceptionTranslator( translateFunction ) ); - } - }; -} - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \ - static std::string translatorName( signature ); \ - namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); }\ - static std::string translatorName( signature ) - -#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature ) - -#endif // TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_generators.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_generators.h deleted file mode 100644 index d163d5a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_generators.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Created by Phil on 7/8/2012. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED - -#include - -namespace Catch { - - struct IGeneratorInfo { - virtual ~IGeneratorInfo(); - virtual bool moveNext() = 0; - virtual std::size_t getCurrentIndex() const = 0; - }; - - struct IGeneratorsForTest { - virtual ~IGeneratorsForTest(); - - virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0; - virtual bool moveNext() = 0; - }; - - IGeneratorsForTest* createGeneratorsForTest(); - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_registry_hub.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_registry_hub.h deleted file mode 100644 index ec06ca2..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_registry_hub.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Created by Phil on 5/8/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED - -#include "catch_ptr.hpp" - -#include - -namespace Catch { - - class TestCase; - struct ITestCaseRegistry; - struct IExceptionTranslatorRegistry; - struct IExceptionTranslator; - struct IReporterRegistry; - struct IReporterFactory; - - struct IRegistryHub { - virtual ~IRegistryHub(); - - virtual IReporterRegistry const& getReporterRegistry() const = 0; - virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0; - virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0; - }; - - struct IMutableRegistryHub { - virtual ~IMutableRegistryHub(); - virtual void registerReporter( std::string const& name, Ptr const& factory ) = 0; - virtual void registerListener( Ptr const& factory ) = 0; - virtual void registerTest( TestCase const& testInfo ) = 0; - virtual void registerTranslator( const IExceptionTranslator* translator ) = 0; - }; - - IRegistryHub& getRegistryHub(); - IMutableRegistryHub& getMutableRegistryHub(); - void cleanUp(); - std::string translateActiveException(); - -} - -#endif // TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_reporter.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_reporter.h deleted file mode 100644 index 6c47d8e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_reporter.h +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Created by Phil on 31/12/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED - -#include "catch_section_info.h" -#include "catch_common.h" -#include "catch_totals.hpp" -#include "catch_ptr.hpp" -#include "catch_config.hpp" -#include "catch_test_case_info.h" -#include "catch_assertionresult.h" -#include "catch_message.h" -#include "catch_option.hpp" - -#include -#include -#include - -namespace Catch -{ - struct ReporterConfig { - explicit ReporterConfig( Ptr const& _fullConfig ) - : m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {} - - ReporterConfig( Ptr const& _fullConfig, std::ostream& _stream ) - : m_stream( &_stream ), m_fullConfig( _fullConfig ) {} - - std::ostream& stream() const { return *m_stream; } - Ptr fullConfig() const { return m_fullConfig; } - - private: - std::ostream* m_stream; - Ptr m_fullConfig; - }; - - struct ReporterPreferences { - ReporterPreferences() - : shouldRedirectStdOut( false ) - {} - - bool shouldRedirectStdOut; - }; - - template - struct LazyStat : Option { - LazyStat() : used( false ) {} - LazyStat& operator=( T const& _value ) { - Option::operator=( _value ); - used = false; - return *this; - } - void reset() { - Option::reset(); - used = false; - } - bool used; - }; - - struct TestRunInfo { - TestRunInfo( std::string const& _name ) : name( _name ) {} - std::string name; - }; - struct GroupInfo { - GroupInfo( std::string const& _name, - std::size_t _groupIndex, - std::size_t _groupsCount ) - : name( _name ), - groupIndex( _groupIndex ), - groupsCounts( _groupsCount ) - {} - - std::string name; - std::size_t groupIndex; - std::size_t groupsCounts; - }; - - struct AssertionStats { - AssertionStats( AssertionResult const& _assertionResult, - std::vector const& _infoMessages, - Totals const& _totals ) - : assertionResult( _assertionResult ), - infoMessages( _infoMessages ), - totals( _totals ) - { - if( assertionResult.hasMessage() ) { - // Copy message into messages list. - // !TBD This should have been done earlier, somewhere - MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() ); - builder << assertionResult.getMessage(); - builder.m_info.message = builder.m_stream.str(); - - infoMessages.push_back( builder.m_info ); - } - } - virtual ~AssertionStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - AssertionStats( AssertionStats const& ) = default; - AssertionStats( AssertionStats && ) = default; - AssertionStats& operator = ( AssertionStats const& ) = default; - AssertionStats& operator = ( AssertionStats && ) = default; -# endif - - AssertionResult assertionResult; - std::vector infoMessages; - Totals totals; - }; - - struct SectionStats { - SectionStats( SectionInfo const& _sectionInfo, - Counts const& _assertions, - double _durationInSeconds, - bool _missingAssertions ) - : sectionInfo( _sectionInfo ), - assertions( _assertions ), - durationInSeconds( _durationInSeconds ), - missingAssertions( _missingAssertions ) - {} - virtual ~SectionStats(); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - SectionStats( SectionStats const& ) = default; - SectionStats( SectionStats && ) = default; - SectionStats& operator = ( SectionStats const& ) = default; - SectionStats& operator = ( SectionStats && ) = default; -# endif - - SectionInfo sectionInfo; - Counts assertions; - double durationInSeconds; - bool missingAssertions; - }; - - struct TestCaseStats { - TestCaseStats( TestCaseInfo const& _testInfo, - Totals const& _totals, - std::string const& _stdOut, - std::string const& _stdErr, - bool _aborting ) - : testInfo( _testInfo ), - totals( _totals ), - stdOut( _stdOut ), - stdErr( _stdErr ), - aborting( _aborting ) - {} - virtual ~TestCaseStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestCaseStats( TestCaseStats const& ) = default; - TestCaseStats( TestCaseStats && ) = default; - TestCaseStats& operator = ( TestCaseStats const& ) = default; - TestCaseStats& operator = ( TestCaseStats && ) = default; -# endif - - TestCaseInfo testInfo; - Totals totals; - std::string stdOut; - std::string stdErr; - bool aborting; - }; - - struct TestGroupStats { - TestGroupStats( GroupInfo const& _groupInfo, - Totals const& _totals, - bool _aborting ) - : groupInfo( _groupInfo ), - totals( _totals ), - aborting( _aborting ) - {} - TestGroupStats( GroupInfo const& _groupInfo ) - : groupInfo( _groupInfo ), - aborting( false ) - {} - virtual ~TestGroupStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestGroupStats( TestGroupStats const& ) = default; - TestGroupStats( TestGroupStats && ) = default; - TestGroupStats& operator = ( TestGroupStats const& ) = default; - TestGroupStats& operator = ( TestGroupStats && ) = default; -# endif - - GroupInfo groupInfo; - Totals totals; - bool aborting; - }; - - struct TestRunStats { - TestRunStats( TestRunInfo const& _runInfo, - Totals const& _totals, - bool _aborting ) - : runInfo( _runInfo ), - totals( _totals ), - aborting( _aborting ) - {} - virtual ~TestRunStats(); - -# ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestRunStats( TestRunStats const& _other ) - : runInfo( _other.runInfo ), - totals( _other.totals ), - aborting( _other.aborting ) - {} -# else - TestRunStats( TestRunStats const& ) = default; - TestRunStats( TestRunStats && ) = default; - TestRunStats& operator = ( TestRunStats const& ) = default; - TestRunStats& operator = ( TestRunStats && ) = default; -# endif - - TestRunInfo runInfo; - Totals totals; - bool aborting; - }; - - class MultipleReporters; - - struct IStreamingReporter : IShared { - virtual ~IStreamingReporter(); - - // Implementing class must also provide the following static method: - // static std::string getDescription(); - - virtual ReporterPreferences getPreferences() const = 0; - - virtual void noMatchingTestCases( std::string const& spec ) = 0; - - virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0; - virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0; - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0; - virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0; - - virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0; - - // The return value indicates if the messages buffer should be cleared: - virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0; - - virtual void sectionEnded( SectionStats const& sectionStats ) = 0; - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0; - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0; - virtual void testRunEnded( TestRunStats const& testRunStats ) = 0; - - virtual void skipTest( TestCaseInfo const& testInfo ) = 0; - - virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; } - }; - - - struct IReporterFactory : IShared { - virtual ~IReporterFactory(); - virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0; - virtual std::string getDescription() const = 0; - }; - - struct IReporterRegistry { - typedef std::map > FactoryMap; - typedef std::vector > Listeners; - - virtual ~IReporterRegistry(); - virtual IStreamingReporter* create( std::string const& name, Ptr const& config ) const = 0; - virtual FactoryMap const& getFactories() const = 0; - virtual Listeners const& getListeners() const = 0; - }; - - Ptr addReporter( Ptr const& existingReporter, Ptr const& additionalReporter ); - -} - -#endif // TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_runner.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_runner.h deleted file mode 100644 index 25decfb..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_runner.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Created by Phil on 07/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED - -namespace Catch { - class TestCase; - - struct IRunner { - virtual ~IRunner(); - virtual bool aborting() const = 0; - }; -} - -#endif // TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_tag_alias_registry.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_tag_alias_registry.h deleted file mode 100644 index cd6ac51..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_tag_alias_registry.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Created by Phil on 27/6/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED - -#include "catch_tag_alias.h" -#include "catch_option.hpp" - -namespace Catch { - - struct ITagAliasRegistry { - virtual ~ITagAliasRegistry(); - virtual Option find( std::string const& alias ) const = 0; - virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0; - - static ITagAliasRegistry const& get(); - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_testcase.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_testcase.h deleted file mode 100644 index a1052b7..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_interfaces_testcase.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Created by Phil on 07/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED -#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED - -#include "catch_ptr.hpp" - -#include - -namespace Catch { - - class TestSpec; - - struct ITestCase : IShared { - virtual void invoke () const = 0; - protected: - virtual ~ITestCase(); - }; - - class TestCase; - struct IConfig; - - struct ITestCaseRegistry { - virtual ~ITestCaseRegistry(); - virtual std::vector const& getAllTests() const = 0; - virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0; - }; - - bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); - std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ); - std::vector const& getAllTestCasesSorted( IConfig const& config ); - -} - -#endif // TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_legacy_reporter_adapter.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_legacy_reporter_adapter.h deleted file mode 100644 index 72c43d7..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_legacy_reporter_adapter.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Created by Phil on 6th April 2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED -#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED - -#include "catch_interfaces_reporter.h" - -namespace Catch -{ - // Deprecated - struct IReporter : IShared { - virtual ~IReporter(); - - virtual bool shouldRedirectStdout() const = 0; - - virtual void StartTesting() = 0; - virtual void EndTesting( Totals const& totals ) = 0; - virtual void StartGroup( std::string const& groupName ) = 0; - virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0; - virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0; - virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0; - virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0; - virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0; - virtual void NoAssertionsInSection( std::string const& sectionName ) = 0; - virtual void NoAssertionsInTestCase( std::string const& testName ) = 0; - virtual void Aborted() = 0; - virtual void Result( AssertionResult const& result ) = 0; - }; - - class LegacyReporterAdapter : public SharedImpl - { - public: - LegacyReporterAdapter( Ptr const& legacyReporter ); - virtual ~LegacyReporterAdapter(); - - virtual ReporterPreferences getPreferences() const; - virtual void noMatchingTestCases( std::string const& ); - virtual void testRunStarting( TestRunInfo const& ); - virtual void testGroupStarting( GroupInfo const& groupInfo ); - virtual void testCaseStarting( TestCaseInfo const& testInfo ); - virtual void sectionStarting( SectionInfo const& sectionInfo ); - virtual void assertionStarting( AssertionInfo const& ); - virtual bool assertionEnded( AssertionStats const& assertionStats ); - virtual void sectionEnded( SectionStats const& sectionStats ); - virtual void testCaseEnded( TestCaseStats const& testCaseStats ); - virtual void testGroupEnded( TestGroupStats const& testGroupStats ); - virtual void testRunEnded( TestRunStats const& testRunStats ); - virtual void skipTest( TestCaseInfo const& ); - - private: - Ptr m_legacyReporter; - }; -} - -#endif // TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_legacy_reporter_adapter.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_legacy_reporter_adapter.hpp deleted file mode 100644 index 6034581..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_legacy_reporter_adapter.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Created by Phil on 6th April 2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED - -#include "catch_legacy_reporter_adapter.h" - -namespace Catch -{ - LegacyReporterAdapter::LegacyReporterAdapter( Ptr const& legacyReporter ) - : m_legacyReporter( legacyReporter ) - {} - LegacyReporterAdapter::~LegacyReporterAdapter() {} - - ReporterPreferences LegacyReporterAdapter::getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout(); - return prefs; - } - - void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {} - void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) { - m_legacyReporter->StartTesting(); - } - void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) { - m_legacyReporter->StartGroup( groupInfo.name ); - } - void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) { - m_legacyReporter->StartTestCase( testInfo ); - } - void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) { - m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description ); - } - void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) { - // Not on legacy interface - } - - bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) { - if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) { - for( std::vector::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); - it != itEnd; - ++it ) { - if( it->type == ResultWas::Info ) { - ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal ); - rb << it->message; - rb.setResultType( ResultWas::Info ); - AssertionResult result = rb.build(); - m_legacyReporter->Result( result ); - } - } - } - m_legacyReporter->Result( assertionStats.assertionResult ); - return true; - } - void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) { - if( sectionStats.missingAssertions ) - m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name ); - m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions ); - } - void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) { - m_legacyReporter->EndTestCase - ( testCaseStats.testInfo, - testCaseStats.totals, - testCaseStats.stdOut, - testCaseStats.stdErr ); - } - void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) { - if( testGroupStats.aborting ) - m_legacyReporter->Aborted(); - m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals ); - } - void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) { - m_legacyReporter->EndTesting( testRunStats.totals ); - } - void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) { - } -} - -#endif // TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_list.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_list.hpp deleted file mode 100644 index e09898e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_list.hpp +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Created by Phil on 5/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED - -#include "catch_commandline.hpp" -#include "catch_text.h" -#include "catch_console_colour.hpp" -#include "catch_interfaces_reporter.h" -#include "catch_test_spec_parser.hpp" - -#include -#include - -namespace Catch { - - inline std::size_t listTests( Config const& config ) { - - TestSpec testSpec = config.testSpec(); - if( config.testSpec().hasFilters() ) - Catch::cout() << "Matching test cases:\n"; - else { - Catch::cout() << "All available test cases:\n"; - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - } - - std::size_t matchedTests = 0; - TextAttributes nameAttr, tagsAttr; - nameAttr.setInitialIndent( 2 ).setIndent( 4 ); - tagsAttr.setIndent( 6 ); - - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - matchedTests++; - TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); - Colour::Code colour = testCaseInfo.isHidden() - ? Colour::SecondaryText - : Colour::None; - Colour colourGuard( colour ); - - Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl; - if( !testCaseInfo.tags.empty() ) - Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl; - } - - if( !config.testSpec().hasFilters() ) - Catch::cout() << pluralise( matchedTests, "test case" ) << '\n' << std::endl; - else - Catch::cout() << pluralise( matchedTests, "matching test case" ) << '\n' << std::endl; - return matchedTests; - } - - inline std::size_t listTestsNamesOnly( Config const& config ) { - TestSpec testSpec = config.testSpec(); - if( !config.testSpec().hasFilters() ) - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - std::size_t matchedTests = 0; - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - matchedTests++; - TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); - if( startsWith( testCaseInfo.name, '#' ) ) - Catch::cout() << '"' << testCaseInfo.name << '"' << std::endl; - else - Catch::cout() << testCaseInfo.name << std::endl; - } - return matchedTests; - } - - struct TagInfo { - TagInfo() : count ( 0 ) {} - void add( std::string const& spelling ) { - ++count; - spellings.insert( spelling ); - } - std::string all() const { - std::string out; - for( std::set::const_iterator it = spellings.begin(), itEnd = spellings.end(); - it != itEnd; - ++it ) - out += "[" + *it + "]"; - return out; - } - std::set spellings; - std::size_t count; - }; - - inline std::size_t listTags( Config const& config ) { - TestSpec testSpec = config.testSpec(); - if( config.testSpec().hasFilters() ) - Catch::cout() << "Tags for matching test cases:\n"; - else { - Catch::cout() << "All available tags:\n"; - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - } - - std::map tagCounts; - - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - for( std::set::const_iterator tagIt = it->getTestCaseInfo().tags.begin(), - tagItEnd = it->getTestCaseInfo().tags.end(); - tagIt != tagItEnd; - ++tagIt ) { - std::string tagName = *tagIt; - std::string lcaseTagName = toLower( tagName ); - std::map::iterator countIt = tagCounts.find( lcaseTagName ); - if( countIt == tagCounts.end() ) - countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first; - countIt->second.add( tagName ); - } - } - - for( std::map::const_iterator countIt = tagCounts.begin(), - countItEnd = tagCounts.end(); - countIt != countItEnd; - ++countIt ) { - std::ostringstream oss; - oss << " " << std::setw(2) << countIt->second.count << " "; - Text wrapper( countIt->second.all(), TextAttributes() - .setInitialIndent( 0 ) - .setIndent( oss.str().size() ) - .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) ); - Catch::cout() << oss.str() << wrapper << '\n'; - } - Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl; - return tagCounts.size(); - } - - inline std::size_t listReporters( Config const& /*config*/ ) { - Catch::cout() << "Available reporters:\n"; - IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); - IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it; - std::size_t maxNameLen = 0; - for(it = itBegin; it != itEnd; ++it ) - maxNameLen = (std::max)( maxNameLen, it->first.size() ); - - for(it = itBegin; it != itEnd; ++it ) { - Text wrapper( it->second->getDescription(), TextAttributes() - .setInitialIndent( 0 ) - .setIndent( 7+maxNameLen ) - .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) ); - Catch::cout() << " " - << it->first - << ':' - << std::string( maxNameLen - it->first.size() + 2, ' ' ) - << wrapper << '\n'; - } - Catch::cout() << std::endl; - return factories.size(); - } - - inline Option list( Config const& config ) { - Option listedCount; - if( config.listTests() ) - listedCount = listedCount.valueOr(0) + listTests( config ); - if( config.listTestNamesOnly() ) - listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config ); - if( config.listTags() ) - listedCount = listedCount.valueOr(0) + listTags( config ); - if( config.listReporters() ) - listedCount = listedCount.valueOr(0) + listReporters( config ); - return listedCount; - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers.hpp deleted file mode 100644 index de7d64c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers.hpp +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Created by Phil Nash on 04/03/2012. - * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED - -#include "catch_common.h" - -namespace Catch { -namespace Matchers { - namespace Impl { - - template struct MatchAllOf; - template struct MatchAnyOf; - template struct MatchNotOf; - - class MatcherUntypedBase { - public: - std::string toString() const { - if( m_cachedToString.empty() ) - m_cachedToString = describe(); - return m_cachedToString; - } - - protected: - virtual std::string describe() const = 0; - mutable std::string m_cachedToString; - private: - MatcherUntypedBase& operator = ( MatcherUntypedBase const& ); - }; - - template - struct MatcherBase : MatcherUntypedBase { - - virtual bool match( ObjectT const& arg ) const = 0; - - MatchAllOf operator && ( MatcherBase const& other ) const; - MatchAnyOf operator || ( MatcherBase const& other ) const; - MatchNotOf operator ! () const; - }; - - template - struct MatchAllOf : MatcherBase { - virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE { - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if (!m_matchers[i]->match(arg)) - return false; - } - return true; - } - virtual std::string describe() const CATCH_OVERRIDE { - std::string description; - description.reserve( 4 + m_matchers.size()*32 ); - description += "( "; - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if( i != 0 ) - description += " and "; - description += m_matchers[i]->toString(); - } - description += " )"; - return description; - } - - MatchAllOf& operator && ( MatcherBase const& other ) { - m_matchers.push_back( &other ); - return *this; - } - - std::vector const*> m_matchers; - }; - template - struct MatchAnyOf : MatcherBase { - - virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE { - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if (m_matchers[i]->match(arg)) - return true; - } - return false; - } - virtual std::string describe() const CATCH_OVERRIDE { - std::string description; - description.reserve( 4 + m_matchers.size()*32 ); - description += "( "; - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if( i != 0 ) - description += " or "; - description += m_matchers[i]->toString(); - } - description += " )"; - return description; - } - - MatchAnyOf& operator || ( MatcherBase const& other ) { - m_matchers.push_back( &other ); - return *this; - } - - std::vector const*> m_matchers; - }; - - template - struct MatchNotOf : MatcherBase { - - MatchNotOf( MatcherBase const& underlyingMatcher ) : m_underlyingMatcher( underlyingMatcher ) {} - - virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE { - return !m_underlyingMatcher.match( arg ); - } - - virtual std::string describe() const CATCH_OVERRIDE { - return "not " + m_underlyingMatcher.toString(); - } - MatcherBase const& m_underlyingMatcher; - }; - - template - MatchAllOf MatcherBase::operator && ( MatcherBase const& other ) const { - return MatchAllOf() && *this && other; - } - template - MatchAnyOf MatcherBase::operator || ( MatcherBase const& other ) const { - return MatchAnyOf() || *this || other; - } - template - MatchNotOf MatcherBase::operator ! () const { - return MatchNotOf( *this ); - } - - } // namespace Impl - - - // The following functions create the actual matcher objects. - // This allows the types to be inferred - // - deprecated: prefer ||, && and ! - template - inline Impl::MatchNotOf Not( Impl::MatcherBase const& underlyingMatcher ) { - return Impl::MatchNotOf( underlyingMatcher ); - } - template - inline Impl::MatchAllOf AllOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2 ) { - return Impl::MatchAllOf() && m1 && m2; - } - template - inline Impl::MatchAllOf AllOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2, Impl::MatcherBase const& m3 ) { - return Impl::MatchAllOf() && m1 && m2 && m3; - } - template - inline Impl::MatchAnyOf AnyOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2 ) { - return Impl::MatchAnyOf() || m1 || m2; - } - template - inline Impl::MatchAnyOf AnyOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2, Impl::MatcherBase const& m3 ) { - return Impl::MatchAnyOf() || m1 || m2 || m3; - } - -} // namespace Matchers - -using namespace Matchers; -using Matchers::Impl::MatcherBase; - -} // namespace Catch - -#endif // TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_string.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_string.h deleted file mode 100644 index 2a6d3ba..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_string.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Created by Phil Nash on 08/02/2017. - * Copyright (c) 2017 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED -#define TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED - -#include "catch_matchers.hpp" - -namespace Catch { -namespace Matchers { - - namespace StdString { - - struct CasedString - { - CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity ); - std::string adjustString( std::string const& str ) const; - std::string caseSensitivitySuffix() const; - - CaseSensitive::Choice m_caseSensitivity; - std::string m_str; - }; - - struct StringMatcherBase : MatcherBase { - StringMatcherBase( std::string operation, CasedString const& comparator ); - virtual std::string describe() const CATCH_OVERRIDE; - - CasedString m_comparator; - std::string m_operation; - }; - - struct EqualsMatcher : StringMatcherBase { - EqualsMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - struct ContainsMatcher : StringMatcherBase { - ContainsMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - struct StartsWithMatcher : StringMatcherBase { - StartsWithMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - struct EndsWithMatcher : StringMatcherBase { - EndsWithMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - - } // namespace StdString - - - // The following functions create the actual matcher objects. - // This allows the types to be inferred - - StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - -} // namespace Matchers -} // namespace Catch - -#endif // TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_string.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_string.hpp deleted file mode 100644 index 107d8e2..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_string.hpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Created by Phil Nash on 08/02/2017. - * Copyright (c) 2017 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch_matchers.hpp" - -namespace Catch { -namespace Matchers { - - namespace StdString { - - CasedString::CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity ) - : m_caseSensitivity( caseSensitivity ), - m_str( adjustString( str ) ) - {} - std::string CasedString::adjustString( std::string const& str ) const { - return m_caseSensitivity == CaseSensitive::No - ? toLower( str ) - : str; - } - std::string CasedString::caseSensitivitySuffix() const { - return m_caseSensitivity == CaseSensitive::No - ? " (case insensitive)" - : std::string(); - } - - - StringMatcherBase::StringMatcherBase( std::string operation, CasedString const& comparator ) - : m_comparator( comparator ), - m_operation( operation ) { - } - - std::string StringMatcherBase::describe() const { - std::string description; - description.reserve(5 + m_operation.size() + m_comparator.m_str.size() + - m_comparator.caseSensitivitySuffix().size()); - description += m_operation; - description += ": \""; - description += m_comparator.m_str; - description += "\""; - description += m_comparator.caseSensitivitySuffix(); - return description; - } - - EqualsMatcher::EqualsMatcher( CasedString const& comparator ) : StringMatcherBase( "equals", comparator ) {} - - bool EqualsMatcher::match( std::string const& source ) const { - return m_comparator.adjustString( source ) == m_comparator.m_str; - } - - - ContainsMatcher::ContainsMatcher( CasedString const& comparator ) : StringMatcherBase( "contains", comparator ) {} - - bool ContainsMatcher::match( std::string const& source ) const { - return contains( m_comparator.adjustString( source ), m_comparator.m_str ); - } - - - StartsWithMatcher::StartsWithMatcher( CasedString const& comparator ) : StringMatcherBase( "starts with", comparator ) {} - - bool StartsWithMatcher::match( std::string const& source ) const { - return startsWith( m_comparator.adjustString( source ), m_comparator.m_str ); - } - - - EndsWithMatcher::EndsWithMatcher( CasedString const& comparator ) : StringMatcherBase( "ends with", comparator ) {} - - bool EndsWithMatcher::match( std::string const& source ) const { - return endsWith( m_comparator.adjustString( source ), m_comparator.m_str ); - } - - } // namespace StdString - - - StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::EqualsMatcher( StdString::CasedString( str, caseSensitivity) ); - } - StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::ContainsMatcher( StdString::CasedString( str, caseSensitivity) ); - } - StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::EndsWithMatcher( StdString::CasedString( str, caseSensitivity) ); - } - StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::StartsWithMatcher( StdString::CasedString( str, caseSensitivity) ); - } - -} // namespace Matchers -} // namespace Catch diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_vector.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_vector.h deleted file mode 100644 index 6a48a4e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_matchers_vector.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Created by Phil Nash on 21/02/2017. - * Copyright (c) 2017 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_MATCHERS_VECTOR_H_INCLUDED -#define TWOBLUECUBES_CATCH_MATCHERS_VECTOR_H_INCLUDED - -#include "catch_matchers.hpp" - -namespace Catch { -namespace Matchers { - - namespace Vector { - - template - struct ContainsElementMatcher : MatcherBase, T> { - - ContainsElementMatcher(T const &comparator) : m_comparator( comparator) {} - - bool match(std::vector const &v) const CATCH_OVERRIDE { - return std::find(v.begin(), v.end(), m_comparator) != v.end(); - } - - virtual std::string describe() const CATCH_OVERRIDE { - return "Contains: " + Catch::toString( m_comparator ); - } - - T const& m_comparator; - }; - - template - struct ContainsMatcher : MatcherBase, std::vector > { - - ContainsMatcher(std::vector const &comparator) : m_comparator( comparator ) {} - - bool match(std::vector const &v) const CATCH_OVERRIDE { - // !TBD: see note in EqualsMatcher - if (m_comparator.size() > v.size()) - return false; - for (size_t i = 0; i < m_comparator.size(); ++i) - if (std::find(v.begin(), v.end(), m_comparator[i]) == v.end()) - return false; - return true; - } - virtual std::string describe() const CATCH_OVERRIDE { - return "Contains: " + Catch::toString( m_comparator ); - } - - std::vector const& m_comparator; - }; - - template - struct EqualsMatcher : MatcherBase, std::vector > { - - EqualsMatcher(std::vector const &comparator) : m_comparator( comparator ) {} - - bool match(std::vector const &v) const CATCH_OVERRIDE { - // !TBD: This currently works if all elements can be compared using != - // - a more general approach would be via a compare template that defaults - // to using !=. but could be specialised for, e.g. std::vector etc - // - then just call that directly - if (m_comparator.size() != v.size()) - return false; - for (size_t i = 0; i < v.size(); ++i) - if (m_comparator[i] != v[i]) - return false; - return true; - } - virtual std::string describe() const CATCH_OVERRIDE { - return "Equals: " + Catch::toString( m_comparator ); - } - std::vector const& m_comparator; - }; - - } // namespace Vector - - // The following functions create the actual matcher objects. - // This allows the types to be inferred - - template - Vector::ContainsMatcher Contains( std::vector const& comparator ) { - return Vector::ContainsMatcher( comparator ); - } - - template - Vector::ContainsElementMatcher VectorContains( T const& comparator ) { - return Vector::ContainsElementMatcher( comparator ); - } - - template - Vector::EqualsMatcher Equals( std::vector const& comparator ) { - return Vector::EqualsMatcher( comparator ); - } - -} // namespace Matchers -} // namespace Catch - -#endif // TWOBLUECUBES_CATCH_MATCHERS_VECTOR_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_message.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_message.h deleted file mode 100644 index 84ff95e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_message.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Created by Phil Nash on 1/2/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED -#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED - -#include -#include "catch_result_type.h" -#include "catch_common.h" - -namespace Catch { - - struct MessageInfo { - MessageInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - ResultWas::OfType _type ); - - std::string macroName; - SourceLineInfo lineInfo; - ResultWas::OfType type; - std::string message; - unsigned int sequence; - - bool operator == ( MessageInfo const& other ) const { - return sequence == other.sequence; - } - bool operator < ( MessageInfo const& other ) const { - return sequence < other.sequence; - } - private: - static unsigned int globalCount; - }; - - struct MessageBuilder { - MessageBuilder( std::string const& macroName, - SourceLineInfo const& lineInfo, - ResultWas::OfType type ) - : m_info( macroName, lineInfo, type ) - {} - - template - MessageBuilder& operator << ( T const& value ) { - m_stream << value; - return *this; - } - - MessageInfo m_info; - std::ostringstream m_stream; - }; - - class ScopedMessage { - public: - ScopedMessage( MessageBuilder const& builder ); - ScopedMessage( ScopedMessage const& other ); - ~ScopedMessage(); - - MessageInfo m_info; - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_message.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_message.hpp deleted file mode 100644 index 42866be..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_message.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Created by Phil Nash on 1/2/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED - -#include "catch_message.h" - -namespace Catch { - - MessageInfo::MessageInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - ResultWas::OfType _type ) - : macroName( _macroName ), - lineInfo( _lineInfo ), - type( _type ), - sequence( ++globalCount ) - {} - - // This may need protecting if threading support is added - unsigned int MessageInfo::globalCount = 0; - - - //////////////////////////////////////////////////////////////////////////// - - ScopedMessage::ScopedMessage( MessageBuilder const& builder ) - : m_info( builder.m_info ) - { - m_info.message = builder.m_stream.str(); - getResultCapture().pushScopedMessage( m_info ); - } - ScopedMessage::ScopedMessage( ScopedMessage const& other ) - : m_info( other.m_info ) - {} - - ScopedMessage::~ScopedMessage() { - getResultCapture().popScopedMessage( m_info ); - } - - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_notimplemented_exception.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_notimplemented_exception.h deleted file mode 100644 index 128fff2..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_notimplemented_exception.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Created by Phil on 5/8/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED -#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED - -#include "catch_common.h" - -namespace Catch { - - class NotImplementedException : public std::exception - { - public: - NotImplementedException( SourceLineInfo const& lineInfo ); - NotImplementedException( NotImplementedException const& ) {} - - virtual ~NotImplementedException() CATCH_NOEXCEPT {} - - virtual const char* what() const CATCH_NOEXCEPT; - - private: - std::string m_what; - SourceLineInfo m_lineInfo; - }; - -} // end namespace Catch - -/////////////////////////////////////////////////////////////////////////////// -#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO ) - -#endif // TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_notimplemented_exception.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_notimplemented_exception.hpp deleted file mode 100644 index e4afdc6..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_notimplemented_exception.hpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Created by Phil on 5/8/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED - -#include "catch_notimplemented_exception.h" -#include - -namespace Catch { - - NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo ) - : m_lineInfo( lineInfo ) { - std::ostringstream oss; - oss << lineInfo << ": function "; - oss << "not implemented"; - m_what = oss.str(); - } - - const char* NotImplementedException::what() const CATCH_NOEXCEPT { - return m_what.c_str(); - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_objc.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_objc.hpp deleted file mode 100644 index 489cf55..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_objc.hpp +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Created by Phil on 14/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED - -#include "catch_objc_arc.hpp" - -#import - -#include - -// NB. Any general catch headers included here must be included -// in catch.hpp first to make sure they are included by the single -// header for non obj-usage -#include "catch_test_case_info.h" - -/////////////////////////////////////////////////////////////////////////////// -// This protocol is really only here for (self) documenting purposes, since -// all its methods are optional. -@protocol OcFixture - -@optional - --(void) setUp; --(void) tearDown; - -@end - -namespace Catch { - - class OcMethod : public SharedImpl { - - public: - OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {} - - virtual void invoke() const { - id obj = [[m_cls alloc] init]; - - performOptionalSelector( obj, @selector(setUp) ); - performOptionalSelector( obj, m_sel ); - performOptionalSelector( obj, @selector(tearDown) ); - - arcSafeRelease( obj ); - } - private: - virtual ~OcMethod() {} - - Class m_cls; - SEL m_sel; - }; - - namespace Detail{ - - - inline std::string getAnnotation( Class cls, - std::string const& annotationName, - std::string const& testCaseName ) { - NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()]; - SEL sel = NSSelectorFromString( selStr ); - arcSafeRelease( selStr ); - id value = performOptionalSelector( cls, sel ); - if( value ) - return [(NSString*)value UTF8String]; - return ""; - } - } - - inline size_t registerTestMethods() { - size_t noTestMethods = 0; - int noClasses = objc_getClassList( CATCH_NULL, 0 ); - - Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses); - objc_getClassList( classes, noClasses ); - - for( int c = 0; c < noClasses; c++ ) { - Class cls = classes[c]; - { - u_int count; - Method* methods = class_copyMethodList( cls, &count ); - for( u_int m = 0; m < count ; m++ ) { - SEL selector = method_getName(methods[m]); - std::string methodName = sel_getName(selector); - if( startsWith( methodName, "Catch_TestCase_" ) ) { - std::string testCaseName = methodName.substr( 15 ); - std::string name = Detail::getAnnotation( cls, "Name", testCaseName ); - std::string desc = Detail::getAnnotation( cls, "Description", testCaseName ); - const char* className = class_getName( cls ); - - getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) ); - noTestMethods++; - } - } - free(methods); - } - } - return noTestMethods; - } - - namespace Matchers { - namespace Impl { - namespace NSStringMatchers { - - template - struct StringHolder : MatcherImpl{ - StringHolder( NSString* substr ) : m_substr( [substr copy] ){} - StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){} - StringHolder() { - arcSafeRelease( m_substr ); - } - - NSString* m_substr; - }; - - struct Equals : StringHolder { - Equals( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str isEqualToString:m_substr]; - } - - virtual std::string toString() const { - return "equals string: " + Catch::toString( m_substr ); - } - }; - - struct Contains : StringHolder { - Contains( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location != NSNotFound; - } - - virtual std::string toString() const { - return "contains string: " + Catch::toString( m_substr ); - } - }; - - struct StartsWith : StringHolder { - StartsWith( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location == 0; - } - - virtual std::string toString() const { - return "starts with: " + Catch::toString( m_substr ); - } - }; - struct EndsWith : StringHolder { - EndsWith( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location == [str length] - [m_substr length]; - } - - virtual std::string toString() const { - return "ends with: " + Catch::toString( m_substr ); - } - }; - - } // namespace NSStringMatchers - } // namespace Impl - - inline Impl::NSStringMatchers::Equals - Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); } - - inline Impl::NSStringMatchers::Contains - Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); } - - inline Impl::NSStringMatchers::StartsWith - StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); } - - inline Impl::NSStringMatchers::EndsWith - EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); } - - } // namespace Matchers - - using namespace Matchers; - -} // namespace Catch - -/////////////////////////////////////////////////////////////////////////////// -#define OC_TEST_CASE( name, desc )\ -+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \ -{\ -return @ name; \ -}\ -+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \ -{ \ -return @ desc; \ -} \ --(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test ) - -#endif // TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_objc_arc.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_objc_arc.hpp deleted file mode 100644 index 6bcd6b8..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_objc_arc.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Created by Phil on 1/08/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED - -#import - -#ifdef __has_feature -#define CATCH_ARC_ENABLED __has_feature(objc_arc) -#else -#define CATCH_ARC_ENABLED 0 -#endif - -void arcSafeRelease( NSObject* obj ); -id performOptionalSelector( id obj, SEL sel ); - -#if !CATCH_ARC_ENABLED -inline void arcSafeRelease( NSObject* obj ) { - [obj release]; -} -inline id performOptionalSelector( id obj, SEL sel ) { - if( [obj respondsToSelector: sel] ) - return [obj performSelector: sel]; - return nil; -} -#define CATCH_UNSAFE_UNRETAINED -#define CATCH_ARC_STRONG -#else -inline void arcSafeRelease( NSObject* ){} -inline id performOptionalSelector( id obj, SEL sel ) { -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" -#endif - if( [obj respondsToSelector: sel] ) - return [obj performSelector: sel]; -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - return nil; -} -#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained -#define CATCH_ARC_STRONG __strong -#endif - -#endif // TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_option.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_option.hpp deleted file mode 100644 index 5413abf..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_option.hpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Created by Phil on 02/12/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED - -#include "catch_common.h" - -namespace Catch { - - // An optional type - template - class Option { - public: - Option() : nullableValue( CATCH_NULL ) {} - Option( T const& _value ) - : nullableValue( new( storage ) T( _value ) ) - {} - Option( Option const& _other ) - : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL ) - {} - - ~Option() { - reset(); - } - - Option& operator= ( Option const& _other ) { - if( &_other != this ) { - reset(); - if( _other ) - nullableValue = new( storage ) T( *_other ); - } - return *this; - } - Option& operator = ( T const& _value ) { - reset(); - nullableValue = new( storage ) T( _value ); - return *this; - } - - void reset() { - if( nullableValue ) - nullableValue->~T(); - nullableValue = CATCH_NULL; - } - - T& operator*() { return *nullableValue; } - T const& operator*() const { return *nullableValue; } - T* operator->() { return nullableValue; } - const T* operator->() const { return nullableValue; } - - T valueOr( T const& defaultValue ) const { - return nullableValue ? *nullableValue : defaultValue; - } - - bool some() const { return nullableValue != CATCH_NULL; } - bool none() const { return nullableValue == CATCH_NULL; } - - bool operator !() const { return nullableValue == CATCH_NULL; } - operator SafeBool::type() const { - return SafeBool::makeSafe( some() ); - } - - private: - T* nullableValue; - char storage[sizeof(T)]; - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_platform.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_platform.h deleted file mode 100644 index 09b91bf..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_platform.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Created by Phil on 16/8/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ -#ifndef TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED -#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED - -#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# define CATCH_PLATFORM_MAC -#elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -# define CATCH_PLATFORM_IPHONE -#elif defined(linux) || defined(__linux) || defined(__linux__) -# define CATCH_PLATFORM_LINUX -#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) -# define CATCH_PLATFORM_WINDOWS -# if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX) -# define CATCH_DEFINES_NOMINMAX -# endif -# if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN) -# define CATCH_DEFINES_WIN32_LEAN_AND_MEAN -# endif -#endif - -#endif // TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_ptr.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_ptr.hpp deleted file mode 100644 index 940e5d1..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_ptr.hpp +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Created by Phil on 02/05/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED - -#include "catch_common.h" - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -namespace Catch { - - // An intrusive reference counting smart pointer. - // T must implement addRef() and release() methods - // typically implementing the IShared interface - template - class Ptr { - public: - Ptr() : m_p( CATCH_NULL ){} - Ptr( T* p ) : m_p( p ){ - if( m_p ) - m_p->addRef(); - } - Ptr( Ptr const& other ) : m_p( other.m_p ){ - if( m_p ) - m_p->addRef(); - } - ~Ptr(){ - if( m_p ) - m_p->release(); - } - void reset() { - if( m_p ) - m_p->release(); - m_p = CATCH_NULL; - } - Ptr& operator = ( T* p ){ - Ptr temp( p ); - swap( temp ); - return *this; - } - Ptr& operator = ( Ptr const& other ){ - Ptr temp( other ); - swap( temp ); - return *this; - } - void swap( Ptr& other ) { std::swap( m_p, other.m_p ); } - T* get() const{ return m_p; } - T& operator*() const { return *m_p; } - T* operator->() const { return m_p; } - bool operator !() const { return m_p == CATCH_NULL; } - operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); } - - private: - T* m_p; - }; - - struct IShared : NonCopyable { - virtual ~IShared(); - virtual void addRef() const = 0; - virtual void release() const = 0; - }; - - template - struct SharedImpl : T { - - SharedImpl() : m_rc( 0 ){} - - virtual void addRef() const { - ++m_rc; - } - virtual void release() const { - if( --m_rc == 0 ) - delete this; - } - - mutable unsigned int m_rc; - }; - -} // end namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif // TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reenable_warnings.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reenable_warnings.h deleted file mode 100644 index 33574e0..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reenable_warnings.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2014 Two Blue Cubes Ltd - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#ifndef TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED -#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED - -#ifdef __clang__ -# ifdef __ICC // icpc defines the __clang__ macro -# pragma warning(pop) -# else -# pragma clang diagnostic pop -# endif -#elif defined __GNUC__ -# pragma GCC diagnostic pop -#endif - -#endif // TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_registry_hub.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_registry_hub.hpp deleted file mode 100644 index 35293bf..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_registry_hub.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Created by Phil on 5/8/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED - -#include "catch_interfaces_registry_hub.h" - -#include "catch_test_case_registry_impl.hpp" -#include "catch_reporter_registry.hpp" -#include "catch_exception_translator_registry.hpp" - -namespace Catch { - - namespace { - - class RegistryHub : public IRegistryHub, public IMutableRegistryHub { - - RegistryHub( RegistryHub const& ); - void operator=( RegistryHub const& ); - - public: // IRegistryHub - RegistryHub() { - } - virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE { - return m_reporterRegistry; - } - virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE { - return m_testCaseRegistry; - } - virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE { - return m_exceptionTranslatorRegistry; - } - - public: // IMutableRegistryHub - virtual void registerReporter( std::string const& name, Ptr const& factory ) CATCH_OVERRIDE { - m_reporterRegistry.registerReporter( name, factory ); - } - virtual void registerListener( Ptr const& factory ) CATCH_OVERRIDE { - m_reporterRegistry.registerListener( factory ); - } - virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE { - m_testCaseRegistry.registerTest( testInfo ); - } - virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE { - m_exceptionTranslatorRegistry.registerTranslator( translator ); - } - - private: - TestRegistry m_testCaseRegistry; - ReporterRegistry m_reporterRegistry; - ExceptionTranslatorRegistry m_exceptionTranslatorRegistry; - }; - - // Single, global, instance - inline RegistryHub*& getTheRegistryHub() { - static RegistryHub* theRegistryHub = CATCH_NULL; - if( !theRegistryHub ) - theRegistryHub = new RegistryHub(); - return theRegistryHub; - } - } - - IRegistryHub& getRegistryHub() { - return *getTheRegistryHub(); - } - IMutableRegistryHub& getMutableRegistryHub() { - return *getTheRegistryHub(); - } - void cleanUp() { - delete getTheRegistryHub(); - getTheRegistryHub() = CATCH_NULL; - cleanUpContext(); - } - std::string translateActiveException() { - return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException(); - } - - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reporter_registrars.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reporter_registrars.hpp deleted file mode 100644 index 4d5557e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reporter_registrars.hpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Created by Phil on 31/12/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED - -#include "catch_interfaces_registry_hub.h" -#include "catch_legacy_reporter_adapter.h" - -namespace Catch { - - template - class LegacyReporterRegistrar { - - class ReporterFactory : public IReporterFactory { - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new LegacyReporterAdapter( new T( config ) ); - } - - virtual std::string getDescription() const { - return T::getDescription(); - } - }; - - public: - - LegacyReporterRegistrar( std::string const& name ) { - getMutableRegistryHub().registerReporter( name, new ReporterFactory() ); - } - }; - - template - class ReporterRegistrar { - - class ReporterFactory : public SharedImpl { - - // *** Please Note ***: - // - If you end up here looking at a compiler error because it's trying to register - // your custom reporter class be aware that the native reporter interface has changed - // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via - // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter. - // However please consider updating to the new interface as the old one is now - // deprecated and will probably be removed quite soon! - // Please contact me via github if you have any questions at all about this. - // In fact, ideally, please contact me anyway to let me know you've hit this - as I have - // no idea who is actually using custom reporters at all (possibly no-one!). - // The new interface is designed to minimise exposure to interface changes in the future. - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new T( config ); - } - - virtual std::string getDescription() const { - return T::getDescription(); - } - }; - - public: - - ReporterRegistrar( std::string const& name ) { - getMutableRegistryHub().registerReporter( name, new ReporterFactory() ); - } - }; - - template - class ListenerRegistrar { - - class ListenerFactory : public SharedImpl { - - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new T( config ); - } - virtual std::string getDescription() const { - return std::string(); - } - }; - - public: - - ListenerRegistrar() { - getMutableRegistryHub().registerListener( new ListenerFactory() ); - } - }; -} - -#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \ - namespace{ Catch::LegacyReporterRegistrar catch_internal_RegistrarFor##reporterType( name ); } - -#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \ - namespace{ Catch::ReporterRegistrar catch_internal_RegistrarFor##reporterType( name ); } - -#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \ - namespace{ Catch::ListenerRegistrar catch_internal_RegistrarFor##listenerType; } - -#endif // TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reporter_registry.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reporter_registry.hpp deleted file mode 100644 index 71f23ff..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_reporter_registry.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Created by Phil on 29/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED - -#include "catch_interfaces_reporter.h" - -#include - -namespace Catch { - - class ReporterRegistry : public IReporterRegistry { - - public: - - virtual ~ReporterRegistry() CATCH_OVERRIDE {} - - virtual IStreamingReporter* create( std::string const& name, Ptr const& config ) const CATCH_OVERRIDE { - FactoryMap::const_iterator it = m_factories.find( name ); - if( it == m_factories.end() ) - return CATCH_NULL; - return it->second->create( ReporterConfig( config ) ); - } - - void registerReporter( std::string const& name, Ptr const& factory ) { - m_factories.insert( std::make_pair( name, factory ) ); - } - void registerListener( Ptr const& factory ) { - m_listeners.push_back( factory ); - } - - virtual FactoryMap const& getFactories() const CATCH_OVERRIDE { - return m_factories; - } - virtual Listeners const& getListeners() const CATCH_OVERRIDE { - return m_listeners; - } - - private: - FactoryMap m_factories; - Listeners m_listeners; - }; -} - -#endif // TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_builder.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_builder.h deleted file mode 100644 index 305c21e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_builder.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Created by Phil on 28/5/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED -#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED - -#include "catch_result_type.h" -#include "catch_assertionresult.h" -#include "catch_common.h" -#include "catch_matchers.hpp" - -namespace Catch { - - struct TestFailureException{}; - - template class ExpressionLhs; - - struct CopyableStream { - CopyableStream() {} - CopyableStream( CopyableStream const& other ) { - oss << other.oss.str(); - } - CopyableStream& operator=( CopyableStream const& other ) { - oss.str(std::string()); - oss << other.oss.str(); - return *this; - } - std::ostringstream oss; - }; - - class ResultBuilder : public DecomposedExpression { - public: - ResultBuilder( char const* macroName, - SourceLineInfo const& lineInfo, - char const* capturedExpression, - ResultDisposition::Flags resultDisposition, - char const* secondArg = "" ); - - template - ExpressionLhs operator <= ( T const& operand ); - ExpressionLhs operator <= ( bool value ); - - template - ResultBuilder& operator << ( T const& value ) { - m_stream.oss << value; - return *this; - } - - ResultBuilder& setResultType( ResultWas::OfType result ); - ResultBuilder& setResultType( bool result ); - - void endExpression( DecomposedExpression const& expr ); - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE; - - AssertionResult build() const; - AssertionResult build( DecomposedExpression const& expr ) const; - - void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal ); - void captureResult( ResultWas::OfType resultType ); - void captureExpression(); - void captureExpectedException( std::string const& expectedMessage ); - void captureExpectedException( Matchers::Impl::MatcherBase const& matcher ); - void handleResult( AssertionResult const& result ); - void react(); - bool shouldDebugBreak() const; - bool allowThrows() const; - - template - void captureMatch( ArgT const& arg, MatcherT const& matcher, char const* matcherString ); - - private: - AssertionInfo m_assertionInfo; - AssertionResultData m_data; - CopyableStream m_stream; - - bool m_shouldDebugBreak; - bool m_shouldThrow; - }; - -} // namespace Catch - -// Include after due to circular dependency: -#include "catch_expression_lhs.hpp" - -namespace Catch { - - template - inline ExpressionLhs ResultBuilder::operator <= ( T const& operand ) { - return ExpressionLhs( *this, operand ); - } - - inline ExpressionLhs ResultBuilder::operator <= ( bool value ) { - return ExpressionLhs( *this, value ); - } - - template - inline void ResultBuilder::captureMatch( ArgT const& arg, MatcherT const& matcher, - char const* matcherString ) { - MatchExpression expr( arg, matcher, matcherString ); - setResultType( matcher.match( arg ) ); - endExpression( expr ); - } - - -} // namespace Catch - -#endif // TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_builder.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_builder.hpp deleted file mode 100644 index aaa37a8..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_builder.hpp +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Created by Phil on 28/5/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED - -#include "catch_result_builder.h" -#include "catch_context.h" -#include "catch_interfaces_config.h" -#include "catch_interfaces_runner.h" -#include "catch_interfaces_capture.h" -#include "catch_interfaces_registry_hub.h" -#include "catch_wildcard_pattern.hpp" - -namespace Catch { - - std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) { - return secondArg.empty() || secondArg == "\"\"" - ? capturedExpression - : capturedExpression + ", " + secondArg; - } - ResultBuilder::ResultBuilder( char const* macroName, - SourceLineInfo const& lineInfo, - char const* capturedExpression, - ResultDisposition::Flags resultDisposition, - char const* secondArg ) - : m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ), - m_shouldDebugBreak( false ), - m_shouldThrow( false ) - {} - - ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) { - m_data.resultType = result; - return *this; - } - ResultBuilder& ResultBuilder::setResultType( bool result ) { - m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed; - return *this; - } - - void ResultBuilder::endExpression( DecomposedExpression const& expr ) { - AssertionResult result = build( expr ); - handleResult( result ); - } - - void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) { - m_assertionInfo.resultDisposition = resultDisposition; - m_stream.oss << Catch::translateActiveException(); - captureResult( ResultWas::ThrewException ); - } - - void ResultBuilder::captureResult( ResultWas::OfType resultType ) { - setResultType( resultType ); - captureExpression(); - } - - void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) { - if( expectedMessage.empty() ) - captureExpectedException( Matchers::Impl::MatchAllOf() ); - else - captureExpectedException( Matchers::Equals( expectedMessage ) ); - } - - - void ResultBuilder::captureExpectedException( Matchers::Impl::MatcherBase const& matcher ) { - - assert( !isFalseTest( m_assertionInfo.resultDisposition ) ); - AssertionResultData data = m_data; - data.resultType = ResultWas::Ok; - data.reconstructedExpression = m_assertionInfo.capturedExpression; - - std::string actualMessage = Catch::translateActiveException(); - if( !matcher.match( actualMessage ) ) { - data.resultType = ResultWas::ExpressionFailed; - data.reconstructedExpression = actualMessage; - } - AssertionResult result( m_assertionInfo, data ); - handleResult( result ); - } - - void ResultBuilder::captureExpression() { - AssertionResult result = build(); - handleResult( result ); - } - - void ResultBuilder::handleResult( AssertionResult const& result ) - { - getResultCapture().assertionEnded( result ); - - if( !result.isOk() ) { - if( getCurrentContext().getConfig()->shouldDebugBreak() ) - m_shouldDebugBreak = true; - if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) ) - m_shouldThrow = true; - } - } - - void ResultBuilder::react() { -#if defined(CATCH_CONFIG_FAST_COMPILE) - if (m_shouldDebugBreak) { - /////////////////////////////////////////////////////////////////// - // To inspect the state during test, you need to go one level up the callstack - // To go back to the test and change execution, jump over the throw statement - /////////////////////////////////////////////////////////////////// - CATCH_BREAK_INTO_DEBUGGER(); - } -#endif - if( m_shouldThrow ) - throw Catch::TestFailureException(); - } - - bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; } - bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); } - - AssertionResult ResultBuilder::build() const - { - return build( *this ); - } - - // CAVEAT: The returned AssertionResult stores a pointer to the argument expr, - // a temporary DecomposedExpression, which in turn holds references to - // operands, possibly temporary as well. - // It should immediately be passed to handleResult; if the expression - // needs to be reported, its string expansion must be composed before - // the temporaries are destroyed. - AssertionResult ResultBuilder::build( DecomposedExpression const& expr ) const - { - assert( m_data.resultType != ResultWas::Unknown ); - AssertionResultData data = m_data; - - // Flip bool results if FalseTest flag is set - if( isFalseTest( m_assertionInfo.resultDisposition ) ) { - data.negate( expr.isBinaryExpression() ); - } - - data.message = m_stream.oss.str(); - data.decomposedExpression = &expr; // for lazy reconstruction - return AssertionResult( m_assertionInfo, data ); - } - - void ResultBuilder::reconstructExpression( std::string& dest ) const { - dest = m_assertionInfo.capturedExpression; - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_type.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_type.h deleted file mode 100644 index 4c3d77d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_result_type.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Created by Phil on 07/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED -#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED - -namespace Catch { - - // ResultWas::OfType enum - struct ResultWas { enum OfType { - Unknown = -1, - Ok = 0, - Info = 1, - Warning = 2, - - FailureBit = 0x10, - - ExpressionFailed = FailureBit | 1, - ExplicitFailure = FailureBit | 2, - - Exception = 0x100 | FailureBit, - - ThrewException = Exception | 1, - DidntThrowException = Exception | 2, - - FatalErrorCondition = 0x200 | FailureBit - - }; }; - - inline bool isOk( ResultWas::OfType resultType ) { - return ( resultType & ResultWas::FailureBit ) == 0; - } - inline bool isJustInfo( int flags ) { - return flags == ResultWas::Info; - } - - - // ResultDisposition::Flags enum - struct ResultDisposition { enum Flags { - Normal = 0x01, - - ContinueOnFailure = 0x02, // Failures fail test, but execution continues - FalseTest = 0x04, // Prefix expression with ! - SuppressFail = 0x08 // Failures are reported but do not fail the test - }; }; - - inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) { - return static_cast( static_cast( lhs ) | static_cast( rhs ) ); - } - - inline bool shouldContinueOnFailure( int flags ) { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; } - inline bool isFalseTest( int flags ) { return ( flags & ResultDisposition::FalseTest ) != 0; } - inline bool shouldSuppressFailure( int flags ) { return ( flags & ResultDisposition::SuppressFail ) != 0; } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_run_context.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_run_context.hpp deleted file mode 100644 index 496c32c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_run_context.hpp +++ /dev/null @@ -1,367 +0,0 @@ - /* - * Created by Phil on 22/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED - -#include "catch_interfaces_runner.h" -#include "catch_interfaces_reporter.h" -#include "catch_interfaces_exception.h" -#include "catch_config.hpp" -#include "catch_test_registry.hpp" -#include "catch_test_case_info.h" -#include "catch_capture.hpp" -#include "catch_totals.hpp" -#include "catch_test_spec.hpp" -#include "catch_test_case_tracker.hpp" -#include "catch_timer.h" -#include "catch_result_builder.h" -#include "catch_fatal_condition.hpp" - -#include -#include - -namespace Catch { - - class StreamRedirect { - - public: - StreamRedirect( std::ostream& stream, std::string& targetString ) - : m_stream( stream ), - m_prevBuf( stream.rdbuf() ), - m_targetString( targetString ) - { - stream.rdbuf( m_oss.rdbuf() ); - } - - ~StreamRedirect() { - m_targetString += m_oss.str(); - m_stream.rdbuf( m_prevBuf ); - } - - private: - std::ostream& m_stream; - std::streambuf* m_prevBuf; - std::ostringstream m_oss; - std::string& m_targetString; - }; - - /////////////////////////////////////////////////////////////////////////// - - class RunContext : public IResultCapture, public IRunner { - - RunContext( RunContext const& ); - void operator =( RunContext const& ); - - public: - - explicit RunContext( Ptr const& _config, Ptr const& reporter ) - : m_runInfo( _config->name() ), - m_context( getCurrentMutableContext() ), - m_activeTestCase( CATCH_NULL ), - m_config( _config ), - m_reporter( reporter ) - { - m_context.setRunner( this ); - m_context.setConfig( m_config ); - m_context.setResultCapture( this ); - m_reporter->testRunStarting( m_runInfo ); - } - - virtual ~RunContext() { - m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) ); - } - - void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) { - m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) ); - } - void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) { - m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) ); - } - - Totals runTest( TestCase const& testCase ) { - Totals prevTotals = m_totals; - - std::string redirectedCout; - std::string redirectedCerr; - - TestCaseInfo testInfo = testCase.getTestCaseInfo(); - - m_reporter->testCaseStarting( testInfo ); - - m_activeTestCase = &testCase; - - - do { - ITracker& rootTracker = m_trackerContext.startRun(); - assert( rootTracker.isSectionTracker() ); - static_cast( rootTracker ).addInitialFilters( m_config->getSectionsToRun() ); - do { - m_trackerContext.startCycle(); - m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( testInfo.name, testInfo.lineInfo ) ); - runCurrentTest( redirectedCout, redirectedCerr ); - } - while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() ); - } - // !TBD: deprecated - this will be replaced by indexed trackers - while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() ); - - Totals deltaTotals = m_totals.delta( prevTotals ); - if( testInfo.expectedToFail() && deltaTotals.testCases.passed > 0 ) { - deltaTotals.assertions.failed++; - deltaTotals.testCases.passed--; - deltaTotals.testCases.failed++; - } - m_totals.testCases += deltaTotals.testCases; - m_reporter->testCaseEnded( TestCaseStats( testInfo, - deltaTotals, - redirectedCout, - redirectedCerr, - aborting() ) ); - - m_activeTestCase = CATCH_NULL; - m_testCaseTracker = CATCH_NULL; - - return deltaTotals; - } - - Ptr config() const { - return m_config; - } - - private: // IResultCapture - - - virtual void assertionEnded( AssertionResult const& result ) { - if( result.getResultType() == ResultWas::Ok ) { - m_totals.assertions.passed++; - } - else if( !result.isOk() ) { - m_totals.assertions.failed++; - } - - if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) ) - m_messages.clear(); - - // Reset working state - m_lastAssertionInfo = AssertionInfo( std::string(), m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition ); - m_lastResult = result; - } - - virtual bool sectionStarted ( - SectionInfo const& sectionInfo, - Counts& assertions - ) - { - ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( sectionInfo.name, sectionInfo.lineInfo ) ); - if( !sectionTracker.isOpen() ) - return false; - m_activeSections.push_back( §ionTracker ); - - m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo; - - m_reporter->sectionStarting( sectionInfo ); - - assertions = m_totals.assertions; - - return true; - } - bool testForMissingAssertions( Counts& assertions ) { - if( assertions.total() != 0 ) - return false; - if( !m_config->warnAboutMissingAssertions() ) - return false; - if( m_trackerContext.currentTracker().hasChildren() ) - return false; - m_totals.assertions.failed++; - assertions.failed++; - return true; - } - - virtual void sectionEnded( SectionEndInfo const& endInfo ) { - Counts assertions = m_totals.assertions - endInfo.prevAssertions; - bool missingAssertions = testForMissingAssertions( assertions ); - - if( !m_activeSections.empty() ) { - m_activeSections.back()->close(); - m_activeSections.pop_back(); - } - - m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) ); - m_messages.clear(); - } - - virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) { - if( m_unfinishedSections.empty() ) - m_activeSections.back()->fail(); - else - m_activeSections.back()->close(); - m_activeSections.pop_back(); - - m_unfinishedSections.push_back( endInfo ); - } - - virtual void pushScopedMessage( MessageInfo const& message ) { - m_messages.push_back( message ); - } - - virtual void popScopedMessage( MessageInfo const& message ) { - m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() ); - } - - virtual std::string getCurrentTestName() const { - return m_activeTestCase - ? m_activeTestCase->getTestCaseInfo().name - : std::string(); - } - - virtual const AssertionResult* getLastResult() const { - return &m_lastResult; - } - - virtual void handleFatalErrorCondition( std::string const& message ) { - // Don't rebuild the result -- the stringification itself can cause more fatal errors - // Instead, fake a result data. - AssertionResultData tempResult; - tempResult.resultType = ResultWas::FatalErrorCondition; - tempResult.message = message; - AssertionResult result(m_lastAssertionInfo, tempResult); - - getResultCapture().assertionEnded(result); - - handleUnfinishedSections(); - - // Recreate section for test case (as we will lose the one that was in scope) - TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); - SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description ); - - Counts assertions; - assertions.failed = 1; - SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false ); - m_reporter->sectionEnded( testCaseSectionStats ); - - TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo(); - - Totals deltaTotals; - deltaTotals.testCases.failed = 1; - m_reporter->testCaseEnded( TestCaseStats( testInfo, - deltaTotals, - std::string(), - std::string(), - false ) ); - m_totals.testCases.failed++; - testGroupEnded( std::string(), m_totals, 1, 1 ); - m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) ); - } - - public: - // !TBD We need to do this another way! - bool aborting() const { - return m_totals.assertions.failed == static_cast( m_config->abortAfter() ); - } - - private: - - void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) { - TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); - SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description ); - m_reporter->sectionStarting( testCaseSection ); - Counts prevAssertions = m_totals.assertions; - double duration = 0; - try { - m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, std::string(), ResultDisposition::Normal ); - - seedRng( *m_config ); - - Timer timer; - timer.start(); - if( m_reporter->getPreferences().shouldRedirectStdOut ) { - StreamRedirect coutRedir( Catch::cout(), redirectedCout ); - StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr ); - invokeActiveTestCase(); - } - else { - invokeActiveTestCase(); - } - duration = timer.getElapsedSeconds(); - } - catch( TestFailureException& ) { - // This just means the test was aborted due to failure - } - catch(...) { - makeUnexpectedResultBuilder().useActiveException(); - } - m_testCaseTracker->close(); - handleUnfinishedSections(); - m_messages.clear(); - - Counts assertions = m_totals.assertions - prevAssertions; - bool missingAssertions = testForMissingAssertions( assertions ); - - if( testCaseInfo.okToFail() ) { - std::swap( assertions.failedButOk, assertions.failed ); - m_totals.assertions.failed -= assertions.failedButOk; - m_totals.assertions.failedButOk += assertions.failedButOk; - } - - SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions ); - m_reporter->sectionEnded( testCaseSectionStats ); - } - - void invokeActiveTestCase() { - FatalConditionHandler fatalConditionHandler; // Handle signals - m_activeTestCase->invoke(); - fatalConditionHandler.reset(); - } - - private: - - ResultBuilder makeUnexpectedResultBuilder() const { - return ResultBuilder( m_lastAssertionInfo.macroName.c_str(), - m_lastAssertionInfo.lineInfo, - m_lastAssertionInfo.capturedExpression.c_str(), - m_lastAssertionInfo.resultDisposition ); - } - - void handleUnfinishedSections() { - // If sections ended prematurely due to an exception we stored their - // infos here so we can tear them down outside the unwind process. - for( std::vector::const_reverse_iterator it = m_unfinishedSections.rbegin(), - itEnd = m_unfinishedSections.rend(); - it != itEnd; - ++it ) - sectionEnded( *it ); - m_unfinishedSections.clear(); - } - - TestRunInfo m_runInfo; - IMutableContext& m_context; - TestCase const* m_activeTestCase; - ITracker* m_testCaseTracker; - ITracker* m_currentSectionTracker; - AssertionResult m_lastResult; - - Ptr m_config; - Totals m_totals; - Ptr m_reporter; - std::vector m_messages; - AssertionInfo m_lastAssertionInfo; - std::vector m_unfinishedSections; - std::vector m_activeSections; - TrackerContext m_trackerContext; - }; - - IResultCapture& getResultCapture() { - if( IResultCapture* capture = getCurrentContext().getResultCapture() ) - return *capture; - else - throw std::logic_error( "No result capture instance" ); - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section.h deleted file mode 100644 index d8b3ae4..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Created by Phil on 03/12/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_SECTION_H_INCLUDED -#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED - -#include "catch_section_info.h" -#include "catch_totals.hpp" -#include "catch_timer.h" - -#include - -namespace Catch { - - class Section : NonCopyable { - public: - Section( SectionInfo const& info ); - ~Section(); - - // This indicates whether the section should be executed or not - operator bool() const; - - private: - SectionInfo m_info; - - std::string m_name; - Counts m_assertions; - bool m_sectionIncluded; - Timer m_timer; - }; - -} // end namespace Catch - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define INTERNAL_CATCH_SECTION( ... ) \ - if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) ) -#else - #define INTERNAL_CATCH_SECTION( name, desc ) \ - if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) ) -#endif - -#endif // TWOBLUECUBES_CATCH_SECTION_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section.hpp deleted file mode 100644 index a5d1b6d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section.hpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Created by Phil on 03/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED - -#include "catch_section.h" -#include "catch_capture.hpp" -#include "catch_compiler_capabilities.h" - -namespace Catch { - - SectionInfo::SectionInfo - ( SourceLineInfo const& _lineInfo, - std::string const& _name, - std::string const& _description ) - : name( _name ), - description( _description ), - lineInfo( _lineInfo ) - {} - - Section::Section( SectionInfo const& info ) - : m_info( info ), - m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) ) - { - m_timer.start(); - } - - Section::~Section() { - if( m_sectionIncluded ) { - SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() ); - if( std::uncaught_exception() ) - getResultCapture().sectionEndedEarly( endInfo ); - else - getResultCapture().sectionEnded( endInfo ); - } - } - - // This indicates whether the section should be executed or not - Section::operator bool() const { - return m_sectionIncluded; - } - - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section_info.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section_info.h deleted file mode 100644 index c9f1c7f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section_info.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Created by Phil on 03/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED -#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED - -#include "catch_common.h" -#include "catch_totals.hpp" - -#include - -namespace Catch { - - struct SectionInfo { - SectionInfo - ( SourceLineInfo const& _lineInfo, - std::string const& _name, - std::string const& _description = std::string() ); - - std::string name; - std::string description; - SourceLineInfo lineInfo; - }; - - struct SectionEndInfo { - SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds ) - : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds ) - {} - - SectionInfo sectionInfo; - Counts prevAssertions; - double durationInSeconds; - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section_info.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section_info.hpp deleted file mode 100644 index aebbf6a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_section_info.hpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Created by Phil Nash on 4/5/2012 - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_SECTION_INFO_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_SECTION_INFO_HPP_INCLUDED - -#include "catch_section_info.h" - -namespace Catch { - - class RunningSection { - public: - - typedef std::vector SubSections; - - enum State { - Root, - Unknown, - Branch, - TestedBranch, - TestedLeaf - }; - - RunningSection( RunningSection* parent, std::string const& name ) - : m_state( Unknown ), - m_parent( parent ), - m_name( name ) - {} - - RunningSection( std::string const& name ) - : m_state( Root ), - m_parent( CATCH_NULL ), - m_name( name ) - {} - - ~RunningSection() { - deleteAll( m_subSections ); - } - - std::string getName() const { - return m_name; - } - - bool shouldRun() const { - return m_state < TestedBranch; - } - - bool isBranch() const { - return m_state == Branch; - } - - const RunningSection* getParent() const { - return m_parent; - } - - bool hasUntestedSections() const { - if( m_state == Unknown ) - return true; - for( SubSections::const_iterator it = m_subSections.begin(); - it != m_subSections.end(); - ++it) - if( (*it)->hasUntestedSections() ) - return true; - return false; - } - - // Mutable methods: - - RunningSection* getParent() { - return m_parent; - } - - RunningSection* findOrAddSubSection( std::string const& name, bool& changed ) { - for( SubSections::const_iterator it = m_subSections.begin(); - it != m_subSections.end(); - ++it) - if( (*it)->getName() == name ) - return *it; - RunningSection* subSection = new RunningSection( this, name ); - m_subSections.push_back( subSection ); - m_state = Branch; - changed = true; - return subSection; - } - - bool ran() { - if( m_state >= Branch ) - return false; - m_state = TestedLeaf; - return true; - } - - void ranToCompletion() { - if( m_state == Branch && !hasUntestedSections() ) - m_state = TestedBranch; - } - - private: - State m_state; - RunningSection* m_parent; - std::string m_name; - SubSections m_subSections; - }; -} - -#endif // TWOBLUECUBES_CATCH_SECTION_INFO_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_stream.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_stream.h deleted file mode 100644 index d8deeba..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_stream.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Created by Phil on 2/12/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ -#ifndef TWOBLUECUBES_CATCH_STREAM_H_INCLUDED -#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED - -#include "catch_compiler_capabilities.h" -#include "catch_streambuf.h" - -#include -#include -#include -#include - -namespace Catch { - - std::ostream& cout(); - std::ostream& cerr(); - - - struct IStream { - virtual ~IStream() CATCH_NOEXCEPT; - virtual std::ostream& stream() const = 0; - }; - - class FileStream : public IStream { - mutable std::ofstream m_ofs; - public: - FileStream( std::string const& filename ); - virtual ~FileStream() CATCH_NOEXCEPT; - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; - - - class CoutStream : public IStream { - mutable std::ostream m_os; - public: - CoutStream(); - virtual ~CoutStream() CATCH_NOEXCEPT; - - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; - - - class DebugOutStream : public IStream { - CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf; - mutable std::ostream m_os; - public: - DebugOutStream(); - virtual ~DebugOutStream() CATCH_NOEXCEPT; - - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; -} - -#endif // TWOBLUECUBES_CATCH_STREAM_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_stream.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_stream.hpp deleted file mode 100644 index 42f51e8..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_stream.hpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Created by Phil on 17/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - * - */ -#ifndef TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED - -#include "catch_stream.h" -#include "catch_debugger.h" - -#include -#include -#include - -namespace Catch { - - template - class StreamBufImpl : public StreamBufBase { - char data[bufferSize]; - WriterF m_writer; - - public: - StreamBufImpl() { - setp( data, data + sizeof(data) ); - } - - ~StreamBufImpl() CATCH_NOEXCEPT { - sync(); - } - - private: - int overflow( int c ) { - sync(); - - if( c != EOF ) { - if( pbase() == epptr() ) - m_writer( std::string( 1, static_cast( c ) ) ); - else - sputc( static_cast( c ) ); - } - return 0; - } - - int sync() { - if( pbase() != pptr() ) { - m_writer( std::string( pbase(), static_cast( pptr() - pbase() ) ) ); - setp( pbase(), epptr() ); - } - return 0; - } - }; - - /////////////////////////////////////////////////////////////////////////// - - - FileStream::FileStream( std::string const& filename ) { - m_ofs.open( filename.c_str() ); - if( m_ofs.fail() ) { - std::ostringstream oss; - oss << "Unable to open file: '" << filename << '\''; - throw std::domain_error( oss.str() ); - } - } - - std::ostream& FileStream::stream() const { - return m_ofs; - } - - struct OutputDebugWriter { - - void operator()( std::string const&str ) { - writeToDebugConsole( str ); - } - }; - - DebugOutStream::DebugOutStream() - : m_streamBuf( new StreamBufImpl() ), - m_os( m_streamBuf.get() ) - {} - - std::ostream& DebugOutStream::stream() const { - return m_os; - } - - // Store the streambuf from cout up-front because - // cout may get redirected when running tests - CoutStream::CoutStream() - : m_os( Catch::cout().rdbuf() ) - {} - - std::ostream& CoutStream::stream() const { - return m_os; - } - -#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions - std::ostream& cout() { - return std::cout; - } - std::ostream& cerr() { - return std::cerr; - } -#endif -} - -#endif // TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_streambuf.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_streambuf.h deleted file mode 100644 index 4f5e238..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_streambuf.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Created by Phil on 27/11/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED -#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED - -#include "catch_compiler_capabilities.h" - -#include - -namespace Catch { - - class StreamBufBase : public std::streambuf { - public: - virtual ~StreamBufBase() CATCH_NOEXCEPT; - }; -} - -#endif // TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_suppress_warnings.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_suppress_warnings.h deleted file mode 100644 index ffaab69..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_suppress_warnings.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2014 Two Blue Cubes Ltd - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#ifdef __clang__ -# ifdef __ICC // icpc defines the __clang__ macro -# pragma warning(push) -# pragma warning(disable: 161 1682) -# else // __ICC -# pragma clang diagnostic ignored "-Wglobal-constructors" -# pragma clang diagnostic ignored "-Wvariadic-macros" -# pragma clang diagnostic ignored "-Wc99-extensions" -# pragma clang diagnostic ignored "-Wunused-variable" -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wpadded" -# pragma clang diagnostic ignored "-Wc++98-compat" -# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" -# pragma clang diagnostic ignored "-Wswitch-enum" -# pragma clang diagnostic ignored "-Wcovered-switch-default" -# endif -#elif defined __GNUC__ -# pragma GCC diagnostic ignored "-Wvariadic-macros" -# pragma GCC diagnostic ignored "-Wunused-variable" - - // For newer version we can use __Pragma to disable the warnings locally -# if __GNUC__ == 4 && __GNUC_MINOR__ >= 4 && __GNUC_MINOR__ <= 7 -# pragma GCC diagnostic ignored "-Wparentheses" -# endif - -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wpadded" -#endif diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias.h deleted file mode 100644 index 6dde74a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Created by Phil on 27/6/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED -#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED - -#include "catch_common.h" - -#include - -namespace Catch { - - struct TagAlias { - TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {} - - std::string tag; - SourceLineInfo lineInfo; - }; - - struct RegistrarForTagAliases { - RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED - -#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias_registry.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias_registry.h deleted file mode 100644 index 98c796e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias_registry.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Created by Phil on 27/6/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED -#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED - -#include "catch_interfaces_tag_alias_registry.h" - -#include - -namespace Catch { - - class TagAliasRegistry : public ITagAliasRegistry { - public: - virtual ~TagAliasRegistry(); - virtual Option find( std::string const& alias ) const; - virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const; - void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); - static TagAliasRegistry& get(); - - private: - std::map m_registry; - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias_registry.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias_registry.hpp deleted file mode 100644 index cc04ea1..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tag_alias_registry.hpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Created by Phil on 27/6/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED - -#include "catch_tag_alias_registry.h" -#include "catch_console_colour.hpp" - -namespace Catch { - - TagAliasRegistry::~TagAliasRegistry() {} - - Option TagAliasRegistry::find( std::string const& alias ) const { - std::map::const_iterator it = m_registry.find( alias ); - if( it != m_registry.end() ) - return it->second; - else - return Option(); - } - - std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const { - std::string expandedTestSpec = unexpandedTestSpec; - for( std::map::const_iterator it = m_registry.begin(), itEnd = m_registry.end(); - it != itEnd; - ++it ) { - std::size_t pos = expandedTestSpec.find( it->first ); - if( pos != std::string::npos ) { - expandedTestSpec = expandedTestSpec.substr( 0, pos ) + - it->second.tag + - expandedTestSpec.substr( pos + it->first.size() ); - } - } - return expandedTestSpec; - } - - void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) { - - if( !startsWith( alias, "[@" ) || !endsWith( alias, ']' ) ) { - std::ostringstream oss; - oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo; - throw std::domain_error( oss.str().c_str() ); - } - if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) { - std::ostringstream oss; - oss << "error: tag alias, \"" << alias << "\" already registered.\n" - << "\tFirst seen at " << find(alias)->lineInfo << '\n' - << "\tRedefined at " << lineInfo; - throw std::domain_error( oss.str().c_str() ); - } - } - - TagAliasRegistry& TagAliasRegistry::get() { - static TagAliasRegistry instance; - return instance; - - } - - ITagAliasRegistry::~ITagAliasRegistry() {} - ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); } - - - RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) { - try { - TagAliasRegistry::get().add( alias, tag, lineInfo ); - } - catch( std::exception& ex ) { - Colour colourGuard( Colour::Red ); - Catch::cerr() << ex.what() << std::endl; - exit(1); - } - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_info.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_info.h deleted file mode 100644 index b821abd..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_info.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Created by Phil on 29/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED -#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED - -#include "catch_common.h" -#include "catch_ptr.hpp" - -#include -#include - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -namespace Catch { - - struct ITestCase; - - struct TestCaseInfo { - enum SpecialProperties{ - None = 0, - IsHidden = 1 << 1, - ShouldFail = 1 << 2, - MayFail = 1 << 3, - Throws = 1 << 4, - NonPortable = 1 << 5 - }; - - TestCaseInfo( std::string const& _name, - std::string const& _className, - std::string const& _description, - std::set const& _tags, - SourceLineInfo const& _lineInfo ); - - TestCaseInfo( TestCaseInfo const& other ); - - friend void setTags( TestCaseInfo& testCaseInfo, std::set const& tags ); - - bool isHidden() const; - bool throws() const; - bool okToFail() const; - bool expectedToFail() const; - - std::string name; - std::string className; - std::string description; - std::set tags; - std::set lcaseTags; - std::string tagsAsString; - SourceLineInfo lineInfo; - SpecialProperties properties; - }; - - class TestCase : public TestCaseInfo { - public: - - TestCase( ITestCase* testCase, TestCaseInfo const& info ); - TestCase( TestCase const& other ); - - TestCase withName( std::string const& _newName ) const; - - void invoke() const; - - TestCaseInfo const& getTestCaseInfo() const; - - void swap( TestCase& other ); - bool operator == ( TestCase const& other ) const; - bool operator < ( TestCase const& other ) const; - TestCase& operator = ( TestCase const& other ); - - private: - Ptr test; - }; - - TestCase makeTestCase( ITestCase* testCase, - std::string const& className, - std::string const& name, - std::string const& description, - SourceLineInfo const& lineInfo ); -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif // TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_info.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_info.hpp deleted file mode 100644 index b4ca53a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_info.hpp +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Created by Phil on 14/08/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED - -#include "catch_test_spec.hpp" -#include "catch_test_case_info.h" -#include "catch_interfaces_testcase.h" -#include "catch_common.h" - -#include - -namespace Catch { - - inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) { - if( startsWith( tag, '.' ) || - tag == "hide" || - tag == "!hide" ) - return TestCaseInfo::IsHidden; - else if( tag == "!throws" ) - return TestCaseInfo::Throws; - else if( tag == "!shouldfail" ) - return TestCaseInfo::ShouldFail; - else if( tag == "!mayfail" ) - return TestCaseInfo::MayFail; - else if( tag == "!nonportable" ) - return TestCaseInfo::NonPortable; - else - return TestCaseInfo::None; - } - inline bool isReservedTag( std::string const& tag ) { - return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !std::isalnum( tag[0] ); - } - inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) { - if( isReservedTag( tag ) ) { - { - Colour colourGuard( Colour::Red ); - Catch::cerr() - << "Tag name [" << tag << "] not allowed.\n" - << "Tag names starting with non alpha-numeric characters are reserved\n"; - } - { - Colour colourGuard( Colour::FileName ); - Catch::cerr() << _lineInfo << std::endl; - } - exit(1); - } - } - - TestCase makeTestCase( ITestCase* _testCase, - std::string const& _className, - std::string const& _name, - std::string const& _descOrTags, - SourceLineInfo const& _lineInfo ) - { - bool isHidden( startsWith( _name, "./" ) ); // Legacy support - - // Parse out tags - std::set tags; - std::string desc, tag; - bool inTag = false; - for( std::size_t i = 0; i < _descOrTags.size(); ++i ) { - char c = _descOrTags[i]; - if( !inTag ) { - if( c == '[' ) - inTag = true; - else - desc += c; - } - else { - if( c == ']' ) { - TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag ); - if( prop == TestCaseInfo::IsHidden ) - isHidden = true; - else if( prop == TestCaseInfo::None ) - enforceNotReservedTag( tag, _lineInfo ); - - tags.insert( tag ); - tag.clear(); - inTag = false; - } - else - tag += c; - } - } - if( isHidden ) { - tags.insert( "hide" ); - tags.insert( "." ); - } - - TestCaseInfo info( _name, _className, desc, tags, _lineInfo ); - return TestCase( _testCase, info ); - } - - void setTags( TestCaseInfo& testCaseInfo, std::set const& tags ) - { - testCaseInfo.tags = tags; - testCaseInfo.lcaseTags.clear(); - - std::ostringstream oss; - for( std::set::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) { - oss << '[' << *it << ']'; - std::string lcaseTag = toLower( *it ); - testCaseInfo.properties = static_cast( testCaseInfo.properties | parseSpecialTag( lcaseTag ) ); - testCaseInfo.lcaseTags.insert( lcaseTag ); - } - testCaseInfo.tagsAsString = oss.str(); - } - - TestCaseInfo::TestCaseInfo( std::string const& _name, - std::string const& _className, - std::string const& _description, - std::set const& _tags, - SourceLineInfo const& _lineInfo ) - : name( _name ), - className( _className ), - description( _description ), - lineInfo( _lineInfo ), - properties( None ) - { - setTags( *this, _tags ); - } - - TestCaseInfo::TestCaseInfo( TestCaseInfo const& other ) - : name( other.name ), - className( other.className ), - description( other.description ), - tags( other.tags ), - lcaseTags( other.lcaseTags ), - tagsAsString( other.tagsAsString ), - lineInfo( other.lineInfo ), - properties( other.properties ) - {} - - bool TestCaseInfo::isHidden() const { - return ( properties & IsHidden ) != 0; - } - bool TestCaseInfo::throws() const { - return ( properties & Throws ) != 0; - } - bool TestCaseInfo::okToFail() const { - return ( properties & (ShouldFail | MayFail ) ) != 0; - } - bool TestCaseInfo::expectedToFail() const { - return ( properties & (ShouldFail ) ) != 0; - } - - - TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {} - - TestCase::TestCase( TestCase const& other ) - : TestCaseInfo( other ), - test( other.test ) - {} - - TestCase TestCase::withName( std::string const& _newName ) const { - TestCase other( *this ); - other.name = _newName; - return other; - } - - void TestCase::swap( TestCase& other ) { - test.swap( other.test ); - name.swap( other.name ); - className.swap( other.className ); - description.swap( other.description ); - tags.swap( other.tags ); - lcaseTags.swap( other.lcaseTags ); - tagsAsString.swap( other.tagsAsString ); - std::swap( TestCaseInfo::properties, static_cast( other ).properties ); - std::swap( lineInfo, other.lineInfo ); - } - - void TestCase::invoke() const { - test->invoke(); - } - - bool TestCase::operator == ( TestCase const& other ) const { - return test.get() == other.test.get() && - name == other.name && - className == other.className; - } - - bool TestCase::operator < ( TestCase const& other ) const { - return name < other.name; - } - TestCase& TestCase::operator = ( TestCase const& other ) { - TestCase temp( other ); - swap( temp ); - return *this; - } - - TestCaseInfo const& TestCase::getTestCaseInfo() const - { - return *this; - } - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_registry_impl.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_registry_impl.hpp deleted file mode 100644 index 316c6c2..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_registry_impl.hpp +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Created by Phil on 7/1/2011 - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED - -#include "catch_test_registry.hpp" -#include "catch_test_case_info.h" -#include "catch_test_spec.hpp" -#include "catch_context.h" - -#include -#include -#include -#include - - -namespace Catch { - - struct RandomNumberGenerator { - typedef std::ptrdiff_t result_type; - - result_type operator()( result_type n ) const { return std::rand() % n; } - -#ifdef CATCH_CONFIG_CPP11_SHUFFLE - static constexpr result_type min() { return 0; } - static constexpr result_type max() { return 1000000; } - result_type operator()() const { return std::rand() % max(); } -#endif - template - static void shuffle( V& vector ) { - RandomNumberGenerator rng; -#ifdef CATCH_CONFIG_CPP11_SHUFFLE - std::shuffle( vector.begin(), vector.end(), rng ); -#else - std::random_shuffle( vector.begin(), vector.end(), rng ); -#endif - } - }; - - inline std::vector sortTests( IConfig const& config, std::vector const& unsortedTestCases ) { - - std::vector sorted = unsortedTestCases; - - switch( config.runOrder() ) { - case RunTests::InLexicographicalOrder: - std::sort( sorted.begin(), sorted.end() ); - break; - case RunTests::InRandomOrder: - { - seedRng( config ); - RandomNumberGenerator::shuffle( sorted ); - } - break; - case RunTests::InDeclarationOrder: - // already in declaration order - break; - } - return sorted; - } - bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) { - return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() ); - } - - void enforceNoDuplicateTestCases( std::vector const& functions ) { - std::set seenFunctions; - for( std::vector::const_iterator it = functions.begin(), itEnd = functions.end(); - it != itEnd; - ++it ) { - std::pair::const_iterator, bool> prev = seenFunctions.insert( *it ); - if( !prev.second ) { - std::ostringstream ss; - - ss << Colour( Colour::Red ) - << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n" - << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << '\n' - << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl; - - throw std::runtime_error(ss.str()); - } - } - } - - std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ) { - std::vector filtered; - filtered.reserve( testCases.size() ); - for( std::vector::const_iterator it = testCases.begin(), itEnd = testCases.end(); - it != itEnd; - ++it ) - if( matchTest( *it, testSpec, config ) ) - filtered.push_back( *it ); - return filtered; - } - std::vector const& getAllTestCasesSorted( IConfig const& config ) { - return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config ); - } - - class TestRegistry : public ITestCaseRegistry { - public: - TestRegistry() - : m_currentSortOrder( RunTests::InDeclarationOrder ), - m_unnamedCount( 0 ) - {} - virtual ~TestRegistry(); - - virtual void registerTest( TestCase const& testCase ) { - std::string name = testCase.getTestCaseInfo().name; - if( name.empty() ) { - std::ostringstream oss; - oss << "Anonymous test case " << ++m_unnamedCount; - return registerTest( testCase.withName( oss.str() ) ); - } - m_functions.push_back( testCase ); - } - - virtual std::vector const& getAllTests() const { - return m_functions; - } - virtual std::vector const& getAllTestsSorted( IConfig const& config ) const { - if( m_sortedFunctions.empty() ) - enforceNoDuplicateTestCases( m_functions ); - - if( m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) { - m_sortedFunctions = sortTests( config, m_functions ); - m_currentSortOrder = config.runOrder(); - } - return m_sortedFunctions; - } - - private: - std::vector m_functions; - mutable RunTests::InWhatOrder m_currentSortOrder; - mutable std::vector m_sortedFunctions; - size_t m_unnamedCount; - std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised - }; - - /////////////////////////////////////////////////////////////////////////// - - class FreeFunctionTestCase : public SharedImpl { - public: - - FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {} - - virtual void invoke() const { - m_fun(); - } - - private: - virtual ~FreeFunctionTestCase(); - - TestFunction m_fun; - }; - - inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) { - std::string className = classOrQualifiedMethodName; - if( startsWith( className, '&' ) ) - { - std::size_t lastColons = className.rfind( "::" ); - std::size_t penultimateColons = className.rfind( "::", lastColons-1 ); - if( penultimateColons == std::string::npos ) - penultimateColons = 1; - className = className.substr( penultimateColons, lastColons-penultimateColons ); - } - return className; - } - - void registerTestCase - ( ITestCase* testCase, - char const* classOrQualifiedMethodName, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ) { - - getMutableRegistryHub().registerTest - ( makeTestCase - ( testCase, - extractClassName( classOrQualifiedMethodName ), - nameAndDesc.name, - nameAndDesc.description, - lineInfo ) ); - } - void registerTestCaseFunction - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ) { - registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo ); - } - - /////////////////////////////////////////////////////////////////////////// - - AutoReg::AutoReg - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ) { - registerTestCaseFunction( function, lineInfo, nameAndDesc ); - } - - AutoReg::~AutoReg() {} - -} // end namespace Catch - - -#endif // TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_tracker.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_tracker.hpp deleted file mode 100644 index 9526e28..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_case_tracker.hpp +++ /dev/null @@ -1,368 +0,0 @@ -/* - * Created by Phil Nash on 23/7/2013 - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED - -#include "catch_compiler_capabilities.h" -#include "catch_ptr.hpp" - -#include -#include -#include -#include -#include -#include - -namespace Catch { -namespace TestCaseTracking { - - struct NameAndLocation { - std::string name; - SourceLineInfo location; - - NameAndLocation( std::string const& _name, SourceLineInfo const& _location ) - : name( _name ), - location( _location ) - {} - }; - - struct ITracker : SharedImpl<> { - virtual ~ITracker(); - - // static queries - virtual NameAndLocation const& nameAndLocation() const = 0; - - // dynamic queries - virtual bool isComplete() const = 0; // Successfully completed or failed - virtual bool isSuccessfullyCompleted() const = 0; - virtual bool isOpen() const = 0; // Started but not complete - virtual bool hasChildren() const = 0; - - virtual ITracker& parent() = 0; - - // actions - virtual void close() = 0; // Successfully complete - virtual void fail() = 0; - virtual void markAsNeedingAnotherRun() = 0; - - virtual void addChild( Ptr const& child ) = 0; - virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) = 0; - virtual void openChild() = 0; - - // Debug/ checking - virtual bool isSectionTracker() const = 0; - virtual bool isIndexTracker() const = 0; - }; - - class TrackerContext { - - enum RunState { - NotStarted, - Executing, - CompletedCycle - }; - - Ptr m_rootTracker; - ITracker* m_currentTracker; - RunState m_runState; - - public: - - static TrackerContext& instance() { - static TrackerContext s_instance; - return s_instance; - } - - TrackerContext() - : m_currentTracker( CATCH_NULL ), - m_runState( NotStarted ) - {} - - - ITracker& startRun(); - - void endRun() { - m_rootTracker.reset(); - m_currentTracker = CATCH_NULL; - m_runState = NotStarted; - } - - void startCycle() { - m_currentTracker = m_rootTracker.get(); - m_runState = Executing; - } - void completeCycle() { - m_runState = CompletedCycle; - } - - bool completedCycle() const { - return m_runState == CompletedCycle; - } - ITracker& currentTracker() { - return *m_currentTracker; - } - void setCurrentTracker( ITracker* tracker ) { - m_currentTracker = tracker; - } - }; - - class TrackerBase : public ITracker { - protected: - enum CycleState { - NotStarted, - Executing, - ExecutingChildren, - NeedsAnotherRun, - CompletedSuccessfully, - Failed - }; - class TrackerHasName { - NameAndLocation m_nameAndLocation; - public: - TrackerHasName( NameAndLocation const& nameAndLocation ) : m_nameAndLocation( nameAndLocation ) {} - bool operator ()( Ptr const& tracker ) { - return - tracker->nameAndLocation().name == m_nameAndLocation.name && - tracker->nameAndLocation().location == m_nameAndLocation.location; - } - }; - typedef std::vector > Children; - NameAndLocation m_nameAndLocation; - TrackerContext& m_ctx; - ITracker* m_parent; - Children m_children; - CycleState m_runState; - public: - TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ) - : m_nameAndLocation( nameAndLocation ), - m_ctx( ctx ), - m_parent( parent ), - m_runState( NotStarted ) - {} - virtual ~TrackerBase(); - - virtual NameAndLocation const& nameAndLocation() const CATCH_OVERRIDE { - return m_nameAndLocation; - } - virtual bool isComplete() const CATCH_OVERRIDE { - return m_runState == CompletedSuccessfully || m_runState == Failed; - } - virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE { - return m_runState == CompletedSuccessfully; - } - virtual bool isOpen() const CATCH_OVERRIDE { - return m_runState != NotStarted && !isComplete(); - } - virtual bool hasChildren() const CATCH_OVERRIDE { - return !m_children.empty(); - } - - - virtual void addChild( Ptr const& child ) CATCH_OVERRIDE { - m_children.push_back( child ); - } - - virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) CATCH_OVERRIDE { - Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( nameAndLocation ) ); - return( it != m_children.end() ) - ? it->get() - : CATCH_NULL; - } - virtual ITracker& parent() CATCH_OVERRIDE { - assert( m_parent ); // Should always be non-null except for root - return *m_parent; - } - - virtual void openChild() CATCH_OVERRIDE { - if( m_runState != ExecutingChildren ) { - m_runState = ExecutingChildren; - if( m_parent ) - m_parent->openChild(); - } - } - - virtual bool isSectionTracker() const CATCH_OVERRIDE { return false; } - virtual bool isIndexTracker() const CATCH_OVERRIDE { return false; } - - void open() { - m_runState = Executing; - moveToThis(); - if( m_parent ) - m_parent->openChild(); - } - - virtual void close() CATCH_OVERRIDE { - - // Close any still open children (e.g. generators) - while( &m_ctx.currentTracker() != this ) - m_ctx.currentTracker().close(); - - switch( m_runState ) { - case NotStarted: - case CompletedSuccessfully: - case Failed: - throw std::logic_error( "Illogical state" ); - - case NeedsAnotherRun: - break;; - - case Executing: - m_runState = CompletedSuccessfully; - break; - case ExecutingChildren: - if( m_children.empty() || m_children.back()->isComplete() ) - m_runState = CompletedSuccessfully; - break; - - default: - throw std::logic_error( "Unexpected state" ); - } - moveToParent(); - m_ctx.completeCycle(); - } - virtual void fail() CATCH_OVERRIDE { - m_runState = Failed; - if( m_parent ) - m_parent->markAsNeedingAnotherRun(); - moveToParent(); - m_ctx.completeCycle(); - } - virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE { - m_runState = NeedsAnotherRun; - } - private: - void moveToParent() { - assert( m_parent ); - m_ctx.setCurrentTracker( m_parent ); - } - void moveToThis() { - m_ctx.setCurrentTracker( this ); - } - }; - - class SectionTracker : public TrackerBase { - std::vector m_filters; - public: - SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ) - : TrackerBase( nameAndLocation, ctx, parent ) - { - if( parent ) { - while( !parent->isSectionTracker() ) - parent = &parent->parent(); - - SectionTracker& parentSection = static_cast( *parent ); - addNextFilters( parentSection.m_filters ); - } - } - virtual ~SectionTracker(); - - virtual bool isSectionTracker() const CATCH_OVERRIDE { return true; } - - static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) { - SectionTracker* section = CATCH_NULL; - - ITracker& currentTracker = ctx.currentTracker(); - if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) { - assert( childTracker ); - assert( childTracker->isSectionTracker() ); - section = static_cast( childTracker ); - } - else { - section = new SectionTracker( nameAndLocation, ctx, ¤tTracker ); - currentTracker.addChild( section ); - } - if( !ctx.completedCycle() ) - section->tryOpen(); - return *section; - } - - void tryOpen() { - if( !isComplete() && (m_filters.empty() || m_filters[0].empty() || m_filters[0] == m_nameAndLocation.name ) ) - open(); - } - - void addInitialFilters( std::vector const& filters ) { - if( !filters.empty() ) { - m_filters.push_back(""); // Root - should never be consulted - m_filters.push_back(""); // Test Case - not a section filter - std::copy( filters.begin(), filters.end(), std::back_inserter( m_filters ) ); - } - } - void addNextFilters( std::vector const& filters ) { - if( filters.size() > 1 ) - std::copy( filters.begin()+1, filters.end(), std::back_inserter( m_filters ) ); - } - }; - - class IndexTracker : public TrackerBase { - int m_size; - int m_index; - public: - IndexTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent, int size ) - : TrackerBase( nameAndLocation, ctx, parent ), - m_size( size ), - m_index( -1 ) - {} - virtual ~IndexTracker(); - - virtual bool isIndexTracker() const CATCH_OVERRIDE { return true; } - - static IndexTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation, int size ) { - IndexTracker* tracker = CATCH_NULL; - - ITracker& currentTracker = ctx.currentTracker(); - if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) { - assert( childTracker ); - assert( childTracker->isIndexTracker() ); - tracker = static_cast( childTracker ); - } - else { - tracker = new IndexTracker( nameAndLocation, ctx, ¤tTracker, size ); - currentTracker.addChild( tracker ); - } - - if( !ctx.completedCycle() && !tracker->isComplete() ) { - if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun ) - tracker->moveNext(); - tracker->open(); - } - - return *tracker; - } - - int index() const { return m_index; } - - void moveNext() { - m_index++; - m_children.clear(); - } - - virtual void close() CATCH_OVERRIDE { - TrackerBase::close(); - if( m_runState == CompletedSuccessfully && m_index < m_size-1 ) - m_runState = Executing; - } - }; - - inline ITracker& TrackerContext::startRun() { - m_rootTracker = new SectionTracker( NameAndLocation( "{root}", CATCH_INTERNAL_LINEINFO ), *this, CATCH_NULL ); - m_currentTracker = CATCH_NULL; - m_runState = Executing; - return *m_rootTracker; - } - -} // namespace TestCaseTracking - -using TestCaseTracking::ITracker; -using TestCaseTracking::TrackerContext; -using TestCaseTracking::SectionTracker; -using TestCaseTracking::IndexTracker; - -} // namespace Catch - -#endif // TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_registry.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_registry.hpp deleted file mode 100644 index a35c35d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_registry.hpp +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Created by Phil on 18/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED - -#include "catch_common.h" -#include "catch_interfaces_testcase.h" -#include "catch_compiler_capabilities.h" - -namespace Catch { - -template -class MethodTestCase : public SharedImpl { - -public: - MethodTestCase( void (C::*method)() ) : m_method( method ) {} - - virtual void invoke() const { - C obj; - (obj.*m_method)(); - } - -private: - virtual ~MethodTestCase() {} - - void (C::*m_method)(); -}; - -typedef void(*TestFunction)(); - -struct NameAndDesc { - NameAndDesc( const char* _name = "", const char* _description= "" ) - : name( _name ), description( _description ) - {} - - const char* name; - const char* description; -}; - -void registerTestCase - ( ITestCase* testCase, - char const* className, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ); - -struct AutoReg { - - AutoReg - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ); - - template - AutoReg - ( void (C::*method)(), - char const* className, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ) { - - registerTestCase - ( new MethodTestCase( method ), - className, - nameAndDesc, - lineInfo ); - } - - ~AutoReg(); - -private: - AutoReg( AutoReg const& ); - void operator= ( AutoReg const& ); -}; - -void registerTestCaseFunction - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ); - -} // end namespace Catch - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \ - static void TestName(); \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\ - static void TestName() - #define INTERNAL_CATCH_TESTCASE( ... ) \ - INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); } - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\ - namespace{ \ - struct TestName : ClassName{ \ - void test(); \ - }; \ - Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestName::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \ - } \ - void TestName::test() - #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \ - INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \ - Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); - -#else - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TESTCASE2( TestName, Name, Desc ) \ - static void TestName(); \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\ - static void TestName() - #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \ - INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), Name, Desc ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); } - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestCaseName, ClassName, TestName, Desc )\ - namespace{ \ - struct TestCaseName : ClassName{ \ - void test(); \ - }; \ - Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestCaseName::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \ - } \ - void TestCaseName::test() - #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\ - INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, TestName, Desc ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \ - Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); -#endif - -#endif // TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_spec.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_spec.hpp deleted file mode 100644 index 3ec59b5..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_spec.hpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Created by Phil on 14/8/2012. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -#include "catch_wildcard_pattern.hpp" -#include "catch_test_case_info.h" - -#include -#include - -namespace Catch { - - class TestSpec { - struct Pattern : SharedImpl<> { - virtual ~Pattern(); - virtual bool matches( TestCaseInfo const& testCase ) const = 0; - }; - class NamePattern : public Pattern { - public: - NamePattern( std::string const& name ) - : m_wildcardPattern( toLower( name ), CaseSensitive::No ) - {} - virtual ~NamePattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { - return m_wildcardPattern.matches( toLower( testCase.name ) ); - } - private: - WildcardPattern m_wildcardPattern; - }; - - class TagPattern : public Pattern { - public: - TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {} - virtual ~TagPattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { - return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end(); - } - private: - std::string m_tag; - }; - - class ExcludedPattern : public Pattern { - public: - ExcludedPattern( Ptr const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {} - virtual ~ExcludedPattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); } - private: - Ptr m_underlyingPattern; - }; - - struct Filter { - std::vector > m_patterns; - - bool matches( TestCaseInfo const& testCase ) const { - // All patterns in a filter must match for the filter to be a match - for( std::vector >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) { - if( !(*it)->matches( testCase ) ) - return false; - } - return true; - } - }; - - public: - bool hasFilters() const { - return !m_filters.empty(); - } - bool matches( TestCaseInfo const& testCase ) const { - // A TestSpec matches if any filter matches - for( std::vector::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it ) - if( it->matches( testCase ) ) - return true; - return false; - } - - private: - std::vector m_filters; - - friend class TestSpecParser; - }; -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif // TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_spec_parser.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_spec_parser.hpp deleted file mode 100644 index 05bdcf4..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_test_spec_parser.hpp +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Created by Phil on 15/5/2013. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -#include "catch_test_spec.hpp" -#include "catch_interfaces_tag_alias_registry.h" - -namespace Catch { - - class TestSpecParser { - enum Mode{ None, Name, QuotedName, Tag, EscapedName }; - Mode m_mode; - bool m_exclusion; - std::size_t m_start, m_pos; - std::string m_arg; - std::vector m_escapeChars; - TestSpec::Filter m_currentFilter; - TestSpec m_testSpec; - ITagAliasRegistry const* m_tagAliases; - - public: - TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {} - - TestSpecParser& parse( std::string const& arg ) { - m_mode = None; - m_exclusion = false; - m_start = std::string::npos; - m_arg = m_tagAliases->expandAliases( arg ); - m_escapeChars.clear(); - for( m_pos = 0; m_pos < m_arg.size(); ++m_pos ) - visitChar( m_arg[m_pos] ); - if( m_mode == Name ) - addPattern(); - return *this; - } - TestSpec testSpec() { - addFilter(); - return m_testSpec; - } - private: - void visitChar( char c ) { - if( m_mode == None ) { - switch( c ) { - case ' ': return; - case '~': m_exclusion = true; return; - case '[': return startNewMode( Tag, ++m_pos ); - case '"': return startNewMode( QuotedName, ++m_pos ); - case '\\': return escape(); - default: startNewMode( Name, m_pos ); break; - } - } - if( m_mode == Name ) { - if( c == ',' ) { - addPattern(); - addFilter(); - } - else if( c == '[' ) { - if( subString() == "exclude:" ) - m_exclusion = true; - else - addPattern(); - startNewMode( Tag, ++m_pos ); - } - else if( c == '\\' ) - escape(); - } - else if( m_mode == EscapedName ) - m_mode = Name; - else if( m_mode == QuotedName && c == '"' ) - addPattern(); - else if( m_mode == Tag && c == ']' ) - addPattern(); - } - void startNewMode( Mode mode, std::size_t start ) { - m_mode = mode; - m_start = start; - } - void escape() { - if( m_mode == None ) - m_start = m_pos; - m_mode = EscapedName; - m_escapeChars.push_back( m_pos ); - } - std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); } - template - void addPattern() { - std::string token = subString(); - for( size_t i = 0; i < m_escapeChars.size(); ++i ) - token = token.substr( 0, m_escapeChars[i]-m_start-i ) + token.substr( m_escapeChars[i]-m_start-i+1 ); - m_escapeChars.clear(); - if( startsWith( token, "exclude:" ) ) { - m_exclusion = true; - token = token.substr( 8 ); - } - if( !token.empty() ) { - Ptr pattern = new T( token ); - if( m_exclusion ) - pattern = new TestSpec::ExcludedPattern( pattern ); - m_currentFilter.m_patterns.push_back( pattern ); - } - m_exclusion = false; - m_mode = None; - } - void addFilter() { - if( !m_currentFilter.m_patterns.empty() ) { - m_testSpec.m_filters.push_back( m_currentFilter ); - m_currentFilter = TestSpec::Filter(); - } - } - }; - inline TestSpec parseTestSpec( std::string const& arg ) { - return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec(); - } - -} // namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif // TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_text.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_text.h deleted file mode 100644 index b66751f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_text.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Created by Phil on 10/2/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TEXT_H_INCLUDED -#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED - -#include "catch_config.hpp" - -#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH - -#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch -#include "../external/tbc_text_format.h" -#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE - -namespace Catch { - using Tbc::Text; - using Tbc::TextAttributes; -} - -#endif // TWOBLUECUBES_CATCH_TEXT_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_timer.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_timer.h deleted file mode 100644 index 22e9e63..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_timer.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Created by Phil on 05/08/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TIMER_H_INCLUDED -#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED - -#include "catch_platform.h" - -#ifdef CATCH_PLATFORM_WINDOWS -typedef unsigned long long uint64_t; -#else -#include -#endif - -namespace Catch { - - class Timer { - public: - Timer() : m_ticks( 0 ) {} - void start(); - unsigned int getElapsedMicroseconds() const; - unsigned int getElapsedMilliseconds() const; - double getElapsedSeconds() const; - - private: - uint64_t m_ticks; - }; - -} // namespace Catch - -#endif // TWOBLUECUBES_CATCH_TIMER_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_timer.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_timer.hpp deleted file mode 100644 index dfb7811..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_timer.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Created by Phil on 05/08/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch_timer.h" -#include "catch_platform.h" - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wc++11-long-long" -#endif - -#ifdef CATCH_PLATFORM_WINDOWS - -# include "catch_windows_h_proxy.h" - -#else - -#include - -#endif - -namespace Catch { - - namespace { -#ifdef CATCH_PLATFORM_WINDOWS - uint64_t getCurrentTicks() { - static uint64_t hz=0, hzo=0; - if (!hz) { - QueryPerformanceFrequency( reinterpret_cast( &hz ) ); - QueryPerformanceCounter( reinterpret_cast( &hzo ) ); - } - uint64_t t; - QueryPerformanceCounter( reinterpret_cast( &t ) ); - return ((t-hzo)*1000000)/hz; - } -#else - uint64_t getCurrentTicks() { - timeval t; - gettimeofday(&t,CATCH_NULL); - return static_cast( t.tv_sec ) * 1000000ull + static_cast( t.tv_usec ); - } -#endif - } - - void Timer::start() { - m_ticks = getCurrentTicks(); - } - unsigned int Timer::getElapsedMicroseconds() const { - return static_cast(getCurrentTicks() - m_ticks); - } - unsigned int Timer::getElapsedMilliseconds() const { - return static_cast(getElapsedMicroseconds()/1000); - } - double Timer::getElapsedSeconds() const { - return getElapsedMicroseconds()/1000000.0; - } - -} // namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tostring.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tostring.h deleted file mode 100644 index e6f7ec9..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tostring.h +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Created by Phil on 8/5/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED -#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED - -#include "catch_common.h" - -#include -#include -#include -#include -#include - -#ifdef __OBJC__ -#include "catch_objc_arc.hpp" -#endif - -#ifdef CATCH_CONFIG_CPP11_TUPLE -#include -#endif - -#ifdef CATCH_CONFIG_CPP11_IS_ENUM -#include -#endif - -namespace Catch { - -// Why we're here. -template -std::string toString( T const& value ); - -// Built in overloads - -std::string toString( std::string const& value ); -std::string toString( std::wstring const& value ); -std::string toString( const char* const value ); -std::string toString( char* const value ); -std::string toString( const wchar_t* const value ); -std::string toString( wchar_t* const value ); -std::string toString( int value ); -std::string toString( unsigned long value ); -std::string toString( unsigned int value ); -std::string toString( const double value ); -std::string toString( const float value ); -std::string toString( bool value ); -std::string toString( char value ); -std::string toString( signed char value ); -std::string toString( unsigned char value ); - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG -std::string toString( long long value ); -std::string toString( unsigned long long value ); -#endif - -#ifdef CATCH_CONFIG_CPP11_NULLPTR -std::string toString( std::nullptr_t ); -#endif - -#ifdef __OBJC__ - std::string toString( NSString const * const& nsstring ); - std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ); - std::string toString( NSObject* const& nsObject ); -#endif - - -namespace Detail { - - extern const std::string unprintableString; - - struct BorgType { - template BorgType( T const& ); - }; - - struct TrueType { char sizer[1]; }; - struct FalseType { char sizer[2]; }; - - TrueType& testStreamable( std::ostream& ); - FalseType testStreamable( FalseType ); - - FalseType operator<<( std::ostream const&, BorgType const& ); - - template - struct IsStreamInsertable { - static std::ostream &s; - static T const&t; - enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) }; - }; - -#if defined(CATCH_CONFIG_CPP11_IS_ENUM) - template::value - > - struct EnumStringMaker - { - static std::string convert( T const& ) { return unprintableString; } - }; - - template - struct EnumStringMaker - { - static std::string convert( T const& v ) - { - return ::Catch::toString( - static_cast::type>(v) - ); - } - }; -#endif - template - struct StringMakerBase { -#if defined(CATCH_CONFIG_CPP11_IS_ENUM) - template - static std::string convert( T const& v ) - { - return EnumStringMaker::convert( v ); - } -#else - template - static std::string convert( T const& ) { return unprintableString; } -#endif - }; - - template<> - struct StringMakerBase { - template - static std::string convert( T const& _value ) { - std::ostringstream oss; - oss << _value; - return oss.str(); - } - }; - - std::string rawMemoryToString( const void *object, std::size_t size ); - - template - inline std::string rawMemoryToString( const T& object ) { - return rawMemoryToString( &object, sizeof(object) ); - } - -} // end namespace Detail - -template -struct StringMaker : - Detail::StringMakerBase::value> {}; - -template -struct StringMaker { - template - static std::string convert( U* p ) { - if( !p ) - return "NULL"; - else - return Detail::rawMemoryToString( p ); - } -}; - -template -struct StringMaker { - static std::string convert( R C::* p ) { - if( !p ) - return "NULL"; - else - return Detail::rawMemoryToString( p ); - } -}; - -namespace Detail { - template - std::string rangeToString( InputIterator first, InputIterator last ); -} - -//template -//struct StringMaker > { -// static std::string convert( std::vector const& v ) { -// return Detail::rangeToString( v.begin(), v.end() ); -// } -//}; - -template -std::string toString( std::vector const& v ) { - return Detail::rangeToString( v.begin(), v.end() ); -} - - -#ifdef CATCH_CONFIG_CPP11_TUPLE - -// toString for tuples -namespace TupleDetail { - template< - typename Tuple, - std::size_t N = 0, - bool = (N < std::tuple_size::value) - > - struct ElementPrinter { - static void print( const Tuple& tuple, std::ostream& os ) - { - os << ( N ? ", " : " " ) - << Catch::toString(std::get(tuple)); - ElementPrinter::print(tuple,os); - } - }; - - template< - typename Tuple, - std::size_t N - > - struct ElementPrinter { - static void print( const Tuple&, std::ostream& ) {} - }; - -} - -template -struct StringMaker> { - - static std::string convert( const std::tuple& tuple ) - { - std::ostringstream os; - os << '{'; - TupleDetail::ElementPrinter>::print( tuple, os ); - os << " }"; - return os.str(); - } -}; -#endif // CATCH_CONFIG_CPP11_TUPLE - -namespace Detail { - template - std::string makeString( T const& value ) { - return StringMaker::convert( value ); - } -} // end namespace Detail - -/// \brief converts any type to a string -/// -/// The default template forwards on to ostringstream - except when an -/// ostringstream overload does not exist - in which case it attempts to detect -/// that and writes {?}. -/// Overload (not specialise) this template for custom typs that you don't want -/// to provide an ostream overload for. -template -std::string toString( T const& value ) { - return StringMaker::convert( value ); -} - - - namespace Detail { - template - std::string rangeToString( InputIterator first, InputIterator last ) { - std::ostringstream oss; - oss << "{ "; - if( first != last ) { - oss << Catch::toString( *first ); - for( ++first ; first != last ; ++first ) - oss << ", " << Catch::toString( *first ); - } - oss << " }"; - return oss.str(); - } -} - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tostring.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tostring.hpp deleted file mode 100644 index e61191b..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_tostring.hpp +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Created by Phil on 23/4/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED - -#include "catch_tostring.h" -#include "catch_interfaces_config.h" - -namespace Catch { - -namespace Detail { - - const std::string unprintableString = "{?}"; - - namespace { - const int hexThreshold = 255; - - struct Endianness { - enum Arch { Big, Little }; - - static Arch which() { - union _{ - int asInt; - char asChar[sizeof (int)]; - } u; - - u.asInt = 1; - return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little; - } - }; - } - - std::string rawMemoryToString( const void *object, std::size_t size ) - { - // Reverse order for little endian architectures - int i = 0, end = static_cast( size ), inc = 1; - if( Endianness::which() == Endianness::Little ) { - i = end-1; - end = inc = -1; - } - - unsigned char const *bytes = static_cast(object); - std::ostringstream os; - os << "0x" << std::setfill('0') << std::hex; - for( ; i != end; i += inc ) - os << std::setw(2) << static_cast(bytes[i]); - return os.str(); - } -} - -std::string toString( std::string const& value ) { - std::string s = value; - if( getCurrentContext().getConfig()->showInvisibles() ) { - for(size_t i = 0; i < s.size(); ++i ) { - std::string subs; - switch( s[i] ) { - case '\n': subs = "\\n"; break; - case '\t': subs = "\\t"; break; - default: break; - } - if( !subs.empty() ) { - s = s.substr( 0, i ) + subs + s.substr( i+1 ); - ++i; - } - } - } - return '"' + s + '"'; -} -std::string toString( std::wstring const& value ) { - - std::string s; - s.reserve( value.size() ); - for(size_t i = 0; i < value.size(); ++i ) - s += value[i] <= 0xff ? static_cast( value[i] ) : '?'; - return Catch::toString( s ); -} - -std::string toString( const char* const value ) { - return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" ); -} - -std::string toString( char* const value ) { - return Catch::toString( static_cast( value ) ); -} - -std::string toString( const wchar_t* const value ) -{ - return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" ); -} - -std::string toString( wchar_t* const value ) -{ - return Catch::toString( static_cast( value ) ); -} - -std::string toString( int value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} - -std::string toString( unsigned long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} - -std::string toString( unsigned int value ) { - return Catch::toString( static_cast( value ) ); -} - -template -std::string fpToString( T value, int precision ) { - std::ostringstream oss; - oss << std::setprecision( precision ) - << std::fixed - << value; - std::string d = oss.str(); - std::size_t i = d.find_last_not_of( '0' ); - if( i != std::string::npos && i != d.size()-1 ) { - if( d[i] == '.' ) - i++; - d = d.substr( 0, i+1 ); - } - return d; -} - -std::string toString( const double value ) { - return fpToString( value, 10 ); -} -std::string toString( const float value ) { - return fpToString( value, 5 ) + 'f'; -} - -std::string toString( bool value ) { - return value ? "true" : "false"; -} - -std::string toString( char value ) { - if ( value == '\r' ) - return "'\\r'"; - if ( value == '\f' ) - return "'\\f'"; - if ( value == '\n' ) - return "'\\n'"; - if ( value == '\t' ) - return "'\\t'"; - if ( '\0' <= value && value < ' ' ) - return toString( static_cast( value ) ); - char chstr[] = "' '"; - chstr[1] = value; - return chstr; -} - -std::string toString( signed char value ) { - return toString( static_cast( value ) ); -} - -std::string toString( unsigned char value ) { - return toString( static_cast( value ) ); -} - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG -std::string toString( long long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} -std::string toString( unsigned long long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} -#endif - -#ifdef CATCH_CONFIG_CPP11_NULLPTR -std::string toString( std::nullptr_t ) { - return "nullptr"; -} -#endif - -#ifdef __OBJC__ - std::string toString( NSString const * const& nsstring ) { - if( !nsstring ) - return "nil"; - return "@" + toString([nsstring UTF8String]); - } - std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) { - if( !nsstring ) - return "nil"; - return "@" + toString([nsstring UTF8String]); - } - std::string toString( NSObject* const& nsObject ) { - return toString( [nsObject description] ); - } -#endif - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_totals.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_totals.hpp deleted file mode 100644 index 551e294..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_totals.hpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Created by Phil Nash on 23/02/2012. - * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED - -#include - -namespace Catch { - - struct Counts { - Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {} - - Counts operator - ( Counts const& other ) const { - Counts diff; - diff.passed = passed - other.passed; - diff.failed = failed - other.failed; - diff.failedButOk = failedButOk - other.failedButOk; - return diff; - } - Counts& operator += ( Counts const& other ) { - passed += other.passed; - failed += other.failed; - failedButOk += other.failedButOk; - return *this; - } - - std::size_t total() const { - return passed + failed + failedButOk; - } - bool allPassed() const { - return failed == 0 && failedButOk == 0; - } - bool allOk() const { - return failed == 0; - } - - std::size_t passed; - std::size_t failed; - std::size_t failedButOk; - }; - - struct Totals { - - Totals operator - ( Totals const& other ) const { - Totals diff; - diff.assertions = assertions - other.assertions; - diff.testCases = testCases - other.testCases; - return diff; - } - - Totals delta( Totals const& prevTotals ) const { - Totals diff = *this - prevTotals; - if( diff.assertions.failed > 0 ) - ++diff.testCases.failed; - else if( diff.assertions.failedButOk > 0 ) - ++diff.testCases.failedButOk; - else - ++diff.testCases.passed; - return diff; - } - - Totals& operator += ( Totals const& other ) { - assertions += other.assertions; - testCases += other.testCases; - return *this; - } - - Counts assertions; - Counts testCases; - }; -} - -#endif // TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_type_traits.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_type_traits.hpp deleted file mode 100644 index 9be8916..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_type_traits.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Created by Martin on 08/02/2017. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) -#include -#endif - - -namespace Catch { - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) - - template - using add_lvalue_reference = std::add_lvalue_reference; - - template - using add_const = std::add_const; - -#else - - template - struct add_const { - typedef const T type; - }; - - template - struct add_lvalue_reference { - typedef T& type; - }; - template - struct add_lvalue_reference { - typedef T& type; - }; - // No && overload, because that is C++11, in which case we have - // proper type_traits implementation from the standard library - -#endif - -} - -#endif // TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_version.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_version.h deleted file mode 100644 index 1a79c5c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_version.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Created by Phil on 13/11/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_VERSION_H_INCLUDED -#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED - -namespace Catch { - - // Versioning information - struct Version { - Version( unsigned int _majorVersion, - unsigned int _minorVersion, - unsigned int _patchNumber, - std::string const& _branchName, - unsigned int _buildNumber ); - - unsigned int const majorVersion; - unsigned int const minorVersion; - unsigned int const patchNumber; - - // buildNumber is only used if branchName is not null - std::string const branchName; - unsigned int const buildNumber; - - friend std::ostream& operator << ( std::ostream& os, Version const& version ); - - private: - void operator=( Version const& ); - }; - - extern Version libraryVersion; -} - -#endif // TWOBLUECUBES_CATCH_VERSION_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_version.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_version.hpp deleted file mode 100644 index c364d7d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_version.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Created by Phil on 14/11/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED - -#include "catch_version.h" - -namespace Catch { - - Version::Version - ( unsigned int _majorVersion, - unsigned int _minorVersion, - unsigned int _patchNumber, - std::string const& _branchName, - unsigned int _buildNumber ) - : majorVersion( _majorVersion ), - minorVersion( _minorVersion ), - patchNumber( _patchNumber ), - branchName( _branchName ), - buildNumber( _buildNumber ) - {} - - std::ostream& operator << ( std::ostream& os, Version const& version ) { - os << version.majorVersion << '.' - << version.minorVersion << '.' - << version.patchNumber; - - if( !version.branchName.empty() ) { - os << '-' << version.branchName - << '.' << version.buildNumber; - } - return os; - } - - Version libraryVersion( 1, 8, 1, "", 0 ); - -} - -#endif // TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_wildcard_pattern.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_wildcard_pattern.hpp deleted file mode 100644 index a922912..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_wildcard_pattern.hpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Created by Phil on 13/7/2015. - * Copyright 2015 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED - -#include "catch_common.h" - -#include - - -namespace Catch -{ - class WildcardPattern { - enum WildcardPosition { - NoWildcard = 0, - WildcardAtStart = 1, - WildcardAtEnd = 2, - WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd - }; - - public: - - WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity ) - : m_caseSensitivity( caseSensitivity ), - m_wildcard( NoWildcard ), - m_pattern( adjustCase( pattern ) ) - { - if( startsWith( m_pattern, '*' ) ) { - m_pattern = m_pattern.substr( 1 ); - m_wildcard = WildcardAtStart; - } - if( endsWith( m_pattern, '*' ) ) { - m_pattern = m_pattern.substr( 0, m_pattern.size()-1 ); - m_wildcard = static_cast( m_wildcard | WildcardAtEnd ); - } - } - virtual ~WildcardPattern(); - virtual bool matches( std::string const& str ) const { - switch( m_wildcard ) { - case NoWildcard: - return m_pattern == adjustCase( str ); - case WildcardAtStart: - return endsWith( adjustCase( str ), m_pattern ); - case WildcardAtEnd: - return startsWith( adjustCase( str ), m_pattern ); - case WildcardAtBothEnds: - return contains( adjustCase( str ), m_pattern ); - } - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunreachable-code" -#endif - throw std::logic_error( "Unknown enum" ); -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - } - private: - std::string adjustCase( std::string const& str ) const { - return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str; - } - CaseSensitive::Choice m_caseSensitivity; - WildcardPosition m_wildcard; - std::string m_pattern; - }; -} - -#endif // TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_windows_h_proxy.h b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_windows_h_proxy.h deleted file mode 100644 index 4f059b4..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_windows_h_proxy.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Created by Martin on 16/01/2017. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#ifndef TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED -#define TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED - -#ifdef CATCH_DEFINES_NOMINMAX -# define NOMINMAX -#endif -#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -#endif - -#ifdef __AFXDLL -#include -#else -#include -#endif - -#ifdef CATCH_DEFINES_NOMINMAX -# undef NOMINMAX -#endif -#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN -# undef WIN32_LEAN_AND_MEAN -#endif - - -#endif // TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_xmlwriter.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_xmlwriter.hpp deleted file mode 100644 index ae59627..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/internal/catch_xmlwriter.hpp +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Created by Phil on 09/12/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED - -#include "catch_stream.h" -#include "catch_compiler_capabilities.h" -#include "catch_suppress_warnings.h" - -#include -#include -#include -#include - -namespace Catch { - - class XmlEncode { - public: - enum ForWhat { ForTextNodes, ForAttributes }; - - XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes ) - : m_str( str ), - m_forWhat( forWhat ) - {} - - void encodeTo( std::ostream& os ) const { - - // Apostrophe escaping not necessary if we always use " to write attributes - // (see: http://www.w3.org/TR/xml/#syntax) - - for( std::size_t i = 0; i < m_str.size(); ++ i ) { - char c = m_str[i]; - switch( c ) { - case '<': os << "<"; break; - case '&': os << "&"; break; - - case '>': - // See: http://www.w3.org/TR/xml/#syntax - if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' ) - os << ">"; - else - os << c; - break; - - case '\"': - if( m_forWhat == ForAttributes ) - os << """; - else - os << c; - break; - - default: - // Escape control chars - based on contribution by @espenalb in PR #465 and - // by @mrpi PR #588 - if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) { - // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0 - os << "\\x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) - << static_cast( c ); - } - else - os << c; - } - } - } - - friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) { - xmlEncode.encodeTo( os ); - return os; - } - - private: - std::string m_str; - ForWhat m_forWhat; - }; - - class XmlWriter { - public: - - class ScopedElement { - public: - ScopedElement( XmlWriter* writer ) - : m_writer( writer ) - {} - - ScopedElement( ScopedElement const& other ) - : m_writer( other.m_writer ){ - other.m_writer = CATCH_NULL; - } - - ~ScopedElement() { - if( m_writer ) - m_writer->endElement(); - } - - ScopedElement& writeText( std::string const& text, bool indent = true ) { - m_writer->writeText( text, indent ); - return *this; - } - - template - ScopedElement& writeAttribute( std::string const& name, T const& attribute ) { - m_writer->writeAttribute( name, attribute ); - return *this; - } - - private: - mutable XmlWriter* m_writer; - }; - - XmlWriter() - : m_tagIsOpen( false ), - m_needsNewline( false ), - m_os( Catch::cout() ) - { - writeDeclaration(); - } - - XmlWriter( std::ostream& os ) - : m_tagIsOpen( false ), - m_needsNewline( false ), - m_os( os ) - { - writeDeclaration(); - } - - ~XmlWriter() { - while( !m_tags.empty() ) - endElement(); - } - - XmlWriter& startElement( std::string const& name ) { - ensureTagClosed(); - newlineIfNecessary(); - m_os << m_indent << '<' << name; - m_tags.push_back( name ); - m_indent += " "; - m_tagIsOpen = true; - return *this; - } - - ScopedElement scopedElement( std::string const& name ) { - ScopedElement scoped( this ); - startElement( name ); - return scoped; - } - - XmlWriter& endElement() { - newlineIfNecessary(); - m_indent = m_indent.substr( 0, m_indent.size()-2 ); - if( m_tagIsOpen ) { - m_os << "/>"; - m_tagIsOpen = false; - } - else { - m_os << m_indent << ""; - } - m_os << std::endl; - m_tags.pop_back(); - return *this; - } - - XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) { - if( !name.empty() && !attribute.empty() ) - m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"'; - return *this; - } - - XmlWriter& writeAttribute( std::string const& name, bool attribute ) { - m_os << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"'; - return *this; - } - - template - XmlWriter& writeAttribute( std::string const& name, T const& attribute ) { - std::ostringstream oss; - oss << attribute; - return writeAttribute( name, oss.str() ); - } - - XmlWriter& writeText( std::string const& text, bool indent = true ) { - if( !text.empty() ){ - bool tagWasOpen = m_tagIsOpen; - ensureTagClosed(); - if( tagWasOpen && indent ) - m_os << m_indent; - m_os << XmlEncode( text ); - m_needsNewline = true; - } - return *this; - } - - XmlWriter& writeComment( std::string const& text ) { - ensureTagClosed(); - m_os << m_indent << ""; - m_needsNewline = true; - return *this; - } - - void writeStylesheetRef( std::string const& url ) { - m_os << "\n"; - } - - XmlWriter& writeBlankLine() { - ensureTagClosed(); - m_os << '\n'; - return *this; - } - - void ensureTagClosed() { - if( m_tagIsOpen ) { - m_os << ">" << std::endl; - m_tagIsOpen = false; - } - } - - private: - XmlWriter( XmlWriter const& ); - void operator=( XmlWriter const& ); - - void writeDeclaration() { - m_os << "\n"; - } - - void newlineIfNecessary() { - if( m_needsNewline ) { - m_os << std::endl; - m_needsNewline = false; - } - } - - bool m_tagIsOpen; - bool m_needsNewline; - std::vector m_tags; - std::string m_indent; - std::ostream& m_os; - }; - -} -#include "catch_reenable_warnings.h" - -#endif // TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_automake.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_automake.hpp deleted file mode 100644 index c267d8a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_automake.hpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Created by Justin R. Wilson on 2/19/2017. - * Copyright 2017 Justin R. Wilson. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED - -// Don't #include any Catch headers here - we can assume they are already -// included before this header. -// This is not good practice in general but is necessary in this case so this -// file can be distributed as a single header that works with the main -// Catch single header. - -namespace Catch { - - struct AutomakeReporter : StreamingReporterBase { - AutomakeReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ) - {} - - virtual ~AutomakeReporter(); - - static std::string getDescription() { - return "Reports test results in the format of Automake .trs files"; - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {} - - virtual bool assertionEnded( AssertionStats const& /*_assertionStats*/ ) CATCH_OVERRIDE { return true; } - - virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE { - // Possible values to emit are PASS, XFAIL, SKIP, FAIL, XPASS and ERROR. - stream << ":test-result: "; - if (_testCaseStats.totals.assertions.allPassed()) { - stream << "PASS"; - } else if (_testCaseStats.totals.assertions.allOk()) { - stream << "XFAIL"; - } else { - stream << "FAIL"; - } - stream << ' ' << _testCaseStats.testInfo.name << '\n'; - StreamingReporterBase::testCaseEnded( _testCaseStats ); - } - - virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - stream << ":test-result: SKIP " << testInfo.name << '\n'; - } - - }; - -#ifdef CATCH_IMPL - AutomakeReporter::~AutomakeReporter() {} -#endif - - INTERNAL_CATCH_REGISTER_REPORTER( "automake", AutomakeReporter) - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_AUTOMAKE_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_bases.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_bases.hpp deleted file mode 100644 index 8fc8554..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_bases.hpp +++ /dev/null @@ -1,283 +0,0 @@ -/* - * Created by Phil on 27/11/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED - -#include "../internal/catch_interfaces_reporter.h" - -#include -#include -#include -#include - -namespace Catch { - - namespace { - // Because formatting using c++ streams is stateful, drop down to C is required - // Alternatively we could use stringstream, but its performance is... not good. - std::string getFormattedDuration( double duration ) { - // Max exponent + 1 is required to represent the whole part - // + 1 for decimal point - // + 3 for the 3 decimal places - // + 1 for null terminator - const size_t maxDoubleSize = DBL_MAX_10_EXP + 1 + 1 + 3 + 1; - char buffer[maxDoubleSize]; -#ifdef _MSC_VER - sprintf_s(buffer, "%.3f", duration); -#else - sprintf(buffer, "%.3f", duration); -#endif - return std::string(buffer); - } - } - - - struct StreamingReporterBase : SharedImpl { - - StreamingReporterBase( ReporterConfig const& _config ) - : m_config( _config.fullConfig() ), - stream( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = false; - } - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporterPrefs; - } - - virtual ~StreamingReporterBase() CATCH_OVERRIDE; - - virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {} - - virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE { - currentTestRunInfo = _testRunInfo; - } - virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE { - currentGroupInfo = _groupInfo; - } - - virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE { - currentTestCaseInfo = _testInfo; - } - virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE { - m_sectionStack.push_back( _sectionInfo ); - } - - virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE { - m_sectionStack.pop_back(); - } - virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE { - currentTestCaseInfo.reset(); - } - virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE { - currentGroupInfo.reset(); - } - virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE { - currentTestCaseInfo.reset(); - currentGroupInfo.reset(); - currentTestRunInfo.reset(); - } - - virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE { - // Don't do anything with this by default. - // It can optionally be overridden in the derived class. - } - - Ptr m_config; - std::ostream& stream; - - LazyStat currentTestRunInfo; - LazyStat currentGroupInfo; - LazyStat currentTestCaseInfo; - - std::vector m_sectionStack; - ReporterPreferences m_reporterPrefs; - }; - - struct CumulativeReporterBase : SharedImpl { - template - struct Node : SharedImpl<> { - explicit Node( T const& _value ) : value( _value ) {} - virtual ~Node() {} - - typedef std::vector > ChildNodes; - T value; - ChildNodes children; - }; - struct SectionNode : SharedImpl<> { - explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {} - virtual ~SectionNode(); - - bool operator == ( SectionNode const& other ) const { - return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo; - } - bool operator == ( Ptr const& other ) const { - return operator==( *other ); - } - - SectionStats stats; - typedef std::vector > ChildSections; - typedef std::vector Assertions; - ChildSections childSections; - Assertions assertions; - std::string stdOut; - std::string stdErr; - }; - - struct BySectionInfo { - BySectionInfo( SectionInfo const& other ) : m_other( other ) {} - BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {} - bool operator() ( Ptr const& node ) const { - return node->stats.sectionInfo.lineInfo == m_other.lineInfo; - } - private: - void operator=( BySectionInfo const& ); - SectionInfo const& m_other; - }; - - - typedef Node TestCaseNode; - typedef Node TestGroupNode; - typedef Node TestRunNode; - - CumulativeReporterBase( ReporterConfig const& _config ) - : m_config( _config.fullConfig() ), - stream( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = false; - } - ~CumulativeReporterBase(); - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporterPrefs; - } - - virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {} - virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {} - - virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {} - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - SectionStats incompleteStats( sectionInfo, Counts(), 0, false ); - Ptr node; - if( m_sectionStack.empty() ) { - if( !m_rootSection ) - m_rootSection = new SectionNode( incompleteStats ); - node = m_rootSection; - } - else { - SectionNode& parentNode = *m_sectionStack.back(); - SectionNode::ChildSections::const_iterator it = - std::find_if( parentNode.childSections.begin(), - parentNode.childSections.end(), - BySectionInfo( sectionInfo ) ); - if( it == parentNode.childSections.end() ) { - node = new SectionNode( incompleteStats ); - parentNode.childSections.push_back( node ); - } - else - node = *it; - } - m_sectionStack.push_back( node ); - m_deepestSection = node; - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {} - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - assert( !m_sectionStack.empty() ); - SectionNode& sectionNode = *m_sectionStack.back(); - sectionNode.assertions.push_back( assertionStats ); - // AssertionResult holds a pointer to a temporary DecomposedExpression, - // which getExpandedExpression() calls to build the expression string. - // Our section stack copy of the assertionResult will likely outlive the - // temporary, so it must be expanded or discarded now to avoid calling - // a destroyed object later. - prepareExpandedExpression( sectionNode.assertions.back().assertionResult ); - return true; - } - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - assert( !m_sectionStack.empty() ); - SectionNode& node = *m_sectionStack.back(); - node.stats = sectionStats; - m_sectionStack.pop_back(); - } - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - Ptr node = new TestCaseNode( testCaseStats ); - assert( m_sectionStack.size() == 0 ); - node->children.push_back( m_rootSection ); - m_testCases.push_back( node ); - m_rootSection.reset(); - - assert( m_deepestSection ); - m_deepestSection->stdOut = testCaseStats.stdOut; - m_deepestSection->stdErr = testCaseStats.stdErr; - } - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - Ptr node = new TestGroupNode( testGroupStats ); - node->children.swap( m_testCases ); - m_testGroups.push_back( node ); - } - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - Ptr node = new TestRunNode( testRunStats ); - node->children.swap( m_testGroups ); - m_testRuns.push_back( node ); - testRunEndedCumulative(); - } - virtual void testRunEndedCumulative() = 0; - - virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {} - - virtual void prepareExpandedExpression( AssertionResult& result ) const { - if( result.isOk() ) - result.discardDecomposedExpression(); - else - result.expandDecomposedExpression(); - } - - Ptr m_config; - std::ostream& stream; - std::vector m_assertions; - std::vector > > m_sections; - std::vector > m_testCases; - std::vector > m_testGroups; - - std::vector > m_testRuns; - - Ptr m_rootSection; - Ptr m_deepestSection; - std::vector > m_sectionStack; - ReporterPreferences m_reporterPrefs; - - }; - - template - char const* getLineOfChars() { - static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0}; - if( !*line ) { - std::memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 ); - line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0; - } - return line; - } - - - struct TestEventListenerBase : StreamingReporterBase { - TestEventListenerBase( ReporterConfig const& _config ) - : StreamingReporterBase( _config ) - {} - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {} - virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE { - return false; - } - }; - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_compact.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_compact.hpp deleted file mode 100644 index 11e3b7c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_compact.hpp +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Created by Martin Moene on 2013-12-05. - * Copyright 2012 Martin Moene. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED - -#include "catch_reporter_bases.hpp" - -#include "../internal/catch_reporter_registrars.hpp" -#include "../internal/catch_console_colour.hpp" - -namespace Catch { - - struct CompactReporter : StreamingReporterBase { - - CompactReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ) - {} - - virtual ~CompactReporter(); - - static std::string getDescription() { - return "Reports test results on a single line, suitable for IDEs"; - } - - virtual ReporterPreferences getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = false; - return prefs; - } - - virtual void noMatchingTestCases( std::string const& spec ) { - stream << "No test cases matched '" << spec << '\'' << std::endl; - } - - virtual void assertionStarting( AssertionInfo const& ) {} - - virtual bool assertionEnded( AssertionStats const& _assertionStats ) { - AssertionResult const& result = _assertionStats.assertionResult; - - bool printInfoMessages = true; - - // Drop out if result was successful and we're not printing those - if( !m_config->includeSuccessfulResults() && result.isOk() ) { - if( result.getResultType() != ResultWas::Warning ) - return false; - printInfoMessages = false; - } - - AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); - printer.print(); - - stream << std::endl; - return true; - } - - virtual void sectionEnded(SectionStats const& _sectionStats) CATCH_OVERRIDE { - if (m_config->showDurations() == ShowDurations::Always) { - stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl; - } - } - - virtual void testRunEnded( TestRunStats const& _testRunStats ) { - printTotals( _testRunStats.totals ); - stream << '\n' << std::endl; - StreamingReporterBase::testRunEnded( _testRunStats ); - } - - private: - class AssertionPrinter { - void operator= ( AssertionPrinter const& ); - public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) - : stream( _stream ) - , stats( _stats ) - , result( _stats.assertionResult ) - , messages( _stats.infoMessages ) - , itMessage( _stats.infoMessages.begin() ) - , printInfoMessages( _printInfoMessages ) - {} - - void print() { - printSourceInfo(); - - itMessage = messages.begin(); - - switch( result.getResultType() ) { - case ResultWas::Ok: - printResultType( Colour::ResultSuccess, passedString() ); - printOriginalExpression(); - printReconstructedExpression(); - if ( ! result.hasExpression() ) - printRemainingMessages( Colour::None ); - else - printRemainingMessages(); - break; - case ResultWas::ExpressionFailed: - if( result.isOk() ) - printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) ); - else - printResultType( Colour::Error, failedString() ); - printOriginalExpression(); - printReconstructedExpression(); - printRemainingMessages(); - break; - case ResultWas::ThrewException: - printResultType( Colour::Error, failedString() ); - printIssue( "unexpected exception with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::FatalErrorCondition: - printResultType( Colour::Error, failedString() ); - printIssue( "fatal error condition with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::DidntThrowException: - printResultType( Colour::Error, failedString() ); - printIssue( "expected exception, got none" ); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::Info: - printResultType( Colour::None, "info" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::Warning: - printResultType( Colour::None, "warning" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::ExplicitFailure: - printResultType( Colour::Error, failedString() ); - printIssue( "explicitly" ); - printRemainingMessages( Colour::None ); - break; - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - printResultType( Colour::Error, "** internal error **" ); - break; - } - } - - private: - // Colour::LightGrey - - static Colour::Code dimColour() { return Colour::FileName; } - -#ifdef CATCH_PLATFORM_MAC - static const char* failedString() { return "FAILED"; } - static const char* passedString() { return "PASSED"; } -#else - static const char* failedString() { return "failed"; } - static const char* passedString() { return "passed"; } -#endif - - void printSourceInfo() const { - Colour colourGuard( Colour::FileName ); - stream << result.getSourceInfo() << ':'; - } - - void printResultType( Colour::Code colour, std::string passOrFail ) const { - if( !passOrFail.empty() ) { - { - Colour colourGuard( colour ); - stream << ' ' << passOrFail; - } - stream << ':'; - } - } - - void printIssue( std::string issue ) const { - stream << ' ' << issue; - } - - void printExpressionWas() { - if( result.hasExpression() ) { - stream << ';'; - { - Colour colour( dimColour() ); - stream << " expression was:"; - } - printOriginalExpression(); - } - } - - void printOriginalExpression() const { - if( result.hasExpression() ) { - stream << ' ' << result.getExpression(); - } - } - - void printReconstructedExpression() const { - if( result.hasExpandedExpression() ) { - { - Colour colour( dimColour() ); - stream << " for: "; - } - stream << result.getExpandedExpression(); - } - } - - void printMessage() { - if ( itMessage != messages.end() ) { - stream << " '" << itMessage->message << '\''; - ++itMessage; - } - } - - void printRemainingMessages( Colour::Code colour = dimColour() ) { - if ( itMessage == messages.end() ) - return; - - // using messages.end() directly yields compilation error: - std::vector::const_iterator itEnd = messages.end(); - const std::size_t N = static_cast( std::distance( itMessage, itEnd ) ); - - { - Colour colourGuard( colour ); - stream << " with " << pluralise( N, "message" ) << ':'; - } - - for(; itMessage != itEnd; ) { - // If this assertion is a warning ignore any INFO messages - if( printInfoMessages || itMessage->type != ResultWas::Info ) { - stream << " '" << itMessage->message << '\''; - if ( ++itMessage != itEnd ) { - Colour colourGuard( dimColour() ); - stream << " and"; - } - } - } - } - - private: - std::ostream& stream; - AssertionStats const& stats; - AssertionResult const& result; - std::vector messages; - std::vector::const_iterator itMessage; - bool printInfoMessages; - }; - - // Colour, message variants: - // - white: No tests ran. - // - red: Failed [both/all] N test cases, failed [both/all] M assertions. - // - white: Passed [both/all] N test cases (no assertions). - // - red: Failed N tests cases, failed M assertions. - // - green: Passed [both/all] N tests cases with M assertions. - - std::string bothOrAll( std::size_t count ) const { - return count == 1 ? std::string() : count == 2 ? "both " : "all " ; - } - - void printTotals( const Totals& totals ) const { - if( totals.testCases.total() == 0 ) { - stream << "No tests ran."; - } - else if( totals.testCases.failed == totals.testCases.total() ) { - Colour colour( Colour::ResultError ); - const std::string qualify_assertions_failed = - totals.assertions.failed == totals.assertions.total() ? - bothOrAll( totals.assertions.failed ) : std::string(); - stream << - "Failed " << bothOrAll( totals.testCases.failed ) - << pluralise( totals.testCases.failed, "test case" ) << ", " - "failed " << qualify_assertions_failed << - pluralise( totals.assertions.failed, "assertion" ) << '.'; - } - else if( totals.assertions.total() == 0 ) { - stream << - "Passed " << bothOrAll( totals.testCases.total() ) - << pluralise( totals.testCases.total(), "test case" ) - << " (no assertions)."; - } - else if( totals.assertions.failed ) { - Colour colour( Colour::ResultError ); - stream << - "Failed " << pluralise( totals.testCases.failed, "test case" ) << ", " - "failed " << pluralise( totals.assertions.failed, "assertion" ) << '.'; - } - else { - Colour colour( Colour::ResultSuccess ); - stream << - "Passed " << bothOrAll( totals.testCases.passed ) - << pluralise( totals.testCases.passed, "test case" ) << - " with " << pluralise( totals.assertions.passed, "assertion" ) << '.'; - } - } - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter ) - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_console.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_console.hpp deleted file mode 100644 index 711d7fb..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_console.hpp +++ /dev/null @@ -1,443 +0,0 @@ -/* - * Created by Phil on 5/12/2012. - * Copyright 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED - -#include "catch_reporter_bases.hpp" - -#include "../internal/catch_reporter_registrars.hpp" -#include "../internal/catch_console_colour.hpp" - -#include -#include - -namespace Catch { - - - struct ConsoleReporter : StreamingReporterBase { - ConsoleReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - m_headerPrinted( false ) - {} - - virtual ~ConsoleReporter() CATCH_OVERRIDE; - static std::string getDescription() { - return "Reports test results as plain lines of text"; - } - - virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE { - stream << "No test cases matched '" << spec << '\'' << std::endl; - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { - } - - virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE { - AssertionResult const& result = _assertionStats.assertionResult; - - bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); - - // Drop out if result was successful but we're not printing them. - if( !includeResults && result.getResultType() != ResultWas::Warning ) - return false; - - lazyPrint(); - - AssertionPrinter printer( stream, _assertionStats, includeResults ); - printer.print(); - stream << std::endl; - return true; - } - - virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE { - m_headerPrinted = false; - StreamingReporterBase::sectionStarting( _sectionInfo ); - } - virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE { - if( _sectionStats.missingAssertions ) { - lazyPrint(); - Colour colour( Colour::ResultError ); - if( m_sectionStack.size() > 1 ) - stream << "\nNo assertions in section"; - else - stream << "\nNo assertions in test case"; - stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl; - } - if( m_config->showDurations() == ShowDurations::Always ) { - stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl; - } - if( m_headerPrinted ) { - m_headerPrinted = false; - } - StreamingReporterBase::sectionEnded( _sectionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseEnded( _testCaseStats ); - m_headerPrinted = false; - } - virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE { - if( currentGroupInfo.used ) { - printSummaryDivider(); - stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n"; - printTotals( _testGroupStats.totals ); - stream << '\n' << std::endl; - } - StreamingReporterBase::testGroupEnded( _testGroupStats ); - } - virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE { - printTotalsDivider( _testRunStats.totals ); - printTotals( _testRunStats.totals ); - stream << std::endl; - StreamingReporterBase::testRunEnded( _testRunStats ); - } - - private: - - class AssertionPrinter { - void operator= ( AssertionPrinter const& ); - public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) - : stream( _stream ), - stats( _stats ), - result( _stats.assertionResult ), - colour( Colour::None ), - message( result.getMessage() ), - messages( _stats.infoMessages ), - printInfoMessages( _printInfoMessages ) - { - switch( result.getResultType() ) { - case ResultWas::Ok: - colour = Colour::Success; - passOrFail = "PASSED"; - //if( result.hasMessage() ) - if( _stats.infoMessages.size() == 1 ) - messageLabel = "with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "with messages"; - break; - case ResultWas::ExpressionFailed: - if( result.isOk() ) { - colour = Colour::Success; - passOrFail = "FAILED - but was ok"; - } - else { - colour = Colour::Error; - passOrFail = "FAILED"; - } - if( _stats.infoMessages.size() == 1 ) - messageLabel = "with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "with messages"; - break; - case ResultWas::ThrewException: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "due to unexpected exception with message"; - break; - case ResultWas::FatalErrorCondition: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "due to a fatal error condition"; - break; - case ResultWas::DidntThrowException: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "because no exception was thrown where one was expected"; - break; - case ResultWas::Info: - messageLabel = "info"; - break; - case ResultWas::Warning: - messageLabel = "warning"; - break; - case ResultWas::ExplicitFailure: - passOrFail = "FAILED"; - colour = Colour::Error; - if( _stats.infoMessages.size() == 1 ) - messageLabel = "explicitly with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "explicitly with messages"; - break; - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - passOrFail = "** internal error **"; - colour = Colour::Error; - break; - } - } - - void print() const { - printSourceInfo(); - if( stats.totals.assertions.total() > 0 ) { - if( result.isOk() ) - stream << '\n'; - printResultType(); - printOriginalExpression(); - printReconstructedExpression(); - } - else { - stream << '\n'; - } - printMessage(); - } - - private: - void printResultType() const { - if( !passOrFail.empty() ) { - Colour colourGuard( colour ); - stream << passOrFail << ":\n"; - } - } - void printOriginalExpression() const { - if( result.hasExpression() ) { - Colour colourGuard( Colour::OriginalExpression ); - stream << " "; - stream << result.getExpressionInMacro(); - stream << '\n'; - } - } - void printReconstructedExpression() const { - if( result.hasExpandedExpression() ) { - stream << "with expansion:\n"; - Colour colourGuard( Colour::ReconstructedExpression ); - stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << '\n'; - } - } - void printMessage() const { - if( !messageLabel.empty() ) - stream << messageLabel << ':' << '\n'; - for( std::vector::const_iterator it = messages.begin(), itEnd = messages.end(); - it != itEnd; - ++it ) { - // If this assertion is a warning ignore any INFO messages - if( printInfoMessages || it->type != ResultWas::Info ) - stream << Text( it->message, TextAttributes().setIndent(2) ) << '\n'; - } - } - void printSourceInfo() const { - Colour colourGuard( Colour::FileName ); - stream << result.getSourceInfo() << ": "; - } - - std::ostream& stream; - AssertionStats const& stats; - AssertionResult const& result; - Colour::Code colour; - std::string passOrFail; - std::string messageLabel; - std::string message; - std::vector messages; - bool printInfoMessages; - }; - - void lazyPrint() { - - if( !currentTestRunInfo.used ) - lazyPrintRunInfo(); - if( !currentGroupInfo.used ) - lazyPrintGroupInfo(); - - if( !m_headerPrinted ) { - printTestCaseAndSectionHeader(); - m_headerPrinted = true; - } - } - void lazyPrintRunInfo() { - stream << '\n' << getLineOfChars<'~'>() << '\n'; - Colour colour( Colour::SecondaryText ); - stream << currentTestRunInfo->name - << " is a Catch v" << libraryVersion << " host application.\n" - << "Run with -? for options\n\n"; - - if( m_config->rngSeed() != 0 ) - stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n"; - - currentTestRunInfo.used = true; - } - void lazyPrintGroupInfo() { - if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) { - printClosedHeader( "Group: " + currentGroupInfo->name ); - currentGroupInfo.used = true; - } - } - void printTestCaseAndSectionHeader() { - assert( !m_sectionStack.empty() ); - printOpenHeader( currentTestCaseInfo->name ); - - if( m_sectionStack.size() > 1 ) { - Colour colourGuard( Colour::Headers ); - - std::vector::const_iterator - it = m_sectionStack.begin()+1, // Skip first section (test case) - itEnd = m_sectionStack.end(); - for( ; it != itEnd; ++it ) - printHeaderString( it->name, 2 ); - } - - SourceLineInfo lineInfo = m_sectionStack.back().lineInfo; - - if( !lineInfo.empty() ){ - stream << getLineOfChars<'-'>() << '\n'; - Colour colourGuard( Colour::FileName ); - stream << lineInfo << '\n'; - } - stream << getLineOfChars<'.'>() << '\n' << std::endl; - } - - void printClosedHeader( std::string const& _name ) { - printOpenHeader( _name ); - stream << getLineOfChars<'.'>() << '\n'; - } - void printOpenHeader( std::string const& _name ) { - stream << getLineOfChars<'-'>() << '\n'; - { - Colour colourGuard( Colour::Headers ); - printHeaderString( _name ); - } - } - - // if string has a : in first line will set indent to follow it on - // subsequent lines - void printHeaderString( std::string const& _string, std::size_t indent = 0 ) { - std::size_t i = _string.find( ": " ); - if( i != std::string::npos ) - i+=2; - else - i = 0; - stream << Text( _string, TextAttributes() - .setIndent( indent+i) - .setInitialIndent( indent ) ) << '\n'; - } - - struct SummaryColumn { - - SummaryColumn( std::string const& _label, Colour::Code _colour ) - : label( _label ), - colour( _colour ) - {} - SummaryColumn addRow( std::size_t count ) { - std::ostringstream oss; - oss << count; - std::string row = oss.str(); - for( std::vector::iterator it = rows.begin(); it != rows.end(); ++it ) { - while( it->size() < row.size() ) - *it = ' ' + *it; - while( it->size() > row.size() ) - row = ' ' + row; - } - rows.push_back( row ); - return *this; - } - - std::string label; - Colour::Code colour; - std::vector rows; - - }; - - void printTotals( Totals const& totals ) { - if( totals.testCases.total() == 0 ) { - stream << Colour( Colour::Warning ) << "No tests ran\n"; - } - else if( totals.assertions.total() > 0 && totals.testCases.allPassed() ) { - stream << Colour( Colour::ResultSuccess ) << "All tests passed"; - stream << " (" - << pluralise( totals.assertions.passed, "assertion" ) << " in " - << pluralise( totals.testCases.passed, "test case" ) << ')' - << '\n'; - } - else { - - std::vector columns; - columns.push_back( SummaryColumn( "", Colour::None ) - .addRow( totals.testCases.total() ) - .addRow( totals.assertions.total() ) ); - columns.push_back( SummaryColumn( "passed", Colour::Success ) - .addRow( totals.testCases.passed ) - .addRow( totals.assertions.passed ) ); - columns.push_back( SummaryColumn( "failed", Colour::ResultError ) - .addRow( totals.testCases.failed ) - .addRow( totals.assertions.failed ) ); - columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure ) - .addRow( totals.testCases.failedButOk ) - .addRow( totals.assertions.failedButOk ) ); - - printSummaryRow( "test cases", columns, 0 ); - printSummaryRow( "assertions", columns, 1 ); - } - } - void printSummaryRow( std::string const& label, std::vector const& cols, std::size_t row ) { - for( std::vector::const_iterator it = cols.begin(); it != cols.end(); ++it ) { - std::string value = it->rows[row]; - if( it->label.empty() ) { - stream << label << ": "; - if( value != "0" ) - stream << value; - else - stream << Colour( Colour::Warning ) << "- none -"; - } - else if( value != "0" ) { - stream << Colour( Colour::LightGrey ) << " | "; - stream << Colour( it->colour ) - << value << ' ' << it->label; - } - } - stream << '\n'; - } - - static std::size_t makeRatio( std::size_t number, std::size_t total ) { - std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0; - return ( ratio == 0 && number > 0 ) ? 1 : ratio; - } - static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) { - if( i > j && i > k ) - return i; - else if( j > k ) - return j; - else - return k; - } - - void printTotalsDivider( Totals const& totals ) { - if( totals.testCases.total() > 0 ) { - std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() ); - std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() ); - std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() ); - while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 ) - findMax( failedRatio, failedButOkRatio, passedRatio )++; - while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 ) - findMax( failedRatio, failedButOkRatio, passedRatio )--; - - stream << Colour( Colour::Error ) << std::string( failedRatio, '=' ); - stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' ); - if( totals.testCases.allPassed() ) - stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' ); - else - stream << Colour( Colour::Success ) << std::string( passedRatio, '=' ); - } - else { - stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' ); - } - stream << '\n'; - } - void printSummaryDivider() { - stream << getLineOfChars<'-'>() << '\n'; - } - - private: - bool m_headerPrinted; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter ) - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_junit.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_junit.hpp deleted file mode 100644 index 7ae9984..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_junit.hpp +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Created by Phil on 26/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED - -#include "catch_reporter_bases.hpp" - -#include "../internal/catch_tostring.h" -#include "../internal/catch_reporter_registrars.hpp" -#include "../internal/catch_xmlwriter.hpp" - -#include - -namespace Catch { - - namespace { - std::string getCurrentTimestamp() { - // Beware, this is not reentrant because of backward compatibility issues - // Also, UTC only, again because of backward compatibility (%z is C++11) - time_t rawtime; - std::time(&rawtime); - const size_t timeStampSize = sizeof("2017-01-16T17:06:45Z"); - -#ifdef _MSC_VER - std::tm timeInfo = {}; - gmtime_s(&timeInfo, &rawtime); -#else - std::tm* timeInfo; - timeInfo = std::gmtime(&rawtime); -#endif - - char timeStamp[timeStampSize]; - const char * const fmt = "%Y-%m-%dT%H:%M:%SZ"; - -#ifdef _MSC_VER - std::strftime(timeStamp, timeStampSize, fmt, &timeInfo); -#else - std::strftime(timeStamp, timeStampSize, fmt, timeInfo); -#endif - return std::string(timeStamp); - } - - } - - class JunitReporter : public CumulativeReporterBase { - public: - JunitReporter( ReporterConfig const& _config ) - : CumulativeReporterBase( _config ), - xml( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = true; - } - - virtual ~JunitReporter() CATCH_OVERRIDE; - - static std::string getDescription() { - return "Reports test results in an XML format that looks like Ant's junitreport target"; - } - - virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {} - - virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE { - CumulativeReporterBase::testRunStarting( runInfo ); - xml.startElement( "testsuites" ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - suiteTimer.start(); - stdOutForSuite.str(""); - stdErrForSuite.str(""); - unexpectedExceptions = 0; - CumulativeReporterBase::testGroupStarting( groupInfo ); - } - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException ) - unexpectedExceptions++; - return CumulativeReporterBase::assertionEnded( assertionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - stdOutForSuite << testCaseStats.stdOut; - stdErrForSuite << testCaseStats.stdErr; - CumulativeReporterBase::testCaseEnded( testCaseStats ); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - double suiteTime = suiteTimer.getElapsedSeconds(); - CumulativeReporterBase::testGroupEnded( testGroupStats ); - writeGroup( *m_testGroups.back(), suiteTime ); - } - - virtual void testRunEndedCumulative() CATCH_OVERRIDE { - xml.endElement(); - } - - void writeGroup( TestGroupNode const& groupNode, double suiteTime ) { - XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" ); - TestGroupStats const& stats = groupNode.value; - xml.writeAttribute( "name", stats.groupInfo.name ); - xml.writeAttribute( "errors", unexpectedExceptions ); - xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions ); - xml.writeAttribute( "tests", stats.totals.assertions.total() ); - xml.writeAttribute( "hostname", "tbd" ); // !TBD - if( m_config->showDurations() == ShowDurations::Never ) - xml.writeAttribute( "time", "" ); - else - xml.writeAttribute( "time", suiteTime ); - xml.writeAttribute( "timestamp", getCurrentTimestamp() ); - - // Write test cases - for( TestGroupNode::ChildNodes::const_iterator - it = groupNode.children.begin(), itEnd = groupNode.children.end(); - it != itEnd; - ++it ) - writeTestCase( **it ); - - xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false ); - xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false ); - } - - void writeTestCase( TestCaseNode const& testCaseNode ) { - TestCaseStats const& stats = testCaseNode.value; - - // All test cases have exactly one section - which represents the - // test case itself. That section may have 0-n nested sections - assert( testCaseNode.children.size() == 1 ); - SectionNode const& rootSection = *testCaseNode.children.front(); - - std::string className = stats.testInfo.className; - - if( className.empty() ) { - if( rootSection.childSections.empty() ) - className = "global"; - } - writeSection( className, "", rootSection ); - } - - void writeSection( std::string const& className, - std::string const& rootName, - SectionNode const& sectionNode ) { - std::string name = trim( sectionNode.stats.sectionInfo.name ); - if( !rootName.empty() ) - name = rootName + '/' + name; - - if( !sectionNode.assertions.empty() || - !sectionNode.stdOut.empty() || - !sectionNode.stdErr.empty() ) { - XmlWriter::ScopedElement e = xml.scopedElement( "testcase" ); - if( className.empty() ) { - xml.writeAttribute( "classname", name ); - xml.writeAttribute( "name", "root" ); - } - else { - xml.writeAttribute( "classname", className ); - xml.writeAttribute( "name", name ); - } - xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) ); - - writeAssertions( sectionNode ); - - if( !sectionNode.stdOut.empty() ) - xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false ); - if( !sectionNode.stdErr.empty() ) - xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false ); - } - for( SectionNode::ChildSections::const_iterator - it = sectionNode.childSections.begin(), - itEnd = sectionNode.childSections.end(); - it != itEnd; - ++it ) - if( className.empty() ) - writeSection( name, "", **it ); - else - writeSection( className, name, **it ); - } - - void writeAssertions( SectionNode const& sectionNode ) { - for( SectionNode::Assertions::const_iterator - it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end(); - it != itEnd; - ++it ) - writeAssertion( *it ); - } - void writeAssertion( AssertionStats const& stats ) { - AssertionResult const& result = stats.assertionResult; - if( !result.isOk() ) { - std::string elementName; - switch( result.getResultType() ) { - case ResultWas::ThrewException: - case ResultWas::FatalErrorCondition: - elementName = "error"; - break; - case ResultWas::ExplicitFailure: - elementName = "failure"; - break; - case ResultWas::ExpressionFailed: - elementName = "failure"; - break; - case ResultWas::DidntThrowException: - elementName = "failure"; - break; - - // We should never see these here: - case ResultWas::Info: - case ResultWas::Warning: - case ResultWas::Ok: - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - elementName = "internalError"; - break; - } - - XmlWriter::ScopedElement e = xml.scopedElement( elementName ); - - xml.writeAttribute( "message", result.getExpandedExpression() ); - xml.writeAttribute( "type", result.getTestMacroName() ); - - std::ostringstream oss; - if( !result.getMessage().empty() ) - oss << result.getMessage() << '\n'; - for( std::vector::const_iterator - it = stats.infoMessages.begin(), - itEnd = stats.infoMessages.end(); - it != itEnd; - ++it ) - if( it->type == ResultWas::Info ) - oss << it->message << '\n'; - - oss << "at " << result.getSourceInfo(); - xml.writeText( oss.str(), false ); - } - } - - XmlWriter xml; - Timer suiteTimer; - std::ostringstream stdOutForSuite; - std::ostringstream stdErrForSuite; - unsigned int unexpectedExceptions; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter ) - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_multi.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_multi.hpp deleted file mode 100644 index 0e06892..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_multi.hpp +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Created by Phil on 5/08/2015. - * Copyright 2015 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED - -#include "../internal/catch_interfaces_reporter.h" - -namespace Catch { - -class MultipleReporters : public SharedImpl { - typedef std::vector > Reporters; - Reporters m_reporters; - -public: - void add( Ptr const& reporter ) { - m_reporters.push_back( reporter ); - } - -public: // IStreamingReporter - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporters[0]->getPreferences(); - } - - virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->noMatchingTestCases( spec ); - } - - - virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testRunStarting( testRunInfo ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testGroupStarting( groupInfo ); - } - - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testCaseStarting( testInfo ); - } - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->sectionStarting( sectionInfo ); - } - - - virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->assertionStarting( assertionInfo ); - } - - - // The return value indicates if the messages buffer should be cleared: - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - bool clearBuffer = false; - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - clearBuffer |= (*it)->assertionEnded( assertionStats ); - return clearBuffer; - } - - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->sectionEnded( sectionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testCaseEnded( testCaseStats ); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testGroupEnded( testGroupStats ); - } - - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testRunEnded( testRunStats ); - } - - - virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->skipTest( testInfo ); - } - - virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE { - return this; - } - -}; - -Ptr addReporter( Ptr const& existingReporter, Ptr const& additionalReporter ) { - Ptr resultingReporter; - - if( existingReporter ) { - MultipleReporters* multi = existingReporter->tryAsMulti(); - if( !multi ) { - multi = new MultipleReporters; - resultingReporter = Ptr( multi ); - if( existingReporter ) - multi->add( existingReporter ); - } - else - resultingReporter = existingReporter; - multi->add( additionalReporter ); - } - else - resultingReporter = additionalReporter; - - return resultingReporter; -} - - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_tap.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_tap.hpp deleted file mode 100644 index d2eeb3c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_tap.hpp +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Created by Colton Wolkins on 2015-08-15. - * Copyright 2015 Martin Moene. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_TAP_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_TAP_HPP_INCLUDED - - -// Don't #include any Catch headers here - we can assume they are already -// included before this header. -// This is not good practice in general but is necessary in this case so this -// file can be distributed as a single header that works with the main -// Catch single header. - -#include - -namespace Catch { - - struct TAPReporter : StreamingReporterBase { - - TAPReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - counter(0) - {} - - virtual ~TAPReporter(); - - static std::string getDescription() { - return "Reports test results in TAP format, suitable for test harneses"; - } - - virtual ReporterPreferences getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = false; - return prefs; - } - - virtual void noMatchingTestCases( std::string const& spec ) { - stream << "# No test cases matched '" << spec << "'" << std::endl; - } - - virtual void assertionStarting( AssertionInfo const& ) {} - - virtual bool assertionEnded( AssertionStats const& _assertionStats ) { - ++counter; - - AssertionPrinter printer( stream, _assertionStats, counter ); - printer.print(); - stream << " # " << currentTestCaseInfo->name ; - - stream << std::endl; - return true; - } - - virtual void testRunEnded( TestRunStats const& _testRunStats ) { - printTotals( _testRunStats.totals ); - stream << "\n" << std::endl; - StreamingReporterBase::testRunEnded( _testRunStats ); - } - - private: - size_t counter; - class AssertionPrinter { - void operator= ( AssertionPrinter const& ); - public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, size_t counter ) - : stream( _stream ) - , stats( _stats ) - , result( _stats.assertionResult ) - , messages( _stats.infoMessages ) - , itMessage( _stats.infoMessages.begin() ) - , printInfoMessages( true ) - , counter(counter) - {} - - void print() { - itMessage = messages.begin(); - - switch( result.getResultType() ) { - case ResultWas::Ok: - printResultType( passedString() ); - printOriginalExpression(); - printReconstructedExpression(); - if ( ! result.hasExpression() ) - printRemainingMessages( Colour::None ); - else - printRemainingMessages(); - break; - case ResultWas::ExpressionFailed: - if (result.isOk()) { - printResultType(passedString()); - } else { - printResultType(failedString()); - } - printOriginalExpression(); - printReconstructedExpression(); - if (result.isOk()) { - printIssue(" # TODO"); - } - printRemainingMessages(); - break; - case ResultWas::ThrewException: - printResultType( failedString() ); - printIssue( "unexpected exception with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::FatalErrorCondition: - printResultType( failedString() ); - printIssue( "fatal error condition with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::DidntThrowException: - printResultType( failedString() ); - printIssue( "expected exception, got none" ); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::Info: - printResultType( "info" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::Warning: - printResultType( "warning" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::ExplicitFailure: - printResultType( failedString() ); - printIssue( "explicitly" ); - printRemainingMessages( Colour::None ); - break; - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - printResultType( "** internal error **" ); - break; - } - } - - private: - static Colour::Code dimColour() { return Colour::FileName; } - - static const char* failedString() { return "not ok"; } - static const char* passedString() { return "ok"; } - - void printSourceInfo() const { - Colour colourGuard( dimColour() ); - stream << result.getSourceInfo() << ":"; - } - - void printResultType( std::string passOrFail ) const { - if( !passOrFail.empty() ) { - stream << passOrFail << ' ' << counter << " -"; - } - } - - void printIssue( std::string issue ) const { - stream << " " << issue; - } - - void printExpressionWas() { - if( result.hasExpression() ) { - stream << ";"; - { - Colour colour( dimColour() ); - stream << " expression was:"; - } - printOriginalExpression(); - } - } - - void printOriginalExpression() const { - if( result.hasExpression() ) { - stream << " " << result.getExpression(); - } - } - - void printReconstructedExpression() const { - if( result.hasExpandedExpression() ) { - { - Colour colour( dimColour() ); - stream << " for: "; - } - std::string expr = result.getExpandedExpression(); - std::replace( expr.begin(), expr.end(), '\n', ' '); - stream << expr; - } - } - - void printMessage() { - if ( itMessage != messages.end() ) { - stream << " '" << itMessage->message << "'"; - ++itMessage; - } - } - - void printRemainingMessages( Colour::Code colour = dimColour() ) { - if (itMessage == messages.end()) { - return; - } - - // using messages.end() directly yields compilation error: - std::vector::const_iterator itEnd = messages.end(); - const std::size_t N = static_cast( std::distance( itMessage, itEnd ) ); - - { - Colour colourGuard( colour ); - stream << " with " << pluralise( N, "message" ) << ":"; - } - - for(; itMessage != itEnd; ) { - // If this assertion is a warning ignore any INFO messages - if( printInfoMessages || itMessage->type != ResultWas::Info ) { - stream << " '" << itMessage->message << "'"; - if ( ++itMessage != itEnd ) { - Colour colourGuard( dimColour() ); - stream << " and"; - } - } - } - } - - private: - std::ostream& stream; - AssertionStats const& stats; - AssertionResult const& result; - std::vector messages; - std::vector::const_iterator itMessage; - bool printInfoMessages; - size_t counter; - }; - - void printTotals( const Totals& totals ) const { - if( totals.testCases.total() == 0 ) { - stream << "1..0 # Skipped: No tests ran."; - } else { - stream << "1.." << counter; - } - } - }; - -#ifdef CATCH_IMPL - TAPReporter::~TAPReporter() {} -#endif - - INTERNAL_CATCH_REGISTER_REPORTER( "tap", TAPReporter ) - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_TAP_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_teamcity.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_teamcity.hpp deleted file mode 100644 index 1e633f1..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_teamcity.hpp +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Created by Phil Nash on 19th December 2014 - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_TEAMCITY_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_TEAMCITY_HPP_INCLUDED - -// Don't #include any Catch headers here - we can assume they are already -// included before this header. -// This is not good practice in general but is necessary in this case so this -// file can be distributed as a single header that works with the main -// Catch single header. - -#include - -#ifdef __clang__ -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wpadded" -# pragma clang diagnostic ignored "-Wc++98-compat" -# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" -#endif - -namespace Catch { - - struct TeamCityReporter : StreamingReporterBase { - TeamCityReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - m_headerPrintedForThisSection( false ) - { - m_reporterPrefs.shouldRedirectStdOut = true; - } - - static std::string escape( std::string const& str ) { - std::string escaped = str; - replaceInPlace( escaped, "|", "||" ); - replaceInPlace( escaped, "'", "|'" ); - replaceInPlace( escaped, "\n", "|n" ); - replaceInPlace( escaped, "\r", "|r" ); - replaceInPlace( escaped, "[", "|[" ); - replaceInPlace( escaped, "]", "|]" ); - return escaped; - } - virtual ~TeamCityReporter() CATCH_OVERRIDE; - - static std::string getDescription() { - return "Reports test results as TeamCity service messages"; - } - - virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - stream << "##teamcity[testIgnored name='" - << escape( testInfo.name ) << "'"; - if( testInfo.isHidden() ) - stream << " message='hidden test'"; - else - stream << " message='test skipped because it didn|'t match the test spec'"; - stream << "]\n"; - } - - virtual void noMatchingTestCases( std::string const& /* spec */ ) CATCH_OVERRIDE {} - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupStarting( groupInfo ); - stream << "##teamcity[testSuiteStarted name='" - << escape( groupInfo.name ) << "']\n"; - } - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupEnded( testGroupStats ); - stream << "##teamcity[testSuiteFinished name='" - << escape( testGroupStats.groupInfo.name ) << "']\n"; - } - - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { - } - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - AssertionResult const& result = assertionStats.assertionResult; - if( !result.isOk() ) { - - std::ostringstream msg; - if( !m_headerPrintedForThisSection ) - printSectionHeader( msg ); - m_headerPrintedForThisSection = true; - - msg << result.getSourceInfo() << "\n"; - - switch( result.getResultType() ) { - case ResultWas::ExpressionFailed: - msg << "expression failed"; - break; - case ResultWas::ThrewException: - msg << "unexpected exception"; - break; - case ResultWas::FatalErrorCondition: - msg << "fatal error condition"; - break; - case ResultWas::DidntThrowException: - msg << "no exception was thrown where one was expected"; - break; - case ResultWas::ExplicitFailure: - msg << "explicit failure"; - break; - - // We shouldn't get here because of the isOk() test - case ResultWas::Ok: - case ResultWas::Info: - case ResultWas::Warning: - - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - CATCH_NOT_IMPLEMENTED; - } - if( assertionStats.infoMessages.size() == 1 ) - msg << " with message:"; - if( assertionStats.infoMessages.size() > 1 ) - msg << " with messages:"; - for( std::vector::const_iterator - it = assertionStats.infoMessages.begin(), - itEnd = assertionStats.infoMessages.end(); - it != itEnd; - ++it ) - msg << "\n \"" << it->message << "\""; - - - if( result.hasExpression() ) { - msg << - "\n " << result.getExpressionInMacro() << "\n" - "with expansion:\n" << - " " << result.getExpandedExpression() << "\n"; - } - - stream << "##teamcity[testFailed" - << " name='" << escape( currentTestCaseInfo->name )<< "'" - << " message='" << escape( msg.str() ) << "'" - << "]\n"; - } - return true; - } - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - m_headerPrintedForThisSection = false; - StreamingReporterBase::sectionStarting( sectionInfo ); - } - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseStarting( testInfo ); - stream << "##teamcity[testStarted name='" - << escape( testInfo.name ) << "']\n"; - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseEnded( testCaseStats ); - if( !testCaseStats.stdOut.empty() ) - stream << "##teamcity[testStdOut name='" - << escape( testCaseStats.testInfo.name ) - << "' out='" << escape( testCaseStats.stdOut ) << "']\n"; - if( !testCaseStats.stdErr.empty() ) - stream << "##teamcity[testStdErr name='" - << escape( testCaseStats.testInfo.name ) - << "' out='" << escape( testCaseStats.stdErr ) << "']\n"; - stream << "##teamcity[testFinished name='" - << escape( testCaseStats.testInfo.name ) << "']\n"; - } - - private: - void printSectionHeader( std::ostream& os ) { - assert( !m_sectionStack.empty() ); - - if( m_sectionStack.size() > 1 ) { - os << getLineOfChars<'-'>() << "\n"; - - std::vector::const_iterator - it = m_sectionStack.begin()+1, // Skip first section (test case) - itEnd = m_sectionStack.end(); - for( ; it != itEnd; ++it ) - printHeaderString( os, it->name ); - os << getLineOfChars<'-'>() << "\n"; - } - - SourceLineInfo lineInfo = m_sectionStack.front().lineInfo; - - if( !lineInfo.empty() ) - os << lineInfo << "\n"; - os << getLineOfChars<'.'>() << "\n\n"; - } - - // if string has a : in first line will set indent to follow it on - // subsequent lines - void printHeaderString( std::ostream& os, std::string const& _string, std::size_t indent = 0 ) { - std::size_t i = _string.find( ": " ); - if( i != std::string::npos ) - i+=2; - else - i = 0; - os << Text( _string, TextAttributes() - .setIndent( indent+i) - .setInitialIndent( indent ) ) << "\n"; - } - private: - bool m_headerPrintedForThisSection; - - }; - -#ifdef CATCH_IMPL - TeamCityReporter::~TeamCityReporter() {} -#endif - - INTERNAL_CATCH_REGISTER_REPORTER( "teamcity", TeamCityReporter ) - -} // end namespace Catch - -#ifdef __clang__ -# pragma clang diagnostic pop -#endif - -#endif // TWOBLUECUBES_CATCH_REPORTER_TEAMCITY_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_xml.hpp b/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_xml.hpp deleted file mode 100644 index 55c1956..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/include/reporters/catch_reporter_xml.hpp +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Created by Phil on 28/10/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED -#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED - -#include "catch_reporter_bases.hpp" - -#include "../internal/catch_capture.hpp" -#include "../internal/catch_reporter_registrars.hpp" -#include "../internal/catch_xmlwriter.hpp" -#include "../internal/catch_timer.h" - -namespace Catch { - class XmlReporter : public StreamingReporterBase { - public: - XmlReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - m_xml(_config.stream()), - m_sectionDepth( 0 ) - { - m_reporterPrefs.shouldRedirectStdOut = true; - } - - virtual ~XmlReporter() CATCH_OVERRIDE; - - static std::string getDescription() { - return "Reports test results as an XML document"; - } - - virtual std::string getStylesheetRef() const { - return std::string(); - } - - void writeSourceInfo( SourceLineInfo const& sourceInfo ) { - m_xml - .writeAttribute( "filename", sourceInfo.file ) - .writeAttribute( "line", sourceInfo.line ); - } - - public: // StreamingReporterBase - - virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE { - StreamingReporterBase::noMatchingTestCases( s ); - } - - virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testRunStarting( testInfo ); - std::string stylesheetRef = getStylesheetRef(); - if( !stylesheetRef.empty() ) - m_xml.writeStylesheetRef( stylesheetRef ); - m_xml.startElement( "Catch" ); - if( !m_config->name().empty() ) - m_xml.writeAttribute( "name", m_config->name() ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupStarting( groupInfo ); - m_xml.startElement( "Group" ) - .writeAttribute( "name", groupInfo.name ); - } - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseStarting(testInfo); - m_xml.startElement( "TestCase" ) - .writeAttribute( "name", trim( testInfo.name ) ) - .writeAttribute( "description", testInfo.description ) - .writeAttribute( "tags", testInfo.tagsAsString ); - - writeSourceInfo( testInfo.lineInfo ); - - if ( m_config->showDurations() == ShowDurations::Always ) - m_testCaseTimer.start(); - m_xml.ensureTagClosed(); - } - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - StreamingReporterBase::sectionStarting( sectionInfo ); - if( m_sectionDepth++ > 0 ) { - m_xml.startElement( "Section" ) - .writeAttribute( "name", trim( sectionInfo.name ) ) - .writeAttribute( "description", sectionInfo.description ); - writeSourceInfo( sectionInfo.lineInfo ); - m_xml.ensureTagClosed(); - } - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { } - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - - AssertionResult const& result = assertionStats.assertionResult; - - bool includeResults = m_config->includeSuccessfulResults() || !result.isOk(); - - if( includeResults ) { - // Print any info messages in tags. - for( std::vector::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); - it != itEnd; - ++it ) { - if( it->type == ResultWas::Info ) { - m_xml.scopedElement( "Info" ) - .writeText( it->message ); - } else if ( it->type == ResultWas::Warning ) { - m_xml.scopedElement( "Warning" ) - .writeText( it->message ); - } - } - } - - // Drop out if result was successful but we're not printing them. - if( !includeResults && result.getResultType() != ResultWas::Warning ) - return true; - - - // Print the expression if there is one. - if( result.hasExpression() ) { - m_xml.startElement( "Expression" ) - .writeAttribute( "success", result.succeeded() ) - .writeAttribute( "type", result.getTestMacroName() ); - - writeSourceInfo( result.getSourceInfo() ); - - m_xml.scopedElement( "Original" ) - .writeText( result.getExpression() ); - m_xml.scopedElement( "Expanded" ) - .writeText( result.getExpandedExpression() ); - } - - // And... Print a result applicable to each result type. - switch( result.getResultType() ) { - case ResultWas::ThrewException: - m_xml.startElement( "Exception" ); - writeSourceInfo( result.getSourceInfo() ); - m_xml.writeText( result.getMessage() ); - m_xml.endElement(); - break; - case ResultWas::FatalErrorCondition: - m_xml.startElement( "FatalErrorCondition" ); - writeSourceInfo( result.getSourceInfo() ); - m_xml.writeText( result.getMessage() ); - m_xml.endElement(); - break; - case ResultWas::Info: - m_xml.scopedElement( "Info" ) - .writeText( result.getMessage() ); - break; - case ResultWas::Warning: - // Warning will already have been written - break; - case ResultWas::ExplicitFailure: - m_xml.startElement( "Failure" ); - writeSourceInfo( result.getSourceInfo() ); - m_xml.writeText( result.getMessage() ); - m_xml.endElement(); - break; - default: - break; - } - - if( result.hasExpression() ) - m_xml.endElement(); - - return true; - } - - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - StreamingReporterBase::sectionEnded( sectionStats ); - if( --m_sectionDepth > 0 ) { - XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" ); - e.writeAttribute( "successes", sectionStats.assertions.passed ); - e.writeAttribute( "failures", sectionStats.assertions.failed ); - e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk ); - - if ( m_config->showDurations() == ShowDurations::Always ) - e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds ); - - m_xml.endElement(); - } - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseEnded( testCaseStats ); - XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" ); - e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() ); - - if ( m_config->showDurations() == ShowDurations::Always ) - e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() ); - - if( !testCaseStats.stdOut.empty() ) - m_xml.scopedElement( "StdOut" ).writeText( trim( testCaseStats.stdOut ), false ); - if( !testCaseStats.stdErr.empty() ) - m_xml.scopedElement( "StdErr" ).writeText( trim( testCaseStats.stdErr ), false ); - - m_xml.endElement(); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupEnded( testGroupStats ); - // TODO: Check testGroupStats.aborting and act accordingly. - m_xml.scopedElement( "OverallResults" ) - .writeAttribute( "successes", testGroupStats.totals.assertions.passed ) - .writeAttribute( "failures", testGroupStats.totals.assertions.failed ) - .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk ); - m_xml.endElement(); - } - - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - StreamingReporterBase::testRunEnded( testRunStats ); - m_xml.scopedElement( "OverallResults" ) - .writeAttribute( "successes", testRunStats.totals.assertions.passed ) - .writeAttribute( "failures", testRunStats.totals.assertions.failed ) - .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk ); - m_xml.endElement(); - } - - private: - Timer m_testCaseTimer; - XmlWriter m_xml; - int m_sectionDepth; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter ) - -} // end namespace Catch - -#endif // TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/BenchMain.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/BenchMain.cpp deleted file mode 100644 index 32ef4ed..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/BenchMain.cpp +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Created by Martin on 16/01/2017. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#define CATCH_CONFIG_MAIN -#include "catch.hpp" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/StringificationBench.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/StringificationBench.cpp deleted file mode 100644 index 1c14939..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/StringificationBench.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Created by Martin on 16/01/2017. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -#include - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE("Successful tests -- REQUIRE", "[Success]") { - const size_t sz = 1 * 1024 * 1024; - - - std::vector vec; vec.reserve(sz); - for (size_t i = 0; i < sz; ++i){ - vec.push_back(i); - REQUIRE(vec.back() == i); - } -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE("Successful tests -- CHECK", "[Success]") { - const size_t sz = 1 * 1024 * 1024; - - - std::vector vec; vec.reserve(sz); - for (size_t i = 0; i < sz; ++i){ - vec.push_back(i); - CHECK(vec.back() == i); - } -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE("Unsuccessful tests -- CHECK", "[Failure]") { - const size_t sz = 1024 * 1024; - - - std::vector vec; vec.reserve(sz); - for (size_t i = 0; i < sz; ++i){ - vec.push_back(i); - CHECK(vec.size() == i); - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/readme.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/readme.txt deleted file mode 100644 index c4d2fab..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/readme.txt +++ /dev/null @@ -1,4 +0,0 @@ -This is very much a work in progress. -The past results are standardized to a developer's machine, -the benchmarking script is basic and there are only 3 benchmarks, -but this should get better in time. For now, at least there is something to go by. diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-14T21-53-49-e3659cdddd43ba4df9e4846630be6a6a7bd85a07.result b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-14T21-53-49-e3659cdddd43ba4df9e4846630be6a6a7bd85a07.result deleted file mode 100644 index 4b6fc65..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-14T21-53-49-e3659cdddd43ba4df9e4846630be6a6a7bd85a07.result +++ /dev/null @@ -1,3 +0,0 @@ -Successful tests -- CHECK: median: 3.38116 (s), stddev: 0.11567366292001534 (s) -Successful tests -- REQUIRE: median: 3.479955 (s), stddev: 0.16295972890734556 (s) -Unsuccessful tests -- CHECK: median: 1.966895 (s), stddev: 0.06323488524716572 (s) diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-14T21-59-08-a1e9b841ff500b2f39ccfd4193ae450cb653da05.result b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-14T21-59-08-a1e9b841ff500b2f39ccfd4193ae450cb653da05.result deleted file mode 100644 index 98c8460..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-14T21-59-08-a1e9b841ff500b2f39ccfd4193ae450cb653da05.result +++ /dev/null @@ -1,3 +0,0 @@ -Successful tests -- CHECK: median: 1.30312 (s), stddev: 0.08759818557862176 (s) -Successful tests -- REQUIRE: median: 1.341535 (s), stddev: 0.1479193390143576 (s) -Unsuccessful tests -- CHECK: median: 1.967755 (s), stddev: 0.07921104121269959 (s) diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-15T09-35-14-3b98a0166f7b7196eba2ad518174d1a77165166d.result b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-15T09-35-14-3b98a0166f7b7196eba2ad518174d1a77165166d.result deleted file mode 100644 index fe6366b..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-15T09-35-14-3b98a0166f7b7196eba2ad518174d1a77165166d.result +++ /dev/null @@ -1,3 +0,0 @@ -Successful tests -- CHECK: median: 1.2982 (s), stddev: 0.019540648829214084 (s) -Successful tests -- REQUIRE: median: 1.30102 (s), stddev: 0.014758430547392974 (s) -Unsuccessful tests -- CHECK: median: 15.520199999999999 (s), stddev: 0.09536359426485094 (s) diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-29T22-08-36-60f8ebec49c5bc58d3604bf1a72cd3f7d129bf2e.result b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-29T22-08-36-60f8ebec49c5bc58d3604bf1a72cd3f7d129bf2e.result deleted file mode 100644 index c9b4d64..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-29T22-08-36-60f8ebec49c5bc58d3604bf1a72cd3f7d129bf2e.result +++ /dev/null @@ -1,3 +0,0 @@ -Successful tests -- CHECK: median: 0.7689014999999999 (s), stddev: 0.02127512078801068 (s) -Successful tests -- REQUIRE: median: 0.772845 (s), stddev: 0.03011638381365052 (s) -Unsuccessful tests -- CHECK: median: 15.49 (s), stddev: 0.536088571143903 (s) diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-29T23-13-35-bcaa2f9646c5ce50758f8582307c99501a932e1a.result b/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-29T23-13-35-bcaa2f9646c5ce50758f8582307c99501a932e1a.result deleted file mode 100644 index 5b82330..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Benchmark/results/2017-01-29T23-13-35-bcaa2f9646c5ce50758f8582307c99501a932e1a.result +++ /dev/null @@ -1,3 +0,0 @@ -Successful tests -- CHECK: median: 0.775769 (s), stddev: 0.014802129132136525 (s) -Successful tests -- REQUIRE: median: 0.785235 (s), stddev: 0.03532672836834896 (s) -Unsuccessful tests -- CHECK: median: 15.156600000000001 (s), stddev: 0.2832375673450742 (s) diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ApproxTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ApproxTests.cpp deleted file mode 100644 index 14a8234..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ApproxTests.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Created by Phil on 28/04/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Some simple comparisons between doubles", - "[Approx]" -) -{ - double d = 1.23; - - REQUIRE( d == Approx( 1.23 ) ); - REQUIRE( d != Approx( 1.22 ) ); - REQUIRE( d != Approx( 1.24 ) ); - - REQUIRE( Approx( d ) == 1.23 ); - REQUIRE( Approx( d ) != 1.22 ); - REQUIRE( Approx( d ) != 1.24 ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Approximate comparisons with different epsilons", - "[Approx]" - ) -{ - double d = 1.23; - - REQUIRE( d != Approx( 1.231 ) ); - REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Less-than inequalities with different epsilons", - "[Approx]" -) -{ - double d = 1.23; - - REQUIRE( d <= Approx( 1.24 ) ); - REQUIRE( d <= Approx( 1.23 ) ); - REQUIRE_FALSE( d <= Approx( 1.22 ) ); - REQUIRE( d <= Approx( 1.22 ).epsilon(0.1) ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Greater-than inequalities with different epsilons", - "[Approx]" -) -{ - double d = 1.23; - - REQUIRE( d >= Approx( 1.22 ) ); - REQUIRE( d >= Approx( 1.23 ) ); - REQUIRE_FALSE( d >= Approx( 1.24 ) ); - REQUIRE( d >= Approx( 1.24 ).epsilon(0.1) ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Approximate comparisons with floats", - "[Approx]" -) -{ - REQUIRE( 1.23f == Approx( 1.23f ) ); - REQUIRE( 0.0f == Approx( 0.0f ) ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Approximate comparisons with ints", - "[Approx]" -) -{ - REQUIRE( 1 == Approx( 1 ) ); - REQUIRE( 0 == Approx( 0 ) ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Approximate comparisons with mixed numeric types", - "[Approx]" -) -{ - const double dZero = 0; - const double dSmall = 0.00001; - const double dMedium = 1.234; - - REQUIRE( 1.0f == Approx( 1 ) ); - REQUIRE( 0 == Approx( dZero) ); - REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) ); - REQUIRE( 1.234f == Approx( dMedium ) ); - REQUIRE( dMedium == Approx( 1.234f ) ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Use a custom approx", - "[Approx][custom]" -) -{ - double d = 1.23; - - Approx approx = Approx::custom().epsilon( 0.005 ); - - REQUIRE( d == approx( 1.23 ) ); - REQUIRE( d == approx( 1.22 ) ); - REQUIRE( d == approx( 1.24 ) ); - REQUIRE( d != approx( 1.25 ) ); - - REQUIRE( approx( d ) == 1.23 ); - REQUIRE( approx( d ) == 1.22 ); - REQUIRE( approx( d ) == 1.24 ); - REQUIRE( approx( d ) != 1.25 ); -} - -inline double divide( double a, double b ) { - return a/b; -} - -TEST_CASE( "Approximate PI", "[Approx][PI]" ) -{ - REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) ); - REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) ); -} - -/////////////////////////////////////////////////////////////////////////////// - -TEST_CASE( "Absolute margin", "[Approx]" ) { - REQUIRE( 104.0 != Approx(100.0) ); - REQUIRE( 104.0 == Approx(100.0).margin(5) ); - REQUIRE( 104.0 != Approx(100.0).margin(3) ); - REQUIRE( 100.3 != Approx(100.0) ); - REQUIRE( 100.3 == Approx(100.0).margin(0.5) ); -} - -//////////////////////////////////////////////////////////////////////////////// - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) -class StrongDoubleTypedef -{ - double d_ = 0.0; - - public: - explicit StrongDoubleTypedef(double d) : d_(d) {} - explicit operator double() const { return d_; } -}; - -inline std::ostream& operator<<( std::ostream& os, StrongDoubleTypedef td ) { - return os << "StrongDoubleTypedef(" << static_cast(td) << ")"; -} - -TEST_CASE -( - "Comparison with explicitly convertible types", - "[Approx][c++11]" -) -{ - StrongDoubleTypedef td(10.0); - - REQUIRE(td == Approx(10.0)); - REQUIRE(Approx(10.0) == td); - - REQUIRE(td != Approx(11.0)); - REQUIRE(Approx(11.0) != td); - - REQUIRE(td <= Approx(10.0)); - REQUIRE(td <= Approx(11.0)); - REQUIRE(Approx(10.0) <= td); - REQUIRE(Approx(9.0) <= td); - - REQUIRE(td >= Approx(9.0)); - REQUIRE(td >= Approx(10.0)); - REQUIRE(Approx(10.0) >= td); - REQUIRE(Approx(11.0) >= td); - -} -#endif - -//////////////////////////////////////////////////////////////////////////////// diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/BDDTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/BDDTests.cpp deleted file mode 100644 index ed89bfb..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/BDDTests.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Created by Phil on 29/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -inline bool itDoesThis(){ return true; } -inline bool itDoesThat(){ return true; } - -SCENARIO( "Do that thing with the thing", "[Tags]" ) { - GIVEN( "This stuff exists" ) { - // make stuff exist - WHEN( "I do this" ) { - // do this - THEN( "it should do this") - { - REQUIRE( itDoesThis() ); - AND_THEN( "do that") - REQUIRE( itDoesThat() ); - } - } - } -} - -SCENARIO( "Vector resizing affects size and capacity", "[vector][bdd][size][capacity]" ) { - GIVEN( "an empty vector" ) { - std::vector v; - REQUIRE( v.size() == 0 ); - - WHEN( "it is made larger" ) { - v.resize( 10 ); - THEN( "the size and capacity go up" ) { - REQUIRE( v.size() == 10 ); - REQUIRE( v.capacity() >= 10 ); - - AND_WHEN( "it is made smaller again" ) { - v.resize( 5 ); - THEN( "the size goes down but the capacity stays the same" ) { - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 10 ); - } - } - } - } - - WHEN( "we reserve more space" ) { - v.reserve( 10 ); - THEN( "The capacity is increased but the size remains the same" ) { - REQUIRE( v.capacity() >= 10 ); - REQUIRE( v.size() == 0 ); - } - } - } -} - -SCENARIO( "This is a really long scenario name to see how the list command deals with wrapping", - "[very long tags][lots][long][tags][verbose]" - "[one very long tag name that should cause line wrapping writing out using the list command]" - "[anotherReallyLongTagNameButThisOneHasNoObviousWrapPointsSoShouldSplitWithinAWordUsingADashCharacter]" ) { - GIVEN( "A section name that is so long that it cannot fit in a single console width" ) - WHEN( "The test headers are printed as part of the normal running of the scenario" ) - THEN( "The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent" ) - SUCCEED("boo!"); -} - -namespace { - -// a trivial fixture example to support SCENARIO_METHOD tests -struct Fixture -{ - Fixture() - : d_counter(0) - { - } - - int counter() - { - return d_counter++; - } - - int d_counter; -}; - -} - -SCENARIO_METHOD(Fixture, - "BDD tests requiring Fixtures to provide commonly-accessed data or methods", - "[bdd][fixtures]") { - const int before(counter()); - GIVEN("No operations precede me") { - REQUIRE(before == 0); - WHEN("We get the count") { - const int after(counter()); - THEN("Subsequently values are higher") { - REQUIRE(after > before); - } - } - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/automake.std.approved.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/automake.std.approved.txt deleted file mode 100644 index 85299f7..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/automake.std.approved.txt +++ /dev/null @@ -1,168 +0,0 @@ -:test-result: PASS # A test name that starts with a # -:test-result: PASS #542 -:test-result: PASS #809 -:test-result: FAIL 'Not' checks that should fail -:test-result: PASS 'Not' checks that should succeed -:test-result: PASS (unimplemented) static bools can be evaluated -:test-result: FAIL A METHOD_AS_TEST_CASE based test run that fails -:test-result: PASS A METHOD_AS_TEST_CASE based test run that succeeds -:test-result: FAIL A TEST_CASE_METHOD based test run that fails -:test-result: PASS A TEST_CASE_METHOD based test run that succeeds -:test-result: FAIL A couple of nested sections followed by a failure -:test-result: FAIL A failing expression with a non streamable type is still captured -:test-result: PASS AllOf matcher -:test-result: PASS An empty test with no assertions -:test-result: PASS An expression with side-effects should only be evaluated once -:test-result: FAIL An unchecked exception reports the line of the last assertion -:test-result: PASS Anonymous test case 1 -:test-result: PASS AnyOf matcher -:test-result: PASS Approximate PI -:test-result: PASS Approximate comparisons with different epsilons -:test-result: PASS Approximate comparisons with floats -:test-result: PASS Approximate comparisons with ints -:test-result: PASS Approximate comparisons with mixed numeric types -:test-result: PASS Assertions then sections -:test-result: PASS Character pretty printing -:test-result: PASS Comparing function pointers -:test-result: PASS Comparing member function pointers -:test-result: PASS Comparisons between ints where one side is computed -:test-result: PASS Comparisons between unsigned ints and negative signed ints match c++ standard behaviour -:test-result: PASS Comparisons with int literals don't warn when mixing signed/ unsigned -:test-result: FAIL Contains string matcher -:test-result: FAIL Custom exceptions can be translated when testing for nothrow -:test-result: FAIL Custom exceptions can be translated when testing for throwing as something else -:test-result: FAIL Custom std-exceptions can be custom translated -:test-result: PASS Demonstrate that a non-const == is not used -:test-result: FAIL EndsWith string matcher -:test-result: XFAIL Equality checks that should fail -:test-result: PASS Equality checks that should succeed -:test-result: PASS Equals -:test-result: FAIL Equals string matcher -:test-result: PASS Exception messages can be tested for -:test-result: FAIL Expected exceptions that don't throw or unexpected exceptions fail the test -:test-result: FAIL FAIL aborts the test -:test-result: FAIL FAIL does not require an argument -:test-result: PASS Factorials are computed -:test-result: PASS Generator over a range of pairs -:test-result: PASS Generators over two ranges -:test-result: PASS Greater-than inequalities with different epsilons -:test-result: PASS INFO and WARN do not abort tests -:test-result: FAIL INFO gets logged on failure -:test-result: FAIL INFO gets logged on failure, even if captured before successful assertions -:test-result: XFAIL Inequality checks that should fail -:test-result: PASS Inequality checks that should succeed -:test-result: PASS Less-than inequalities with different epsilons -:test-result: PASS Long strings can be wrapped -:test-result: PASS Long text is truncted -:test-result: PASS ManuallyRegistered -:test-result: PASS Matchers can be (AllOf) composed with the && operator -:test-result: PASS Matchers can be (AnyOf) composed with the || operator -:test-result: PASS Matchers can be composed with both && and || -:test-result: FAIL Matchers can be composed with both && and || - failing -:test-result: PASS Matchers can be negated (Not) with the ! operator -:test-result: FAIL Matchers can be negated (Not) with the ! operator - failing -:test-result: FAIL Mismatching exception messages failing the test -:test-result: PASS Nice descriptive name -:test-result: FAIL Non-std exceptions can be translated -:test-result: PASS NotImplemented exception -:test-result: PASS Objects that evaluated in boolean contexts can be checked -:test-result: PASS Operators at different namespace levels not hijacked by Koenig lookup -:test-result: FAIL Ordering comparison checks that should fail -:test-result: PASS Ordering comparison checks that should succeed -:test-result: FAIL Output from all sections is reported -:test-result: PASS Parse test names and tags -:test-result: PASS Parsing a std::pair -:test-result: PASS Pointers can be compared to null -:test-result: PASS Pointers can be converted to strings -:test-result: PASS Process can be configured on command line -:test-result: FAIL SCOPED_INFO is reset for each loop -:test-result: PASS SUCCEED counts as a test pass -:test-result: PASS SUCCESS does not require an argument -:test-result: PASS Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods -:test-result: PASS Scenario: Do that thing with the thing -:test-result: PASS Scenario: This is a really long scenario name to see how the list command deals with wrapping -:test-result: PASS Scenario: Vector resizing affects size and capacity -A string sent directly to stdout -A string sent directly to stderr -:test-result: PASS Sends stuff to stdout and stderr -:test-result: PASS Some simple comparisons between doubles -Message from section one -Message from section two -:test-result: PASS Standard output from all sections is reported -:test-result: FAIL StartsWith string matcher -:test-result: PASS String matchers -hello -hello -:test-result: PASS Strings can be rendered with colour -:test-result: FAIL Tabs and newlines show in output -:test-result: PASS Tag alias can be registered against tag patterns -:test-result: PASS Test case with one argument -:test-result: PASS Test enum bit values -:test-result: PASS Text can be formatted using the Text class -:test-result: PASS The NO_FAIL macro reports a failure but does not fail the test -:test-result: FAIL This test 'should' fail but doesn't -:test-result: PASS Tracker -:test-result: FAIL Unexpected exceptions can be translated -:test-result: PASS Use a custom approx -:test-result: PASS Variadic macros -:test-result: PASS When checked exceptions are thrown they can be expected or unexpected -:test-result: FAIL When unchecked exceptions are thrown directly they are always failures -:test-result: FAIL When unchecked exceptions are thrown during a CHECK the test should continue -:test-result: FAIL When unchecked exceptions are thrown during a REQUIRE the test should abort fail -:test-result: FAIL When unchecked exceptions are thrown from functions they are always failures -:test-result: FAIL When unchecked exceptions are thrown from sections they are always failures -:test-result: PASS When unchecked exceptions are thrown, but caught, they do not affect the test -:test-result: PASS Where the LHS is not a simple value -:test-result: PASS Where there is more to the expression after the RHS -:test-result: PASS X/level/0/a -:test-result: PASS X/level/0/b -:test-result: PASS X/level/1/a -:test-result: PASS X/level/1/b -:test-result: PASS XmlEncode -:test-result: PASS atomic if -:test-result: PASS boolean member -:test-result: PASS checkedElse -:test-result: FAIL checkedElse, failing -:test-result: PASS checkedIf -:test-result: FAIL checkedIf, failing -:test-result: PASS comparisons between const int variables -:test-result: PASS comparisons between int variables -:test-result: PASS even more nested SECTION tests -:test-result: PASS first tag -spanner:test-result: PASS has printf -:test-result: FAIL just failure -:test-result: PASS just info -:test-result: FAIL looped SECTION tests -:test-result: FAIL looped tests -:test-result: FAIL more nested SECTION tests -:test-result: PASS nested SECTION tests -:test-result: PASS non streamable - with conv. op -:test-result: PASS not allowed -:test-result: PASS null strings -:test-result: PASS pair > -> toString -:test-result: PASS pointer to class -:test-result: PASS random SECTION tests -:test-result: PASS replaceInPlace -:test-result: PASS second tag -:test-result: FAIL send a single char to INFO -:test-result: FAIL sends information to INFO -:test-result: PASS std::pair -> toString -:test-result: PASS std::pair -> toString -:test-result: PASS std::vector > -> toString -:test-result: FAIL string literals of different sizes can be compared -:test-result: PASS toString on const wchar_t const pointer returns the string contents -:test-result: PASS toString on const wchar_t pointer returns the string contents -:test-result: PASS toString on wchar_t const pointer returns the string contents -:test-result: PASS toString on wchar_t returns the string contents -:test-result: PASS toString( has_maker ) -:test-result: PASS toString( has_maker_and_toString ) -:test-result: PASS toString( has_toString ) -:test-result: PASS toString( vectors -> toString -:test-result: PASS vector -> toString -:test-result: PASS vectors can be sized and resized -:test-result: PASS xmlentitycheck diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.std.approved.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.std.approved.txt deleted file mode 100644 index e5dd3d3..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.std.approved.txt +++ /dev/null @@ -1,895 +0,0 @@ - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - is a host application. -Run with -? for options - -------------------------------------------------------------------------------- -'Not' checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( false != false ) - -ConditionTests.cpp:: FAILED: - CHECK( true != true ) - -ConditionTests.cpp:: FAILED: - CHECK( !true ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( true ) - -ConditionTests.cpp:: FAILED: - CHECK( !trueValue ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( trueValue ) -with expansion: - !true - -ConditionTests.cpp:: FAILED: - CHECK( !(1 == 1) ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( 1 == 1 ) -with expansion: - !(1 == 1) - -------------------------------------------------------------------------------- -A METHOD_AS_TEST_CASE based test run that fails -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: FAILED: - REQUIRE( s == "world" ) -with expansion: - "hello" == "world" - -------------------------------------------------------------------------------- -A TEST_CASE_METHOD based test run that fails -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: FAILED: - REQUIRE( m_a == 2 ) -with expansion: - 1 == 2 - -------------------------------------------------------------------------------- -A couple of nested sections followed by a failure -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: -explicitly with message: - to infinity and beyond - -------------------------------------------------------------------------------- -A failing expression with a non streamable type is still captured -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: FAILED: - CHECK( &o1 == &o2 ) -with expansion: - 0x == 0x - -TrickyTests.cpp:: FAILED: - CHECK( o1 == o2 ) -with expansion: - {?} == {?} - -------------------------------------------------------------------------------- -An unchecked exception reports the line of the last assertion -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - {Unknown expression after the reported line} -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -Contains string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), Contains( "not there" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "not there" - -------------------------------------------------------------------------------- -Custom exceptions can be translated when testing for nothrow -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE_NOTHROW( throwCustom() ) -due to unexpected exception with message: - custom exception - not std - -------------------------------------------------------------------------------- -Custom exceptions can be translated when testing for throwing as something else -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE_THROWS_AS( throwCustom(), std::exception ) -due to unexpected exception with message: - custom exception - not std - -------------------------------------------------------------------------------- -Custom std-exceptions can be custom translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - custom std exception - -------------------------------------------------------------------------------- -EndsWith string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ) -with expansion: - "this string contains 'abc' as a substring" ends with: "this" - -------------------------------------------------------------------------------- -Equality checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 6 ) -with expansion: - 7 == 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 8 ) -with expansion: - 7 == 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 0 ) -with expansion: - 7 == 0 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 9.11f ) ) -with expansion: - 9.1f == Approx( 9.1099996567 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 9.0f ) ) -with expansion: - 9.1f == Approx( 9.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 1 ) ) -with expansion: - 9.1f == Approx( 1.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 0 ) ) -with expansion: - 9.1f == Approx( 0.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.double_pi == Approx( 3.1415 ) ) -with expansion: - 3.1415926535 == Approx( 3.1415 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "goodbye" ) -with expansion: - "hello" == "goodbye" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "hell" ) -with expansion: - "hello" == "hell" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "hello1" ) -with expansion: - "hello" == "hello1" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello.size() == 6 ) -with expansion: - 5 == 6 - -ConditionTests.cpp:: FAILED: - CHECK( x == Approx( 1.301 ) ) -with expansion: - 1.3 == Approx( 1.301 ) - -------------------------------------------------------------------------------- -Equals string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), Equals( "something else" ) ) -with expansion: - "this string contains 'abc' as a substring" equals: "something else" - -------------------------------------------------------------------------------- -Expected exceptions that don't throw or unexpected exceptions fail the test -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisThrows(), std::string ) -due to unexpected exception with message: - expected exception - -ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error ) -because no exception was thrown where one was expected: - -ExceptionTests.cpp:: FAILED: - CHECK_NOTHROW( thisThrows() ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -FAIL aborts the test -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - This is a failure - -------------------------------------------------------------------------------- -FAIL does not require an argument -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - -------------------------------------------------------------------------------- -INFO and WARN do not abort tests -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -warning: - this is a warning - -------------------------------------------------------------------------------- -INFO gets logged on failure -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( a == 1 ) -with expansion: - 2 == 1 -with messages: - this message should be logged - so should this - -------------------------------------------------------------------------------- -INFO gets logged on failure, even if captured before successful assertions -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - CHECK( a == 1 ) -with expansion: - 2 == 1 -with messages: - this message may be logged later - this message should be logged - -MessageTests.cpp:: FAILED: - CHECK( a == 0 ) -with expansion: - 2 == 0 -with message: - and this, but later - -------------------------------------------------------------------------------- -Inequality checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven != 7 ) -with expansion: - 7 != 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one != Approx( 9.1f ) ) -with expansion: - 9.1f != Approx( 9.1000003815 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.double_pi != Approx( 3.1415926535 ) ) -with expansion: - 3.1415926535 != Approx( 3.1415926535 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello != "hello" ) -with expansion: - "hello" != "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello.size() != 5 ) -with expansion: - 5 != 5 - -------------------------------------------------------------------------------- -Matchers can be composed with both && and || - failing -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) ) -with expansion: - "this string contains 'abc' as a substring" ( ( contains: "string" or - contains: "different" ) and contains: "random" ) - -------------------------------------------------------------------------------- -Matchers can be negated (Not) with the ! operator - failing -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), !Contains( "substring" ) ) -with expansion: - "this string contains 'abc' as a substring" not contains: "substring" - -------------------------------------------------------------------------------- -Mismatching exception messages failing the test -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE_THROWS_WITH( thisThrows(), "should fail" ) -with expansion: - expected exception - -------------------------------------------------------------------------------- -Nice descriptive name -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -warning: - This one ran - -------------------------------------------------------------------------------- -Non-std exceptions can be translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - custom exception - -------------------------------------------------------------------------------- -Ordering comparison checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven > 7 ) -with expansion: - 7 > 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 7 ) -with expansion: - 7 < 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven > 8 ) -with expansion: - 7 > 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 6 ) -with expansion: - 7 < 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 0 ) -with expansion: - 7 < 0 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < -1 ) -with expansion: - 7 < -1 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven >= 8 ) -with expansion: - 7 >= 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven <= 6 ) -with expansion: - 7 <= 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one < 9 ) -with expansion: - 9.1f < 9 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one > 10 ) -with expansion: - 9.1f > 10 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one > 9.2 ) -with expansion: - 9.1f > 9.2 - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "hello" ) -with expansion: - "hello" > "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "hello" ) -with expansion: - "hello" < "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "hellp" ) -with expansion: - "hello" > "hellp" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "z" ) -with expansion: - "hello" > "z" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "hellm" ) -with expansion: - "hello" < "hellm" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "a" ) -with expansion: - "hello" < "a" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello >= "z" ) -with expansion: - "hello" >= "z" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello <= "a" ) -with expansion: - "hello" <= "a" - -------------------------------------------------------------------------------- -Output from all sections is reported - one -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Message from section one - -------------------------------------------------------------------------------- -Output from all sections is reported - two -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Message from section two - -------------------------------------------------------------------------------- -Pointers can be converted to strings -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -warning: - actual address of p: 0x - -MessageTests.cpp:: -warning: - toString(p): 0x - -------------------------------------------------------------------------------- -SCOPED_INFO is reset for each loop -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( i < 10 ) -with expansion: - 10 < 10 -with messages: - current counter 10 - i := 10 - -A string sent directly to stdout -A string sent directly to stderr -Message from section one -Message from section two -------------------------------------------------------------------------------- -StartsWith string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ) -with expansion: - "this string contains 'abc' as a substring" starts with: "string" - -hello -hello -------------------------------------------------------------------------------- -Tabs and newlines show in output -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( s1 == s2 ) -with expansion: - "if ($b == 10) { - $a = 20; - }" - == - "if ($b == 10) { - $a = 20; - } - " - -------------------------------------------------------------------------------- -Unexpected exceptions can be translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - 3.14 - -------------------------------------------------------------------------------- -Vector matchers that fail - Contains (element) -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, VectorContains( -1 ) ) -with expansion: - { 1, 2, 3 } Contains: -1 - -MatchersTests.cpp:: FAILED: - CHECK_THAT( empty, VectorContains( 1 ) ) -with expansion: - { } Contains: 1 - -------------------------------------------------------------------------------- -Vector matchers that fail - Contains (vector) -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( empty, Contains( v) ) -with expansion: - { } Contains: { 1, 2, 3 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, Contains( v2 ) ) -with expansion: - { 1, 2, 3 } Contains: { 1, 2, 4 } - -------------------------------------------------------------------------------- -Vector matchers that fail - Equals -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, Equals( v2 ) ) -with expansion: - { 1, 2, 3 } Equals: { 1, 2 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v2, Equals( v ) ) -with expansion: - { 1, 2 } Equals: { 1, 2, 3 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( empty, Equals( v ) ) -with expansion: - { } Equals: { 1, 2, 3 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, Equals( empty ) ) -with expansion: - { 1, 2, 3 } Equals: { } - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown directly they are always failures -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown during a CHECK the test should continue -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK( thisThrows() == 0 ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown during a REQUIRE the test should abort -fail -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE( thisThrows() == 0 ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown from functions they are always failures -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK( thisThrows() == 0 ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown from sections they are always failures - section name -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -Where the LHS is not a simple value -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -warning: - Uncomment the code in this test to check that it gives a sensible compiler - error - -------------------------------------------------------------------------------- -Where there is more to the expression after the RHS -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -warning: - Uncomment the code in this test to check that it gives a sensible compiler - error - -------------------------------------------------------------------------------- -checkedElse, failing -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECKED_ELSE( flag ) -with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedElse( false ) ) -with expansion: - false - -------------------------------------------------------------------------------- -checkedIf, failing -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECKED_IF( flag ) -with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedIf( false ) ) -with expansion: - false - -spanner------------------------------------------------------------------------------- -just failure -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Previous info should not be seen - -------------------------------------------------------------------------------- -looped SECTION tests - s1 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( b > a ) -with expansion: - 0 > 1 - -------------------------------------------------------------------------------- -looped tests -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[0] (1) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[1] (1) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[3] (3) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[4] (5) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[6] (13) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[7] (21) is even - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( a == b ) -with expansion: - 1 == 2 - -------------------------------------------------------------------------------- -send a single char to INFO -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( false ) -with message: - 3 - -------------------------------------------------------------------------------- -sends information to INFO -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( false ) -with messages: - hi - i := 7 - -------------------------------------------------------------------------------- -string literals of different sizes can be compared -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: FAILED: - REQUIRE( std::string( "first" ) == "second" ) -with expansion: - "first" == "second" - -=============================================================================== -test cases: 164 | 119 passed | 43 failed | 2 failed as expected -assertions: 955 | 851 passed | 86 failed | 18 failed as expected - diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.sw.approved.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.sw.approved.txt deleted file mode 100644 index 72d5dc0..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.sw.approved.txt +++ /dev/null @@ -1,9355 +0,0 @@ - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - is a host application. -Run with -? for options - -------------------------------------------------------------------------------- -# A test name that starts with a # -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: -with message: - yay - -------------------------------------------------------------------------------- -#542 -------------------------------------------------------------------------------- -CompilationTests.cpp: -............................................................................... - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), int ) - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), int& ) - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), const int ) - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), const int& ) - -------------------------------------------------------------------------------- -#809 -------------------------------------------------------------------------------- -CompilationTests.cpp: -............................................................................... - -CompilationTests.cpp:: -PASSED: - REQUIRE( 42 == f ) -with expansion: - 42 == {?} - -------------------------------------------------------------------------------- -'Not' checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( false != false ) - -ConditionTests.cpp:: FAILED: - CHECK( true != true ) - -ConditionTests.cpp:: FAILED: - CHECK( !true ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( true ) - -ConditionTests.cpp:: FAILED: - CHECK( !trueValue ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( trueValue ) -with expansion: - !true - -ConditionTests.cpp:: FAILED: - CHECK( !(1 == 1) ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( 1 == 1 ) -with expansion: - !(1 == 1) - -------------------------------------------------------------------------------- -'Not' checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( false == false ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( true == true ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( !false ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - REQUIRE_FALSE( false ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( !falseValue ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - REQUIRE_FALSE( falseValue ) -with expansion: - !false - -ConditionTests.cpp:: -PASSED: - REQUIRE( !(1 == 2) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - REQUIRE_FALSE( 1 == 2 ) -with expansion: - !(1 == 2) - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - compare to true -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( is_true::value == true ) -with expansion: - true == true - -TrickyTests.cpp:: -PASSED: - REQUIRE( true == is_true::value ) -with expansion: - true == true - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - compare to false -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( is_true::value == false ) -with expansion: - false == false - -TrickyTests.cpp:: -PASSED: - REQUIRE( false == is_true::value ) -with expansion: - false == false - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - negation -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( !is_true::value ) -with expansion: - true - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - double negation -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( !!is_true::value ) -with expansion: - true - -------------------------------------------------------------------------------- -(unimplemented) static bools can be evaluated - direct -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( is_true::value ) -with expansion: - true - -TrickyTests.cpp:: -PASSED: - REQUIRE_FALSE( is_true::value ) -with expansion: - !false - -------------------------------------------------------------------------------- -A METHOD_AS_TEST_CASE based test run that fails -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: FAILED: - REQUIRE( s == "world" ) -with expansion: - "hello" == "world" - -------------------------------------------------------------------------------- -A METHOD_AS_TEST_CASE based test run that succeeds -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: -PASSED: - REQUIRE( s == "hello" ) -with expansion: - "hello" == "hello" - -------------------------------------------------------------------------------- -A TEST_CASE_METHOD based test run that fails -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: FAILED: - REQUIRE( m_a == 2 ) -with expansion: - 1 == 2 - -------------------------------------------------------------------------------- -A TEST_CASE_METHOD based test run that succeeds -------------------------------------------------------------------------------- -ClassTests.cpp: -............................................................................... - -ClassTests.cpp:: -PASSED: - REQUIRE( m_a == 1 ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -A couple of nested sections followed by a failure - Outer - Inner -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: -with message: - that's not flying - that's failing in style - -------------------------------------------------------------------------------- -A couple of nested sections followed by a failure -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: -explicitly with message: - to infinity and beyond - -------------------------------------------------------------------------------- -A failing expression with a non streamable type is still captured -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: FAILED: - CHECK( &o1 == &o2 ) -with expansion: - 0x == 0x - -TrickyTests.cpp:: FAILED: - CHECK( o1 == o2 ) -with expansion: - {?} == {?} - -------------------------------------------------------------------------------- -Absolute margin -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( 104.0 != Approx(100.0) ) -with expansion: - 104.0 != Approx( 100.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 104.0 == Approx(100.0).margin(5) ) -with expansion: - 104.0 == Approx( 100.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 104.0 != Approx(100.0).margin(3) ) -with expansion: - 104.0 != Approx( 100.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 100.3 != Approx(100.0) ) -with expansion: - 100.3 != Approx( 100.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 100.3 == Approx(100.0).margin(0.5) ) -with expansion: - 100.3 == Approx( 100.0 ) - -------------------------------------------------------------------------------- -AllOf matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) ) -with expansion: - "this string contains 'abc' as a substring" ( contains: "string" and - contains: "abc" ) - -------------------------------------------------------------------------------- -An expression with side-effects should only be evaluated once -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( i++ == 7 ) -with expansion: - 7 == 7 - -TrickyTests.cpp:: -PASSED: - REQUIRE( i++ == 8 ) -with expansion: - 8 == 8 - -------------------------------------------------------------------------------- -An unchecked exception reports the line of the last assertion -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - CHECK( 1 == 1 ) - -ExceptionTests.cpp:: FAILED: - {Unknown expression after the reported line} -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -Anonymous test case 1 -------------------------------------------------------------------------------- -VariadicMacrosTests.cpp: -............................................................................... - -VariadicMacrosTests.cpp:: -PASSED: -with message: - anonymous test case - -------------------------------------------------------------------------------- -AnyOf matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) ) -with expansion: - "this string contains 'abc' as a substring" ( contains: "string" or contains: - "not there" ) - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) ) -with expansion: - "this string contains 'abc' as a substring" ( contains: "not there" or - contains: "string" ) - -------------------------------------------------------------------------------- -Approximate PI -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) ) -with expansion: - 3.1428571429 == Approx( 3.141 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) ) -with expansion: - 3.1428571429 != Approx( 3.141 ) - -------------------------------------------------------------------------------- -Approximate comparisons with different epsilons -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != Approx( 1.231 ) ) -with expansion: - 1.23 != Approx( 1.231 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) ) -with expansion: - 1.23 == Approx( 1.231 ) - -------------------------------------------------------------------------------- -Approximate comparisons with floats -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1.23f == Approx( 1.23f ) ) -with expansion: - 1.23f == Approx( 1.2300000191 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0.0f == Approx( 0.0f ) ) -with expansion: - 0.0f == Approx( 0.0 ) - -------------------------------------------------------------------------------- -Approximate comparisons with ints -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1 == Approx( 1 ) ) -with expansion: - 1 == Approx( 1.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0 == Approx( 0 ) ) -with expansion: - 0 == Approx( 0.0 ) - -------------------------------------------------------------------------------- -Approximate comparisons with mixed numeric types -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1.0f == Approx( 1 ) ) -with expansion: - 1.0f == Approx( 1.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0 == Approx( dZero) ) -with expansion: - 0 == Approx( 0.0 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 0 == Approx( dSmall ).epsilon( 0.001 ) ) -with expansion: - 0 == Approx( 0.00001 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( 1.234f == Approx( dMedium ) ) -with expansion: - 1.234f == Approx( 1.234 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( dMedium == Approx( 1.234f ) ) -with expansion: - 1.234 == Approx( 1.2339999676 ) - -------------------------------------------------------------------------------- -Assertions then sections -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -Assertions then sections - A section -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -Assertions then sections - A section - Another section -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -Assertions then sections -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -Assertions then sections - A section -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -Assertions then sections - A section - Another other section -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( Catch::alwaysTrue() ) -with expansion: - true - -------------------------------------------------------------------------------- -Capture and info messages - Capture should stringify like assertions -------------------------------------------------------------------------------- -ToStringGeneralTests.cpp: -............................................................................... - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( true ) -with message: - i := 2 - -------------------------------------------------------------------------------- -Capture and info messages - Info should NOT stringify the way assertions do -------------------------------------------------------------------------------- -ToStringGeneralTests.cpp: -............................................................................... - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( true ) -with message: - 3 - -------------------------------------------------------------------------------- -Character pretty printing - Specifically escaped -------------------------------------------------------------------------------- -ToStringGeneralTests.cpp: -............................................................................... - -ToStringGeneralTests.cpp:: -PASSED: - CHECK( tab == '\t' ) -with expansion: - '\t' == '\t' - -ToStringGeneralTests.cpp:: -PASSED: - CHECK( newline == '\n' ) -with expansion: - '\n' == '\n' - -ToStringGeneralTests.cpp:: -PASSED: - CHECK( carr_return == '\r' ) -with expansion: - '\r' == '\r' - -ToStringGeneralTests.cpp:: -PASSED: - CHECK( form_feed == '\f' ) -with expansion: - '\f' == '\f' - -------------------------------------------------------------------------------- -Character pretty printing - General chars -------------------------------------------------------------------------------- -ToStringGeneralTests.cpp: -............................................................................... - -ToStringGeneralTests.cpp:: -PASSED: - CHECK( space == ' ' ) -with expansion: - ' ' == ' ' - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == chars[i] ) -with expansion: - 'a' == 'a' - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == chars[i] ) -with expansion: - 'z' == 'z' - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == chars[i] ) -with expansion: - 'A' == 'A' - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == chars[i] ) -with expansion: - 'Z' == 'Z' - -------------------------------------------------------------------------------- -Character pretty printing - Low ASCII -------------------------------------------------------------------------------- -ToStringGeneralTests.cpp: -............................................................................... - -ToStringGeneralTests.cpp:: -PASSED: - CHECK( null_terminator == '\0' ) -with expansion: - 0 == 0 - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == i ) -with expansion: - 2 == 2 - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == i ) -with expansion: - 3 == 3 - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == i ) -with expansion: - 4 == 4 - -ToStringGeneralTests.cpp:: -PASSED: - REQUIRE( c == i ) -with expansion: - 5 == 5 - -------------------------------------------------------------------------------- -Comparing function pointers -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( a ) -with expansion: - true - -TrickyTests.cpp:: -PASSED: - REQUIRE( a == &foo ) -with expansion: - 0x == 0x - -------------------------------------------------------------------------------- -Comparing member function pointers -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - CHECK( m == &S::f ) -with expansion: - 0x - == - 0x - -------------------------------------------------------------------------------- -Comparisons between ints where one side is computed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - CHECK( 54 == 6*9 ) -with expansion: - 54 == 54 - -------------------------------------------------------------------------------- -Comparisons between unsigned ints and negative signed ints match c++ standard -behaviour -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - CHECK( ( -1 > 2u ) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - CHECK( -1 > 2u ) -with expansion: - -1 > 2 - -ConditionTests.cpp:: -PASSED: - CHECK( ( 2u < -1 ) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - CHECK( 2u < -1 ) -with expansion: - 2 < -1 - -ConditionTests.cpp:: -PASSED: - CHECK( ( minInt > 2u ) ) -with expansion: - true - -ConditionTests.cpp:: -PASSED: - CHECK( minInt > 2u ) -with expansion: - -2147483648 > 2 - -------------------------------------------------------------------------------- -Comparisons with int literals don't warn when mixing signed/ unsigned -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( i == 1 ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( ui == 2 ) -with expansion: - 2 == 2 - -ConditionTests.cpp:: -PASSED: - REQUIRE( l == 3 ) -with expansion: - 3 == 3 - -ConditionTests.cpp:: -PASSED: - REQUIRE( ul == 4 ) -with expansion: - 4 == 4 - -ConditionTests.cpp:: -PASSED: - REQUIRE( c == 5 ) -with expansion: - 5 == 5 - -ConditionTests.cpp:: -PASSED: - REQUIRE( uc == 6 ) -with expansion: - 6 == 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( 1 == i ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( 2 == ui ) -with expansion: - 2 == 2 - -ConditionTests.cpp:: -PASSED: - REQUIRE( 3 == l ) -with expansion: - 3 == 3 - -ConditionTests.cpp:: -PASSED: - REQUIRE( 4 == ul ) -with expansion: - 4 == 4 - -ConditionTests.cpp:: -PASSED: - REQUIRE( 5 == c ) -with expansion: - 5 == 5 - -ConditionTests.cpp:: -PASSED: - REQUIRE( 6 == uc ) -with expansion: - 6 == 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( (std::numeric_limits::max)() > ul ) -with expansion: - 18446744073709551615 (0x) - > - 4 - -------------------------------------------------------------------------------- -Contains string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), Contains( "not there" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "not there" - -------------------------------------------------------------------------------- -Custom exceptions can be translated when testing for nothrow -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE_NOTHROW( throwCustom() ) -due to unexpected exception with message: - custom exception - not std - -------------------------------------------------------------------------------- -Custom exceptions can be translated when testing for throwing as something else -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE_THROWS_AS( throwCustom(), std::exception ) -due to unexpected exception with message: - custom exception - not std - -------------------------------------------------------------------------------- -Custom std-exceptions can be custom translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - custom std exception - -------------------------------------------------------------------------------- -Demonstrate that a non-const == is not used -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( t == 1u ) -with expansion: - {?} == 1 - -------------------------------------------------------------------------------- -EndsWith string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ) -with expansion: - "this string contains 'abc' as a substring" ends with: "this" - -------------------------------------------------------------------------------- -Equality checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 6 ) -with expansion: - 7 == 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 8 ) -with expansion: - 7 == 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven == 0 ) -with expansion: - 7 == 0 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 9.11f ) ) -with expansion: - 9.1f == Approx( 9.1099996567 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 9.0f ) ) -with expansion: - 9.1f == Approx( 9.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 1 ) ) -with expansion: - 9.1f == Approx( 1.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one == Approx( 0 ) ) -with expansion: - 9.1f == Approx( 0.0 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.double_pi == Approx( 3.1415 ) ) -with expansion: - 3.1415926535 == Approx( 3.1415 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "goodbye" ) -with expansion: - "hello" == "goodbye" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "hell" ) -with expansion: - "hello" == "hell" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello == "hello1" ) -with expansion: - "hello" == "hello1" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello.size() == 6 ) -with expansion: - 5 == 6 - -ConditionTests.cpp:: FAILED: - CHECK( x == Approx( 1.301 ) ) -with expansion: - 1.3 == Approx( 1.301 ) - -------------------------------------------------------------------------------- -Equality checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven == 7 ) -with expansion: - 7 == 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one == Approx( 9.1f ) ) -with expansion: - 9.1f == Approx( 9.1000003815 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.double_pi == Approx( 3.1415926535 ) ) -with expansion: - 3.1415926535 == Approx( 3.1415926535 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello == "hello" ) -with expansion: - "hello" == "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( "hello" == data.str_hello ) -with expansion: - "hello" == "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello.size() == 5 ) -with expansion: - 5 == 5 - -ConditionTests.cpp:: -PASSED: - REQUIRE( x == Approx( 1.3 ) ) -with expansion: - 1.3 == Approx( 1.3 ) - -------------------------------------------------------------------------------- -Equals -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) ) -with expansion: - "this string contains 'abc' as a substring" equals: "this string contains - 'abc' as a substring" - -------------------------------------------------------------------------------- -Equals string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), Equals( "something else" ) ) -with expansion: - "this string contains 'abc' as a substring" equals: "something else" - -------------------------------------------------------------------------------- -Exception messages can be tested for - exact match -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ) - -------------------------------------------------------------------------------- -Exception messages can be tested for - different case -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) ) - -------------------------------------------------------------------------------- -Exception messages can be tested for - wildcarded -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) ) - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) ) - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) ) - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) ) - -------------------------------------------------------------------------------- -Expected exceptions that don't throw or unexpected exceptions fail the test -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisThrows(), std::string ) -due to unexpected exception with message: - expected exception - -ExceptionTests.cpp:: FAILED: - CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error ) -because no exception was thrown where one was expected: - -ExceptionTests.cpp:: FAILED: - CHECK_NOTHROW( thisThrows() ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -FAIL aborts the test -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - This is a failure - -------------------------------------------------------------------------------- -FAIL does not require an argument -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - -------------------------------------------------------------------------------- -Factorials are computed -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(0) == 1 ) -with expansion: - 1 == 1 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(1) == 1 ) -with expansion: - 1 == 1 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(2) == 2 ) -with expansion: - 2 == 2 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(3) == 6 ) -with expansion: - 6 == 6 - -MiscTests.cpp:: -PASSED: - REQUIRE( Factorial(10) == 3628800 ) -with expansion: - 3628800 (0x) == 3628800 (0x) - -------------------------------------------------------------------------------- -Generator over a range of pairs -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( i->first == i->second-1 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Generator over a range of pairs -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( i->first == i->second-1 ) -with expansion: - 2 == 2 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 200 == 200 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 202 == 202 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 204 == 204 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 206 == 206 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 208 == 208 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 210 == 210 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 212 == 212 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 2 == 2 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 4 == 4 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 6 == 6 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 8 == 8 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 10 == 10 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 30 == 30 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 40 == 40 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 42 == 42 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Generators over two ranges -------------------------------------------------------------------------------- -GeneratorTests.cpp: -............................................................................... - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ) -with expansion: - 72 == 72 - -GeneratorTests.cpp:: -PASSED: - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ) -with expansion: - 214 == 214 - -------------------------------------------------------------------------------- -Greater-than inequalities with different epsilons -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d >= Approx( 1.22 ) ) -with expansion: - 1.23 >= Approx( 1.22 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d >= Approx( 1.23 ) ) -with expansion: - 1.23 >= Approx( 1.23 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE_FALSE( d >= Approx( 1.24 ) ) -with expansion: - !(1.23 >= Approx( 1.24 )) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d >= Approx( 1.24 ).epsilon(0.1) ) -with expansion: - 1.23 >= Approx( 1.24 ) - -------------------------------------------------------------------------------- -INFO and WARN do not abort tests -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -warning: - this is a message - this is a warning - -------------------------------------------------------------------------------- -INFO gets logged on failure -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( a == 1 ) -with expansion: - 2 == 1 -with messages: - this message should be logged - so should this - -------------------------------------------------------------------------------- -INFO gets logged on failure, even if captured before successful assertions -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -PASSED: - CHECK( a == 2 ) -with expansion: - 2 == 2 -with message: - this message may be logged later - -MessageTests.cpp:: FAILED: - CHECK( a == 1 ) -with expansion: - 2 == 1 -with message: - this message should be logged - -MessageTests.cpp:: FAILED: - CHECK( a == 0 ) -with expansion: - 2 == 0 -with message: - and this, but later - -MessageTests.cpp:: -PASSED: - CHECK( a == 2 ) -with expansion: - 2 == 2 -with message: - but not this - -------------------------------------------------------------------------------- -Inequality checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven != 7 ) -with expansion: - 7 != 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one != Approx( 9.1f ) ) -with expansion: - 9.1f != Approx( 9.1000003815 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.double_pi != Approx( 3.1415926535 ) ) -with expansion: - 3.1415926535 != Approx( 3.1415926535 ) - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello != "hello" ) -with expansion: - "hello" != "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello.size() != 5 ) -with expansion: - 5 != 5 - -------------------------------------------------------------------------------- -Inequality checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven != 6 ) -with expansion: - 7 != 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven != 8 ) -with expansion: - 7 != 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 9.11f ) ) -with expansion: - 9.1f != Approx( 9.1099996567 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 9.0f ) ) -with expansion: - 9.1f != Approx( 9.0 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 1 ) ) -with expansion: - 9.1f != Approx( 1.0 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one != Approx( 0 ) ) -with expansion: - 9.1f != Approx( 0.0 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.double_pi != Approx( 3.1415 ) ) -with expansion: - 3.1415926535 != Approx( 3.1415 ) - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "goodbye" ) -with expansion: - "hello" != "goodbye" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "hell" ) -with expansion: - "hello" != "hell" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello != "hello1" ) -with expansion: - "hello" != "hello1" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello.size() != 6 ) -with expansion: - 5 != 6 - -------------------------------------------------------------------------------- -Less-than inequalities with different epsilons -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d <= Approx( 1.24 ) ) -with expansion: - 1.23 <= Approx( 1.24 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d <= Approx( 1.23 ) ) -with expansion: - 1.23 <= Approx( 1.23 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE_FALSE( d <= Approx( 1.22 ) ) -with expansion: - !(1.23 <= Approx( 1.22 )) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d <= Approx( 1.22 ).epsilon(0.1) ) -with expansion: - 1.23 <= Approx( 1.22 ) - -------------------------------------------------------------------------------- -Long strings can be wrapped - plain string - No wrapping -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString ) -with expansion: - "one two three four" - == - "one two three four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString ) -with expansion: - "one two three four" - == - "one two three four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - plain string - Wrapped once -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 17 ) ).toString() == "one two three\nfour" ) -with expansion: - "one two three - four" - == - "one two three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 16 ) ).toString() == "one two three\nfour" ) -with expansion: - "one two three - four" - == - "one two three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 14 ) ).toString() == "one two three\nfour" ) -with expansion: - "one two three - four" - == - "one two three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 13 ) ).toString() == "one two three\nfour" ) -with expansion: - "one two three - four" - == - "one two three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 12 ) ).toString() == "one two\nthree four" ) -with expansion: - "one two - three four" - == - "one two - three four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - plain string - Wrapped twice -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" ) -with expansion: - "one two - three - four" - == - "one two - three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" ) -with expansion: - "one two - three - four" - == - "one two - three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" ) -with expansion: - "one two - three - four" - == - "one two - three - four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - plain string - Wrapped three times -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" ) -with expansion: - "one - two - three - four" - == - "one - two - three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one\ntwo\nthree\nfour" ) -with expansion: - "one - two - three - four" - == - "one - two - three - four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - plain string - Short wrap -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( "abcdef", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef" ) -with expansion: - "abc- - def" - == - "abc- - def" - -TestMain.cpp:: -PASSED: - CHECK( Text( "abcdefg", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndefg" ) -with expansion: - "abc- - defg" - == - "abc- - defg" - -TestMain.cpp:: -PASSED: - CHECK( Text( "abcdefgh", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef-\ngh" ) -with expansion: - "abc- - def- - gh" - == - "abc- - def- - gh" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one\ntwo\nthr-\nee\nfour" ) -with expansion: - "one - two - thr- - ee - four" - == - "one - two - thr- - ee - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 3 ) ).toString() == "one\ntwo\nth-\nree\nfo-\nur" ) -with expansion: - "one - two - th- - ree - fo- - ur" - == - "one - two - th- - ree - fo- - ur" - -------------------------------------------------------------------------------- -Long strings can be wrapped - plain string - As container -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - REQUIRE( text.size() == 4 ) -with expansion: - 4 == 4 - -TestMain.cpp:: -PASSED: - CHECK( text[0] == "one" ) -with expansion: - "one" == "one" - -TestMain.cpp:: -PASSED: - CHECK( text[1] == "two" ) -with expansion: - "two" == "two" - -TestMain.cpp:: -PASSED: - CHECK( text[2] == "three" ) -with expansion: - "three" == "three" - -TestMain.cpp:: -PASSED: - CHECK( text[3] == "four" ) -with expansion: - "four" == "four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - plain string - Indent first line differently -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( text.toString() == " one two\n three\n four" ) -with expansion: - " one two - three - four" - == - " one two - three - four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - With newlines - No wrapping -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString ) -with expansion: - "one two - three four" - == - "one two - three four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString ) -with expansion: - "one two - three four" - == - "one two - three four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 10 ) ).toString() == testString ) -with expansion: - "one two - three four" - == - "one two - three four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - With newlines - Trailing newline -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( "abcdef\n", TextAttributes().setWidth( 10 ) ).toString() == "abcdef" ) -with expansion: - "abcdef" == "abcdef" - -TestMain.cpp:: -PASSED: - CHECK( Text( "abcdef", TextAttributes().setWidth( 6 ) ).toString() == "abcdef" ) -with expansion: - "abcdef" == "abcdef" - -TestMain.cpp:: -PASSED: - CHECK( Text( "abcdef\n", TextAttributes().setWidth( 6 ) ).toString() == "abcdef" ) -with expansion: - "abcdef" == "abcdef" - -TestMain.cpp:: -PASSED: - CHECK( Text( "abcdef\n", TextAttributes().setWidth( 5 ) ).toString() == "abcd-\nef" ) -with expansion: - "abcd- - ef" - == - "abcd- - ef" - -------------------------------------------------------------------------------- -Long strings can be wrapped - With newlines - Wrapped once -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" ) -with expansion: - "one two - three - four" - == - "one two - three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" ) -with expansion: - "one two - three - four" - == - "one two - three - four" - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" ) -with expansion: - "one two - three - four" - == - "one two - three - four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - With newlines - Wrapped twice -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" ) -with expansion: - "one - two - three - four" - == - "one - two - three - four" - -------------------------------------------------------------------------------- -Long strings can be wrapped - With wrap-before/ after characters - No wrapping -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString ) -with expansion: - "one,two(three) " - == - "one,two(three) " - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 24 ) ).toString() == testString ) -with expansion: - "one,two(three) " - == - "one,two(three) " - -------------------------------------------------------------------------------- -Long strings can be wrapped - With wrap-before/ after characters - Wrap before -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 11 ) ).toString() == "one,two\n(three)\n" ) -with expansion: - "one,two - (three) - " - == - "one,two - (three) - " - -------------------------------------------------------------------------------- -Long strings can be wrapped - With wrap-before/ after characters - Wrap after -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one,\ntwo\n(thre-\ne)\n" ) -with expansion: - "one, - two - (thre- - e) - " - == - "one, - two - (thre- - e) - " - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one,\ntwo\n(thr-\nee)\n" ) -with expansion: - "one, - two - (thr- - ee) - " - == - "one, - two - (thr- - ee) - " - -TestMain.cpp:: -PASSED: - CHECK( Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one,\ntwo\n(th-\nree)\n" ) -with expansion: - "one, - two - (th- - ree) - " - == - "one, - two - (th- - ree) - " - -------------------------------------------------------------------------------- -Long text is truncated -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_THAT( t.toString(), EndsWith( "... message truncated due to excessive size" ) ) -with expansion: - "***************************************************************************- - ***- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ - ****************************************************************************- - **- - ****************************************************************************- - **- - ************************ -... message truncated due to excessive size - -------------------------------------------------------------------------------- -ManuallyRegistered -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: -with message: - was called - -------------------------------------------------------------------------------- -Matchers can be (AllOf) composed with the && operator -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) ) -with expansion: - "this string contains 'abc' as a substring" ( contains: "string" and - contains: "abc" and contains: "substring" and contains: "contains" ) - -------------------------------------------------------------------------------- -Matchers can be (AnyOf) composed with the || operator -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) ) -with expansion: - "this string contains 'abc' as a substring" ( contains: "string" or contains: - "different" or contains: "random" ) - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) ) -with expansion: - "some completely different text that contains one common word" ( contains: - "string" or contains: "different" or contains: "random" ) - -------------------------------------------------------------------------------- -Matchers can be composed with both && and || -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) ) -with expansion: - "this string contains 'abc' as a substring" ( ( contains: "string" or - contains: "different" ) and contains: "substring" ) - -------------------------------------------------------------------------------- -Matchers can be composed with both && and || - failing -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) ) -with expansion: - "this string contains 'abc' as a substring" ( ( contains: "string" or - contains: "different" ) and contains: "random" ) - -------------------------------------------------------------------------------- -Matchers can be negated (Not) with the ! operator -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), !Contains( "different" ) ) -with expansion: - "this string contains 'abc' as a substring" not contains: "different" - -------------------------------------------------------------------------------- -Matchers can be negated (Not) with the ! operator - failing -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), !Contains( "substring" ) ) -with expansion: - "this string contains 'abc' as a substring" not contains: "substring" - -------------------------------------------------------------------------------- -Mismatching exception messages failing the test -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ) - -ExceptionTests.cpp:: FAILED: - REQUIRE_THROWS_WITH( thisThrows(), "should fail" ) -with expansion: - expected exception - -------------------------------------------------------------------------------- -Nice descriptive name -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -warning: - This one ran - -------------------------------------------------------------------------------- -Non-std exceptions can be translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - custom exception - -------------------------------------------------------------------------------- -NotImplemented exception -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) ) - -------------------------------------------------------------------------------- -Objects that evaluated in boolean contexts can be checked -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - CHECK( True ) -with expansion: - true - -TrickyTests.cpp:: -PASSED: - CHECK( !False ) -with expansion: - true - -TrickyTests.cpp:: -PASSED: - CHECK_FALSE( False ) -with expansion: - !false - -------------------------------------------------------------------------------- -Operators at different namespace levels not hijacked by Koenig lookup -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( 0x == o ) -with expansion: - 3221225472 (0x) == {?} - -------------------------------------------------------------------------------- -Ordering comparison checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven > 7 ) -with expansion: - 7 > 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 7 ) -with expansion: - 7 < 7 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven > 8 ) -with expansion: - 7 > 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 6 ) -with expansion: - 7 < 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < 0 ) -with expansion: - 7 < 0 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven < -1 ) -with expansion: - 7 < -1 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven >= 8 ) -with expansion: - 7 >= 8 - -ConditionTests.cpp:: FAILED: - CHECK( data.int_seven <= 6 ) -with expansion: - 7 <= 6 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one < 9 ) -with expansion: - 9.1f < 9 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one > 10 ) -with expansion: - 9.1f > 10 - -ConditionTests.cpp:: FAILED: - CHECK( data.float_nine_point_one > 9.2 ) -with expansion: - 9.1f > 9.2 - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "hello" ) -with expansion: - "hello" > "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "hello" ) -with expansion: - "hello" < "hello" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "hellp" ) -with expansion: - "hello" > "hellp" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello > "z" ) -with expansion: - "hello" > "z" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "hellm" ) -with expansion: - "hello" < "hellm" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello < "a" ) -with expansion: - "hello" < "a" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello >= "z" ) -with expansion: - "hello" >= "z" - -ConditionTests.cpp:: FAILED: - CHECK( data.str_hello <= "a" ) -with expansion: - "hello" <= "a" - -------------------------------------------------------------------------------- -Ordering comparison checks that should succeed -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven < 8 ) -with expansion: - 7 < 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > 6 ) -with expansion: - 7 > 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > 0 ) -with expansion: - 7 > 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven > -1 ) -with expansion: - 7 > -1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven >= 7 ) -with expansion: - 7 >= 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven >= 6 ) -with expansion: - 7 >= 6 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven <= 7 ) -with expansion: - 7 <= 7 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.int_seven <= 8 ) -with expansion: - 7 <= 8 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one > 9 ) -with expansion: - 9.1f > 9 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one < 10 ) -with expansion: - 9.1f < 10 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.float_nine_point_one < 9.2 ) -with expansion: - 9.1f < 9.2 - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello <= "hello" ) -with expansion: - "hello" <= "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello >= "hello" ) -with expansion: - "hello" >= "hello" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello < "hellp" ) -with expansion: - "hello" < "hellp" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello < "zebra" ) -with expansion: - "hello" < "zebra" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello > "hellm" ) -with expansion: - "hello" > "hellm" - -ConditionTests.cpp:: -PASSED: - REQUIRE( data.str_hello > "a" ) -with expansion: - "hello" > "a" - -------------------------------------------------------------------------------- -Output from all sections is reported - one -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Message from section one - -------------------------------------------------------------------------------- -Output from all sections is reported - two -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Message from section two - -------------------------------------------------------------------------------- -Parse test names and tags - Empty test spec should have no filters -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from empty string should have no filters -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches(tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from just a comma should have no filters -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from name should have one filter -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from quoted name should have one filter -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Test spec from name should have one filter -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at the start -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( parseTestSpec( "*a" ).matches( tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at the end -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( parseTestSpec( "a*" ).matches( tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at both ends -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( parseTestSpec( "*a*" ).matches( tcA ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at the start -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at the end -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Redundant wildcard at both ends -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcard at both ends, redundant at start -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Just wildcard -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag, two matches -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Two tags -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Two tags, spare separated -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - Wildcarded name and tag -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - Single tag exclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion and one tag inclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion and one wldcarded name inclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - One tag exclusion, using exclude:, and one wldcarded name inclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - name exclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion with tag inclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - wildcarded name exclusion, using exclude:, with tag inclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - two wildcarded names -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - empty tag -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - empty quoted name -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Parse test names and tags - quoted string followed by tag exclusion -------------------------------------------------------------------------------- -CmdLineTests.cpp: -............................................................................... - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.hasFilters() == true ) -with expansion: - true == true - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcA ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcB ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcC ) == false ) -with expansion: - false == false - -CmdLineTests.cpp:: -PASSED: - CHECK( spec.matches( tcD ) == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Parsing a std::pair -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( (std::pair( 1, 2 )) == aNicePair ) -with expansion: - std::pair( 1, 2 ) == std::pair( 1, 2 ) - -------------------------------------------------------------------------------- -Pointers can be compared to null -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( p == 0 ) -with expansion: - NULL == 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( p == pNULL ) -with expansion: - NULL == NULL - -ConditionTests.cpp:: -PASSED: - REQUIRE( p != 0 ) -with expansion: - 0x != 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( cp != 0 ) -with expansion: - 0x != 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( cpc != 0 ) -with expansion: - 0x != 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( returnsNull() == 0 ) -with expansion: - {null string} == 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( returnsConstNull() == 0 ) -with expansion: - {null string} == 0 - -ConditionTests.cpp:: -PASSED: - REQUIRE( 0 != p ) -with expansion: - 0 != 0x - -------------------------------------------------------------------------------- -Pointers can be converted to strings -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -warning: - actual address of p: 0x - -MessageTests.cpp:: -warning: - toString(p): 0x - -------------------------------------------------------------------------------- -Process can be configured on command line - default - no arguments -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - CHECK( config.shouldDebugBreak == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - CHECK( config.abortAfter == -1 ) -with expansion: - -1 == -1 - -TestMain.cpp:: -PASSED: - CHECK( config.noThrow == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - CHECK( config.reporterNames.empty() ) -with expansion: - true - -------------------------------------------------------------------------------- -Process can be configured on command line - test lists - 1 test -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Process can be configured on command line - test lists - Specify one test case exclusion using exclude: -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Process can be configured on command line - test lists - Specify one test case exclusion using ~ -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ) -with expansion: - false == false - -TestMain.cpp:: -PASSED: - REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) ) -with expansion: - true - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - -r/console -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "console" ) -with expansion: - "console" == "console" - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - -r/xml -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "xml" ) -with expansion: - "xml" == "xml" - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - -r xml and junit -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames.size() == 2 ) -with expansion: - 2 == 2 - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "xml" ) -with expansion: - "xml" == "xml" - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[1] == "junit" ) -with expansion: - "junit" == "junit" - -------------------------------------------------------------------------------- -Process can be configured on command line - reporter - --reporter/junit -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.reporterNames[0] == "junit" ) -with expansion: - "junit" == "junit" - -------------------------------------------------------------------------------- -Process can be configured on command line - debugger - -b -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.shouldDebugBreak == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Process can be configured on command line - debugger - --break -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.shouldDebugBreak ) -with expansion: - true - -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -a aborts after first failure -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.abortAfter == 1 ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -x 2 aborts after two failures -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.abortAfter == 2 ) -with expansion: - 2 == 2 - -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -x must be greater than zero -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) ) -with expansion: - "Value after -x or --abortAfter must be greater than zero - - while parsing: (-x, --abortx )" contains: "greater than zero" - -------------------------------------------------------------------------------- -Process can be configured on command line - abort - -x must be numeric -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) ) -with expansion: - "Unable to convert oops to destination type - - while parsing: (-x, --abortx )" contains: "-x" - -------------------------------------------------------------------------------- -Process can be configured on command line - nothrow - -e -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.noThrow == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Process can be configured on command line - nothrow - --nothrow -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.noThrow == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Process can be configured on command line - output filename - -o filename -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.outputFilename == "filename.ext" ) -with expansion: - "filename.ext" == "filename.ext" - -------------------------------------------------------------------------------- -Process can be configured on command line - output filename - --out -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.outputFilename == "filename.ext" ) -with expansion: - "filename.ext" == "filename.ext" - -------------------------------------------------------------------------------- -Process can be configured on command line - combinations - Single character flags can be combined -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - CHECK( config.abortAfter == 1 ) -with expansion: - 1 == 1 - -TestMain.cpp:: -PASSED: - CHECK( config.shouldDebugBreak ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( config.noThrow == true ) -with expansion: - true == true - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - without option -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.useColour == UseColour::Auto ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - auto -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.useColour == UseColour::Auto ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - yes -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.useColour == UseColour::Yes ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - no -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_NOTHROW( parseIntoConfig( argv, config ) ) - -TestMain.cpp:: -PASSED: - REQUIRE( config.useColour == UseColour::No ) -with expansion: - 2 == 2 - -------------------------------------------------------------------------------- -Process can be configured on command line - use-colour - error -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - REQUIRE_THROWS_WITH( parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) ) - -------------------------------------------------------------------------------- -SCOPED_INFO is reset for each loop -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 0 < 10 -with messages: - current counter 0 - i := 0 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 1 < 10 -with messages: - current counter 1 - i := 1 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 2 < 10 -with messages: - current counter 2 - i := 2 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 3 < 10 -with messages: - current counter 3 - i := 3 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 4 < 10 -with messages: - current counter 4 - i := 4 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 5 < 10 -with messages: - current counter 5 - i := 5 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 6 < 10 -with messages: - current counter 6 - i := 6 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 7 < 10 -with messages: - current counter 7 - i := 7 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 8 < 10 -with messages: - current counter 8 - i := 8 - -MessageTests.cpp:: -PASSED: - REQUIRE( i < 10 ) -with expansion: - 9 < 10 -with messages: - current counter 9 - i := 9 - -MessageTests.cpp:: FAILED: - REQUIRE( i < 10 ) -with expansion: - 10 < 10 -with messages: - current counter 10 - i := 10 - -------------------------------------------------------------------------------- -SUCCEED counts as a test pass -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -PASSED: -with message: - this is a success - -------------------------------------------------------------------------------- -SUCCESS does not require an argument -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or - methods - Given: No operations precede me -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( before == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or - methods - Given: No operations precede me - When: We get the count - Then: Subsequently values are higher -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( after > before ) -with expansion: - 1 > 0 - -------------------------------------------------------------------------------- -Scenario: Do that thing with the thing - Given: This stuff exists - When: I do this - Then: it should do this -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( itDoesThis() ) -with expansion: - true - -------------------------------------------------------------------------------- -Scenario: Do that thing with the thing - Given: This stuff exists - When: I do this - Then: it should do this - And: do that -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( itDoesThat() ) -with expansion: - true - -------------------------------------------------------------------------------- -Scenario: This is a really long scenario name to see how the list command deals - with wrapping - Given: A section name that is so long that it cannot fit in a single - console width - When: The test headers are printed as part of the normal running of the - scenario - Then: The, deliberately very long and overly verbose (you see what I did - there?) section names must wrap, along with an indent -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: -with message: - boo! - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( v.size() == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector - When: it is made larger - Then: the size and capacity go up -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( v.size() == 10 ) -with expansion: - 10 == 10 - -BDDTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector - When: it is made larger - Then: the size and capacity go up - And when: it is made smaller again - Then: the size goes down but the capacity stays the same -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -BDDTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( v.size() == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -Scenario: Vector resizing affects size and capacity - Given: an empty vector - When: we reserve more space - Then: The capacity is increased but the size remains the same -------------------------------------------------------------------------------- -BDDTests.cpp: -............................................................................... - -BDDTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -BDDTests.cpp:: -PASSED: - REQUIRE( v.size() == 0 ) -with expansion: - 0 == 0 - -A string sent directly to stdout -A string sent directly to stderr -------------------------------------------------------------------------------- -Some simple comparisons between doubles -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == Approx( 1.23 ) ) -with expansion: - 1.23 == Approx( 1.23 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != Approx( 1.22 ) ) -with expansion: - 1.23 != Approx( 1.22 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != Approx( 1.24 ) ) -with expansion: - 1.23 != Approx( 1.24 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) == 1.23 ) -with expansion: - Approx( 1.23 ) == 1.23 - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) != 1.22 ) -with expansion: - Approx( 1.23 ) != 1.22 - -ApproxTests.cpp:: -PASSED: - REQUIRE( Approx( d ) != 1.24 ) -with expansion: - Approx( 1.23 ) != 1.24 - -Message from section one -------------------------------------------------------------------------------- -Standard output from all sections is reported - one -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - - -No assertions in section 'one' - -Message from section two -------------------------------------------------------------------------------- -Standard output from all sections is reported - two -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - - -No assertions in section 'two' - -------------------------------------------------------------------------------- -StartsWith string matcher -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ) -with expansion: - "this string contains 'abc' as a substring" starts with: "string" - -------------------------------------------------------------------------------- -String matchers -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - REQUIRE_THAT( testStringForMatching(), Contains( "string" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "string" - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), Contains( "abc" ) ) -with expansion: - "this string contains 'abc' as a substring" contains: "abc" - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), StartsWith( "this" ) ) -with expansion: - "this string contains 'abc' as a substring" starts with: "this" - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) ) -with expansion: - "this string contains 'abc' as a substring" ends with: "substring" - -hello -hello -------------------------------------------------------------------------------- -Tabs and newlines show in output -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( s1 == s2 ) -with expansion: - "if ($b == 10) { - $a = 20; - }" - == - "if ($b == 10) { - $a = 20; - } - " - -------------------------------------------------------------------------------- -Tag alias can be registered against tag patterns - The same tag alias can only be registered once -------------------------------------------------------------------------------- -TagAliasTests.cpp: -............................................................................... - -TagAliasTests.cpp:: -PASSED: - CHECK_THAT( what, Contains( "[@zzz]" ) ) -with expansion: - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "[@zzz]" - -TagAliasTests.cpp:: -PASSED: - CHECK_THAT( what, Contains( "file" ) ) -with expansion: - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "file" - -TagAliasTests.cpp:: -PASSED: - CHECK_THAT( what, Contains( "2" ) ) -with expansion: - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "2" - -TagAliasTests.cpp:: -PASSED: - CHECK_THAT( what, Contains( "10" ) ) -with expansion: - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "10" - -------------------------------------------------------------------------------- -Tag alias can be registered against tag patterns - Tag aliases must be of the form [@name] -------------------------------------------------------------------------------- -TagAliasTests.cpp: -............................................................................... - -TagAliasTests.cpp:: -PASSED: - CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) ) - -TagAliasTests.cpp:: -PASSED: - CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) - -TagAliasTests.cpp:: -PASSED: - CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) ) - -TagAliasTests.cpp:: -PASSED: - CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) ) - -------------------------------------------------------------------------------- -Test case with one argument -------------------------------------------------------------------------------- -VariadicMacrosTests.cpp: -............................................................................... - -VariadicMacrosTests.cpp:: -PASSED: -with message: - no assertions - -------------------------------------------------------------------------------- -Test enum bit values -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( 0x == bit30and31 ) -with expansion: - 3221225472 (0x) == 3221225472 - -------------------------------------------------------------------------------- -Text can be formatted using the Text class -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( Text( "hi there" ).toString() == "hi there" ) -with expansion: - "hi there" == "hi there" - -TestMain.cpp:: -PASSED: - CHECK( Text( "hi there", narrow ).toString() == "hi\nthere" ) -with expansion: - "hi - there" - == - "hi - there" - -------------------------------------------------------------------------------- -The NO_FAIL macro reports a failure but does not fail the test -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: -FAILED - but was ok: - CHECK_NOFAIL( 1 == 2 ) - -------------------------------------------------------------------------------- -This test 'should' fail but doesn't -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: -with message: - oops! - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - successfully close one section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isSuccessfullyCompleted() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - fail one section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - fail one section - re-enter after failed section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - fail one section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - fail one section - re-enter after failed section and find next section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another - Re-enter - skips S1 and enters S2 -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another - Re-enter - skips S1 and enters S2 - Successfully close S2 -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isSuccessfullyCompleted() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another - Re-enter - skips S1 and enters S2 -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - successfully close one section, then find another - Re-enter - skips S1 and enters S2 - fail S2 -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( ctx.completedCycle() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1c.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2c.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isSuccessfullyCompleted() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - open a nested section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - start a generator -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - close outer section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - close outer section - Re-enter for second generation -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.index() == 1 ) -with expansion: - 1 == 1 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - start a generator -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - Start a new inner section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - Start a new inner section - Re-enter for second generation -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.index() == 1 ) -with expansion: - 1 == 1 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isOpen() ) -with expansion: - true - -------------------------------------------------------------------------------- -Tracker - start a generator -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - Fail an inner section -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2.isSuccessfullyCompleted() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase.isComplete() == false ) -with expansion: - false == false - -------------------------------------------------------------------------------- -Tracker - start a generator - Fail an inner section - Re-enter for second generation -------------------------------------------------------------------------------- -PartTrackerTests.cpp: -............................................................................... - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.index() == 0 ) -with expansion: - 0 == 0 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2b.isOpen() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1b.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1b.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase2.isComplete() == false ) -with expansion: - false == false - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1c.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1c.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1c.index() == 1 ) -with expansion: - 1 == 1 - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2c.isOpen() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s2c.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( g1c.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( s1c.isComplete() ) -with expansion: - true - -PartTrackerTests.cpp:: -PASSED: - REQUIRE( testCase3.isComplete() ) -with expansion: - true - -------------------------------------------------------------------------------- -Unexpected exceptions can be translated -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - 3.14 - -------------------------------------------------------------------------------- -Use a custom approx -------------------------------------------------------------------------------- -ApproxTests.cpp: -............................................................................... - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.23 ) ) -with expansion: - 1.23 == Approx( 1.23 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.22 ) ) -with expansion: - 1.23 == Approx( 1.22 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d == approx( 1.24 ) ) -with expansion: - 1.23 == Approx( 1.24 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( d != approx( 1.25 ) ) -with expansion: - 1.23 != Approx( 1.25 ) - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.23 ) -with expansion: - Approx( 1.23 ) == 1.23 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.22 ) -with expansion: - Approx( 1.23 ) == 1.22 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) == 1.24 ) -with expansion: - Approx( 1.23 ) == 1.24 - -ApproxTests.cpp:: -PASSED: - REQUIRE( approx( d ) != 1.25 ) -with expansion: - Approx( 1.23 ) != 1.25 - -------------------------------------------------------------------------------- -Variadic macros - Section with one argument -------------------------------------------------------------------------------- -VariadicMacrosTests.cpp: -............................................................................... - -VariadicMacrosTests.cpp:: -PASSED: -with message: - no assertions - -------------------------------------------------------------------------------- -Vector matchers - Contains (element) -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( v, VectorContains( 1 ) ) -with expansion: - { 1, 2, 3 } Contains: 1 - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( v, VectorContains( 2 ) ) -with expansion: - { 1, 2, 3 } Contains: 2 - -------------------------------------------------------------------------------- -Vector matchers - Contains (vector) -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( v, Contains( v2 ) ) -with expansion: - { 1, 2, 3 } Contains: { 1, 2 } - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( v, Contains( v2 ) ) -with expansion: - { 1, 2, 3 } Contains: { 1, 2, 3 } - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( v, Contains( empty) ) -with expansion: - { 1, 2, 3 } Contains: { } - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( empty, Contains( empty) ) -with expansion: - { } Contains: { } - -------------------------------------------------------------------------------- -Vector matchers - Equals -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( v, Equals( v ) ) -with expansion: - { 1, 2, 3 } Equals: { 1, 2, 3 } - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( empty, Equals( empty ) ) -with expansion: - { } Equals: { } - -MatchersTests.cpp:: -PASSED: - CHECK_THAT( v, Equals( v2 ) ) -with expansion: - { 1, 2, 3 } Equals: { 1, 2, 3 } - -------------------------------------------------------------------------------- -Vector matchers that fail - Contains (element) -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, VectorContains( -1 ) ) -with expansion: - { 1, 2, 3 } Contains: -1 - -MatchersTests.cpp:: FAILED: - CHECK_THAT( empty, VectorContains( 1 ) ) -with expansion: - { } Contains: 1 - -------------------------------------------------------------------------------- -Vector matchers that fail - Contains (vector) -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( empty, Contains( v) ) -with expansion: - { } Contains: { 1, 2, 3 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, Contains( v2 ) ) -with expansion: - { 1, 2, 3 } Contains: { 1, 2, 4 } - -------------------------------------------------------------------------------- -Vector matchers that fail - Equals -------------------------------------------------------------------------------- -MatchersTests.cpp: -............................................................................... - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, Equals( v2 ) ) -with expansion: - { 1, 2, 3 } Equals: { 1, 2 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v2, Equals( v ) ) -with expansion: - { 1, 2 } Equals: { 1, 2, 3 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( empty, Equals( v ) ) -with expansion: - { } Equals: { 1, 2, 3 } - -MatchersTests.cpp:: FAILED: - CHECK_THAT( v, Equals( empty ) ) -with expansion: - { 1, 2, 3 } Equals: { } - -------------------------------------------------------------------------------- -When checked exceptions are thrown they can be expected or unexpected -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS_AS( thisThrows(), std::domain_error ) - -ExceptionTests.cpp:: -PASSED: - REQUIRE_NOTHROW( thisDoesntThrow() ) - -ExceptionTests.cpp:: -PASSED: - REQUIRE_THROWS( thisThrows() ) - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown directly they are always failures -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown during a CHECK the test should continue -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK( thisThrows() == 0 ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown during a REQUIRE the test should abort -fail -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - REQUIRE( thisThrows() == 0 ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown from functions they are always failures -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: - CHECK( thisThrows() == 0 ) -due to unexpected exception with message: - expected exception - -------------------------------------------------------------------------------- -When unchecked exceptions are thrown from sections they are always failures - section name -------------------------------------------------------------------------------- -ExceptionTests.cpp: -............................................................................... - -ExceptionTests.cpp:: FAILED: -due to unexpected exception with message: - unexpected exception - -------------------------------------------------------------------------------- -Where the LHS is not a simple value -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -warning: - Uncomment the code in this test to check that it gives a sensible compiler - error - -------------------------------------------------------------------------------- -Where there is more to the expression after the RHS -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -warning: - Uncomment the code in this test to check that it gives a sensible compiler - error - -------------------------------------------------------------------------------- -X/level/0/a -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -X/level/0/b -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -X/level/1/a -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -X/level/1/b -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -XmlEncode - normal string -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "normal string" ) == "normal string" ) -with expansion: - "normal string" == "normal string" - -------------------------------------------------------------------------------- -XmlEncode - empty string -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "" ) == "" ) -with expansion: - "" == "" - -------------------------------------------------------------------------------- -XmlEncode - string with ampersand -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith & jones" ) == "smith & jones" ) -with expansion: - "smith & jones" == "smith & jones" - -------------------------------------------------------------------------------- -XmlEncode - string with less-than -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith < jones" ) == "smith < jones" ) -with expansion: - "smith < jones" == "smith < jones" - -------------------------------------------------------------------------------- -XmlEncode - string with greater-than -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith > jones" ) == "smith > jones" ) -with expansion: - "smith > jones" == "smith > jones" - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" ) -with expansion: - "smith ]]> jones" - == - "smith ]]> jones" - -------------------------------------------------------------------------------- -XmlEncode - string with quotes -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( stringWithQuotes ) == stringWithQuotes ) -with expansion: - "don't "quote" me on that" - == - "don't "quote" me on that" - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't "quote" me on that" ) -with expansion: - "don't "quote" me on that" - == - "don't "quote" me on that" - -------------------------------------------------------------------------------- -XmlEncode - string with control char (1) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "[\x01]" ) == "[\\x01]" ) -with expansion: - "[\x01]" == "[\x01]" - -------------------------------------------------------------------------------- -XmlEncode - string with control char (x7F) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( encode( "[\x7F]" ) == "[\\x7F]" ) -with expansion: - "[\x7F]" == "[\x7F]" - -------------------------------------------------------------------------------- -atomic if -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( x == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -boolean member -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( obj.prop != 0 ) -with expansion: - 0x != 0 - -------------------------------------------------------------------------------- -checkedElse -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECKED_ELSE( flag ) -with expansion: - true - -MiscTests.cpp:: -PASSED: - REQUIRE( testCheckedElse( true ) ) -with expansion: - true - -------------------------------------------------------------------------------- -checkedElse, failing -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECKED_ELSE( flag ) -with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedElse( false ) ) -with expansion: - false - -------------------------------------------------------------------------------- -checkedIf -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECKED_IF( flag ) -with expansion: - true - -MiscTests.cpp:: -PASSED: - REQUIRE( testCheckedIf( true ) ) -with expansion: - true - -------------------------------------------------------------------------------- -checkedIf, failing -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECKED_IF( flag ) -with expansion: - false - -MiscTests.cpp:: FAILED: - REQUIRE( testCheckedIf( false ) ) -with expansion: - false - -------------------------------------------------------------------------------- -comparisons between const int variables -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_char_var == 1 ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_short_var == 1 ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_int_var == 1 ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( unsigned_long_var == 1 ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -comparisons between int variables -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_char_var ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_short_var ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_int_var ) -with expansion: - 1 == 1 - -ConditionTests.cpp:: -PASSED: - REQUIRE( long_var == unsigned_long_var ) -with expansion: - 1 == 1 - -------------------------------------------------------------------------------- -even more nested SECTION tests - c - d (leaf) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -even more nested SECTION tests - c - e (leaf) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -even more nested SECTION tests - f (leaf) -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -spanner------------------------------------------------------------------------------- -just failure -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: -explicitly with message: - Previous info should not be seen - -------------------------------------------------------------------------------- -looped SECTION tests - s1 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( b > a ) -with expansion: - 0 > 1 - -------------------------------------------------------------------------------- -looped tests -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[0] (1) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[1] (1) is even - -MiscTests.cpp:: -PASSED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 0 == 0 -with message: - Testing if fib[2] (2) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[3] (3) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[4] (5) is even - -MiscTests.cpp:: -PASSED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 0 == 0 -with message: - Testing if fib[5] (8) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[6] (13) is even - -MiscTests.cpp:: FAILED: - CHECK( ( fib[i] % 2 ) == 0 ) -with expansion: - 1 == 0 -with message: - Testing if fib[7] (21) is even - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( a == b ) -with expansion: - 1 == 2 - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s3 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -------------------------------------------------------------------------------- -more nested SECTION tests - s1 - s4 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a < b ) -with expansion: - 1 < 2 - -------------------------------------------------------------------------------- -nested SECTION tests - s1 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -MiscTests.cpp:: -PASSED: - REQUIRE( b != a ) -with expansion: - 2 != 1 - -------------------------------------------------------------------------------- -nested SECTION tests - s1 - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -------------------------------------------------------------------------------- -non streamable - with conv. op -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( s == "7" ) -with expansion: - "7" == "7" - -------------------------------------------------------------------------------- -not allowed -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -null strings -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( makeString( false ) != static_cast(0) ) -with expansion: - "valid string" != {null string} - -MiscTests.cpp:: -PASSED: - REQUIRE( makeString( true ) == static_cast(0) ) -with expansion: - {null string} == {null string} - -------------------------------------------------------------------------------- -pair > -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" ) -with expansion: - "{ { 42, "Arthur" }, { "Ford", 24 } }" - == - "{ { 42, "Arthur" }, { "Ford", 24 } }" - -------------------------------------------------------------------------------- -pointer to class -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: -PASSED: - REQUIRE( p == 0 ) -with expansion: - NULL == 0 - -------------------------------------------------------------------------------- -random SECTION tests - s1 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -MiscTests.cpp:: -PASSED: - REQUIRE( b != a ) -with expansion: - 2 != 1 - -------------------------------------------------------------------------------- -random SECTION tests - s2 -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( a != b ) -with expansion: - 1 != 2 - -------------------------------------------------------------------------------- -replaceInPlace - replace single char -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "b", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "azcdefcg" ) -with expansion: - "azcdefcg" == "azcdefcg" - -------------------------------------------------------------------------------- -replaceInPlace - replace two chars -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "c", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "abzdefzg" ) -with expansion: - "abzdefzg" == "abzdefzg" - -------------------------------------------------------------------------------- -replaceInPlace - replace first char -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "a", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "zbcdefcg" ) -with expansion: - "zbcdefcg" == "zbcdefcg" - -------------------------------------------------------------------------------- -replaceInPlace - replace last char -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, "g", "z" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "abcdefcz" ) -with expansion: - "abcdefcz" == "abcdefcz" - -------------------------------------------------------------------------------- -replaceInPlace - replace all chars -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( letters, letters, "replaced" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( letters == "replaced" ) -with expansion: - "replaced" == "replaced" - -------------------------------------------------------------------------------- -replaceInPlace - replace no chars -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK_FALSE( replaceInPlace( letters, "x", "z" ) ) -with expansion: - !false - -TestMain.cpp:: -PASSED: - CHECK( letters == letters ) -with expansion: - "abcdefcg" == "abcdefcg" - -------------------------------------------------------------------------------- -replaceInPlace - escape ' -------------------------------------------------------------------------------- -TestMain.cpp: -............................................................................... - -TestMain.cpp:: -PASSED: - CHECK( replaceInPlace( s, "'", "|'" ) ) -with expansion: - true - -TestMain.cpp:: -PASSED: - CHECK( s == "didn|'t" ) -with expansion: - "didn|'t" == "didn|'t" - -------------------------------------------------------------------------------- -send a single char to INFO -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: FAILED: - REQUIRE( false ) -with message: - 3 - -------------------------------------------------------------------------------- -sends information to INFO -------------------------------------------------------------------------------- -MessageTests.cpp: -............................................................................... - -MessageTests.cpp:: FAILED: - REQUIRE( false ) -with messages: - hi - i := 7 - -------------------------------------------------------------------------------- -std::pair -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString(value) == "{ 34, \"xyzzy\" }" ) -with expansion: - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - -------------------------------------------------------------------------------- -std::pair -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString( value ) == "{ 34, \"xyzzy\" }" ) -with expansion: - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - -------------------------------------------------------------------------------- -std::vector > -> toString -------------------------------------------------------------------------------- -ToStringPair.cpp: -............................................................................... - -ToStringPair.cpp:: -PASSED: - REQUIRE( Catch::toString( pr ) == "{ { \"green\", 55 } }" ) -with expansion: - "{ { "green", 55 } }" - == - "{ { "green", 55 } }" - -------------------------------------------------------------------------------- -string literals of different sizes can be compared -------------------------------------------------------------------------------- -TrickyTests.cpp: -............................................................................... - -TrickyTests.cpp:: FAILED: - REQUIRE( std::string( "first" ) == "second" ) -with expansion: - "first" == "second" - -------------------------------------------------------------------------------- -toString on const wchar_t const pointer returns the string contents -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -toString on const wchar_t pointer returns the string contents -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -toString on wchar_t const pointer returns the string contents -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -toString on wchar_t returns the string contents -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - CHECK( result == "\"wide load\"" ) -with expansion: - ""wide load"" == ""wide load"" - -------------------------------------------------------------------------------- -toString( has_maker ) -------------------------------------------------------------------------------- -ToStringWhich.cpp: -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( item ) == "StringMaker" ) -with expansion: - "StringMaker" - == - "StringMaker" - -------------------------------------------------------------------------------- -toString( has_maker_and_toString ) -------------------------------------------------------------------------------- -ToStringWhich.cpp: -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( item ) == "toString( has_maker_and_toString )" ) -with expansion: - "toString( has_maker_and_toString )" - == - "toString( has_maker_and_toString )" - -------------------------------------------------------------------------------- -toString( has_toString ) -------------------------------------------------------------------------------- -ToStringWhich.cpp: -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( item ) == "toString( has_toString )" ) -with expansion: - "toString( has_toString )" - == - "toString( has_toString )" - -------------------------------------------------------------------------------- -toString( vectors -............................................................................... - -ToStringWhich.cpp:: -PASSED: - REQUIRE( Catch::toString( v ) == "{ StringMaker }" ) -with expansion: - "{ StringMaker }" - == - "{ StringMaker }" - -------------------------------------------------------------------------------- -toString(enum w/operator<<) -------------------------------------------------------------------------------- -EnumToString.cpp: -............................................................................... - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e0) == "E2{0}" ) -with expansion: - "E2{0}" == "E2{0}" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "E2{1}" ) -with expansion: - "E2{1}" == "E2{1}" - -------------------------------------------------------------------------------- -toString(enum) -------------------------------------------------------------------------------- -EnumToString.cpp: -............................................................................... - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e0) == "0" ) -with expansion: - "0" == "0" - -EnumToString.cpp:: -PASSED: - CHECK( Catch::toString(e1) == "1" ) -with expansion: - "1" == "1" - -------------------------------------------------------------------------------- -vector -> toString -------------------------------------------------------------------------------- -ToStringVector.cpp: -............................................................................... - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ }" ) -with expansion: - "{ }" == "{ }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ 42 }" ) -with expansion: - "{ 42 }" == "{ 42 }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ 42, 250 }" ) -with expansion: - "{ 42, 250 }" == "{ 42, 250 }" - -------------------------------------------------------------------------------- -vector -> toString -------------------------------------------------------------------------------- -ToStringVector.cpp: -............................................................................... - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ }" ) -with expansion: - "{ }" == "{ }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ \"hello\" }" ) -with expansion: - "{ "hello" }" == "{ "hello" }" - -ToStringVector.cpp:: -PASSED: - REQUIRE( Catch::toString(vv) == "{ \"hello\", \"world\" }" ) -with expansion: - "{ "hello", "world" }" - == - "{ "hello", "world" }" - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - resizing bigger changes size and capacity -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 10 ) -with expansion: - 10 == 10 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - resizing smaller changes size but not capacity -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 0 ) -with expansion: - 0 == 0 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - resizing smaller changes size but not capacity - We can use the 'swap trick' to reset the capacity -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() == 0 ) -with expansion: - 0 == 0 - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - reserving bigger changes capacity but not size -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 10 ) -with expansion: - 10 >= 10 - -------------------------------------------------------------------------------- -vectors can be sized and resized -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -vectors can be sized and resized - reserving smaller does not change size or capacity -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - REQUIRE( v.size() == 5 ) -with expansion: - 5 == 5 - -MiscTests.cpp:: -PASSED: - REQUIRE( v.capacity() >= 5 ) -with expansion: - 5 >= 5 - -------------------------------------------------------------------------------- -xmlentitycheck - embedded xml -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -------------------------------------------------------------------------------- -xmlentitycheck - encoded chars -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: - -=============================================================================== -test cases: 164 | 118 passed | 44 failed | 2 failed as expected -assertions: 957 | 851 passed | 88 failed | 18 failed as expected - diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt deleted file mode 100644 index 098c33d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/console.swa4.approved.txt +++ /dev/null @@ -1,74 +0,0 @@ - -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - is a host application. -Run with -? for options - -------------------------------------------------------------------------------- -# A test name that starts with a # -------------------------------------------------------------------------------- -MiscTests.cpp: -............................................................................... - -MiscTests.cpp:: -PASSED: -with message: - yay - -------------------------------------------------------------------------------- -#542 -------------------------------------------------------------------------------- -CompilationTests.cpp: -............................................................................... - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), int ) - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), int& ) - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), const int ) - -CompilationTests.cpp:: -PASSED: - CHECK_THROWS_AS( throws_int(true), const int& ) - -------------------------------------------------------------------------------- -#809 -------------------------------------------------------------------------------- -CompilationTests.cpp: -............................................................................... - -CompilationTests.cpp:: -PASSED: - REQUIRE( 42 == f ) -with expansion: - 42 == {?} - -------------------------------------------------------------------------------- -'Not' checks that should fail -------------------------------------------------------------------------------- -ConditionTests.cpp: -............................................................................... - -ConditionTests.cpp:: FAILED: - CHECK( false != false ) - -ConditionTests.cpp:: FAILED: - CHECK( true != true ) - -ConditionTests.cpp:: FAILED: - CHECK( !true ) -with expansion: - false - -ConditionTests.cpp:: FAILED: - CHECK_FALSE( true ) - -=============================================================================== -test cases: 4 | 3 passed | 1 failed -assertions: 10 | 6 passed | 4 failed - diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt deleted file mode 100644 index 41cfb46..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/junit.sw.approved.txt +++ /dev/null @@ -1,720 +0,0 @@ - - - - - - - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - - - - - - - - - -ClassTests.cpp: - - - - - -ClassTests.cpp: - - - - - -to infinity and beyond -MiscTests.cpp: - - - - - -TrickyTests.cpp: - - -TrickyTests.cpp: - - - - - - - -unexpected exception -ExceptionTests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - -MatchersTests.cpp: - - - - -custom exception - not std -ExceptionTests.cpp: - - - - -custom exception - not std -ExceptionTests.cpp: - - - - -custom std exception -ExceptionTests.cpp: - - - - - -MatchersTests.cpp: - - - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - - - - - -MatchersTests.cpp: - - - - - - - -expected exception -ExceptionTests.cpp: - - -ExceptionTests.cpp: - - -expected exception -ExceptionTests.cpp: - - - - -This is a failure -MessageTests.cpp: - - - - -MessageTests.cpp: - - - - - - - - - -this message should be logged -so should this -MessageTests.cpp: - - - - -this message should be logged -MessageTests.cpp: - - -and this, but later -MessageTests.cpp: - - - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - -MatchersTests.cpp: - - - - - -MatchersTests.cpp: - - - - -ExceptionTests.cpp: - - - - - -custom exception -ExceptionTests.cpp: - - - - - - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - -ConditionTests.cpp: - - - - - -Message from section one -MessageTests.cpp: - - - - -Message from section two -MessageTests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -current counter 10 -i := 10 -MessageTests.cpp: - - - - - - - - - - - - - - - -A string sent directly to stdout - - -A string sent directly to stderr - - - - - -Message from section one -Message from section two - - - - -MatchersTests.cpp: - - - - - -hello -hello - - - - -MiscTests.cpp: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3.14 -ExceptionTests.cpp: - - - - - - - - - -MatchersTests.cpp: - - -MatchersTests.cpp: - - - - -MatchersTests.cpp: - - -MatchersTests.cpp: - - - - -MatchersTests.cpp: - - -MatchersTests.cpp: - - -MatchersTests.cpp: - - -MatchersTests.cpp: - - - - - -unexpected exception -ExceptionTests.cpp: - - - - -expected exception -ExceptionTests.cpp: - - - - -expected exception -ExceptionTests.cpp: - - - - -expected exception -ExceptionTests.cpp: - - - - -unexpected exception -ExceptionTests.cpp: - - - - - - - - - - - - - - - - - - - - - -MiscTests.cpp: - - -MiscTests.cpp: - - - - - -MiscTests.cpp: - - -MiscTests.cpp: - - - - - - - - - -Previous info should not be seen -MessageTests.cpp: - - - - -MiscTests.cpp: - - - - -Testing if fib[0] (1) is even -MiscTests.cpp: - - -Testing if fib[1] (1) is even -MiscTests.cpp: - - -Testing if fib[3] (3) is even -MiscTests.cpp: - - -Testing if fib[4] (5) is even -MiscTests.cpp: - - -Testing if fib[6] (13) is even -MiscTests.cpp: - - -Testing if fib[7] (21) is even -MiscTests.cpp: - - - - -MiscTests.cpp: - - - - - - - - - - - - - - - - - - - - - - -3 -MiscTests.cpp: - - - - -hi -i := 7 -MessageTests.cpp: - - - - - - - -TrickyTests.cpp: - - - - - - - - - - - - - - - - - - - - - - - -A string sent directly to stdout -Message from section one -Message from section two -hello -hello - - -A string sent directly to stderr - - - diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt deleted file mode 100644 index ab6ab08..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/Baselines/xml.sw.approved.txt +++ /dev/null @@ -1,9994 +0,0 @@ - - - - - - - - - - throws_int(true), int - - - throws_int(true), int - - - - - throws_int(true), int& - - - throws_int(true), int& - - - - - throws_int(true), const int - - - throws_int(true), const int - - - - - throws_int(true), const int& - - - throws_int(true), const int& - - - - - - - - 42 == f - - - 42 == {?} - - - - - - - - false != false - - - false != false - - - - - true != true - - - true != true - - - - - !true - - - false - - - - - !true - - - !true - - - - - !trueValue - - - false - - - - - !trueValue - - - !true - - - - - !(1 == 1) - - - false - - - - - !1 == 1 - - - !(1 == 1) - - - - - - - - false == false - - - false == false - - - - - true == true - - - true == true - - - - - !false - - - true - - - - - !false - - - !false - - - - - !falseValue - - - true - - - - - !falseValue - - - !false - - - - - !(1 == 2) - - - true - - - - - !1 == 2 - - - !(1 == 2) - - - - - -
- - - is_true<true>::value == true - - - true == true - - - - - true == is_true<true>::value - - - true == true - - - -
-
- - - is_true<false>::value == false - - - false == false - - - - - false == is_true<false>::value - - - false == false - - - -
-
- - - !is_true<false>::value - - - true - - - -
-
- - - !!is_true<true>::value - - - true - - - -
-
- - - is_true<true>::value - - - true - - - - - !is_true<false>::value - - - !false - - - -
- -
- - - - s == "world" - - - "hello" == "world" - - - - - - - - s == "hello" - - - "hello" == "hello" - - - - - - - - m_a == 2 - - - 1 == 2 - - - - - - - - m_a == 1 - - - 1 == 1 - - - - - -
-
- -
- -
- - to infinity and beyond - - -
- - - - &o1 == &o2 - - - 0x == 0x - - - - - o1 == o2 - - - {?} == {?} - - - - - - - - 104.0 != Approx(100.0) - - - 104.0 != Approx( 100.0 ) - - - - - 104.0 == Approx(100.0).margin(5) - - - 104.0 == Approx( 100.0 ) - - - - - 104.0 != Approx(100.0).margin(3) - - - 104.0 != Approx( 100.0 ) - - - - - 100.3 != Approx(100.0) - - - 100.3 != Approx( 100.0 ) - - - - - 100.3 == Approx(100.0).margin(0.5) - - - 100.3 == Approx( 100.0 ) - - - - - - - - testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) - - - "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" ) - - - - - - - - - - - i++ == 7 - - - 7 == 7 - - - - - i++ == 8 - - - 8 == 8 - - - - - - - - 1 == 1 - - - 1 == 1 - - - - - {Unknown expression after the reported line} - - - {Unknown expression after the reported line} - - - unexpected exception - - - - - - - - - - - testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) - - - "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" ) - - - - - testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) - - - "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" ) - - - - - - - - divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) - - - 3.1428571429 == Approx( 3.141 ) - - - - - divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) - - - 3.1428571429 != Approx( 3.141 ) - - - - - - - - d != Approx( 1.231 ) - - - 1.23 != Approx( 1.231 ) - - - - - d == Approx( 1.231 ).epsilon( 0.1 ) - - - 1.23 == Approx( 1.231 ) - - - - - - - - 1.23f == Approx( 1.23f ) - - - 1.23f == Approx( 1.2300000191 ) - - - - - 0.0f == Approx( 0.0f ) - - - 0.0f == Approx( 0.0 ) - - - - - - - - 1 == Approx( 1 ) - - - 1 == Approx( 1.0 ) - - - - - 0 == Approx( 0 ) - - - 0 == Approx( 0.0 ) - - - - - - - - 1.0f == Approx( 1 ) - - - 1.0f == Approx( 1.0 ) - - - - - 0 == Approx( dZero) - - - 0 == Approx( 0.0 ) - - - - - 0 == Approx( dSmall ).epsilon( 0.001 ) - - - 0 == Approx( 0.00001 ) - - - - - 1.234f == Approx( dMedium ) - - - 1.234f == Approx( 1.234 ) - - - - - dMedium == Approx( 1.234f ) - - - 1.234 == Approx( 1.2339999676 ) - - - - - - - - Catch::alwaysTrue() - - - true - - -
- - - Catch::alwaysTrue() - - - true - - -
- - - Catch::alwaysTrue() - - - true - - - -
- -
- - - Catch::alwaysTrue() - - - true - - -
- - - Catch::alwaysTrue() - - - true - - -
- - - Catch::alwaysTrue() - - - true - - - -
- -
- -
- -
- - i := 2 - - - - true - - - true - - - -
-
- - 3 - - - - true - - - true - - - -
- -
- -
- - - tab == '\t' - - - '\t' == '\t' - - - - - newline == '\n' - - - '\n' == '\n' - - - - - carr_return == '\r' - - - '\r' == '\r' - - - - - form_feed == '\f' - - - '\f' == '\f' - - - -
-
- - - space == ' ' - - - ' ' == ' ' - - - - - c == chars[i] - - - 'a' == 'a' - - - - - c == chars[i] - - - 'z' == 'z' - - - - - c == chars[i] - - - 'A' == 'A' - - - - - c == chars[i] - - - 'Z' == 'Z' - - - -
-
- - - null_terminator == '\0' - - - 0 == 0 - - - - - c == i - - - 2 == 2 - - - - - c == i - - - 3 == 3 - - - - - c == i - - - 4 == 4 - - - - - c == i - - - 5 == 5 - - - -
- -
- - - - a - - - true - - - - - a == &foo - - - 0x == 0x - - - - - - - - m == &S::f - - - 0x -== -0x - - - - - - - - 54 == 6*9 - - - 54 == 54 - - - - - - - - ( -1 > 2u ) - - - true - - - - - -1 > 2u - - - -1 > 2 - - - - - ( 2u < -1 ) - - - true - - - - - 2u < -1 - - - 2 < -1 - - - - - ( minInt > 2u ) - - - true - - - - - minInt > 2u - - - -2147483648 > 2 - - - - - - - - i == 1 - - - 1 == 1 - - - - - ui == 2 - - - 2 == 2 - - - - - l == 3 - - - 3 == 3 - - - - - ul == 4 - - - 4 == 4 - - - - - c == 5 - - - 5 == 5 - - - - - uc == 6 - - - 6 == 6 - - - - - 1 == i - - - 1 == 1 - - - - - 2 == ui - - - 2 == 2 - - - - - 3 == l - - - 3 == 3 - - - - - 4 == ul - - - 4 == 4 - - - - - 5 == c - - - 5 == 5 - - - - - 6 == uc - - - 6 == 6 - - - - - (std::numeric_limits<unsigned long>::max)() > ul - - - 18446744073709551615 (0x) -> -4 - - - - - - - - testStringForMatching(), Contains( "not there" ) - - - "this string contains 'abc' as a substring" contains: "not there" - - - - - - - - throwCustom() - - - throwCustom() - - - custom exception - not std - - - - - - - - throwCustom(), std::exception - - - throwCustom(), std::exception - - - custom exception - not std - - - - - - - custom std exception - - - - - - - t == 1u - - - {?} == 1 - - - - - - - - testStringForMatching(), EndsWith( "this" ) - - - "this string contains 'abc' as a substring" ends with: "this" - - - - - - - - data.int_seven == 6 - - - 7 == 6 - - - - - data.int_seven == 8 - - - 7 == 8 - - - - - data.int_seven == 0 - - - 7 == 0 - - - - - data.float_nine_point_one == Approx( 9.11f ) - - - 9.1f == Approx( 9.1099996567 ) - - - - - data.float_nine_point_one == Approx( 9.0f ) - - - 9.1f == Approx( 9.0 ) - - - - - data.float_nine_point_one == Approx( 1 ) - - - 9.1f == Approx( 1.0 ) - - - - - data.float_nine_point_one == Approx( 0 ) - - - 9.1f == Approx( 0.0 ) - - - - - data.double_pi == Approx( 3.1415 ) - - - 3.1415926535 == Approx( 3.1415 ) - - - - - data.str_hello == "goodbye" - - - "hello" == "goodbye" - - - - - data.str_hello == "hell" - - - "hello" == "hell" - - - - - data.str_hello == "hello1" - - - "hello" == "hello1" - - - - - data.str_hello.size() == 6 - - - 5 == 6 - - - - - x == Approx( 1.301 ) - - - 1.3 == Approx( 1.301 ) - - - - - - - - data.int_seven == 7 - - - 7 == 7 - - - - - data.float_nine_point_one == Approx( 9.1f ) - - - 9.1f == Approx( 9.1000003815 ) - - - - - data.double_pi == Approx( 3.1415926535 ) - - - 3.1415926535 == Approx( 3.1415926535 ) - - - - - data.str_hello == "hello" - - - "hello" == "hello" - - - - - "hello" == data.str_hello - - - "hello" == "hello" - - - - - data.str_hello.size() == 5 - - - 5 == 5 - - - - - x == Approx( 1.3 ) - - - 1.3 == Approx( 1.3 ) - - - - - - - - testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) - - - "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring" - - - - - - - - testStringForMatching(), Equals( "something else" ) - - - "this string contains 'abc' as a substring" equals: "something else" - - - - - -
- - - thisThrows(), "expected exception" - - - thisThrows(), "expected exception" - - - -
-
- - - thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) - - - thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) - - - -
-
- - - thisThrows(), StartsWith( "expected" ) - - - thisThrows(), StartsWith( "expected" ) - - - - - thisThrows(), EndsWith( "exception" ) - - - thisThrows(), EndsWith( "exception" ) - - - - - thisThrows(), Contains( "except" ) - - - thisThrows(), Contains( "except" ) - - - - - thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) - - - thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) - - - -
- -
- - - - thisThrows(), std::string - - - thisThrows(), std::string - - - expected exception - - - - - thisDoesntThrow(), std::domain_error - - - thisDoesntThrow(), std::domain_error - - - - - thisThrows() - - - thisThrows() - - - expected exception - - - - - - - This is a failure - - - - - - - - - - - Factorial(0) == 1 - - - 1 == 1 - - - - - Factorial(1) == 1 - - - 1 == 1 - - - - - Factorial(2) == 2 - - - 2 == 2 - - - - - Factorial(3) == 6 - - - 6 == 6 - - - - - Factorial(10) == 3628800 - - - 3628800 (0x) == 3628800 (0x) - - - - - - - - i->first == i->second-1 - - - 0 == 0 - - - - - i->first == i->second-1 - - - 2 == 2 - - - - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 200 == 200 - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 202 == 202 - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 204 == 204 - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 206 == 206 - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 208 == 208 - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 210 == 210 - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 212 == 212 - - - - - multiply( i, 2 ) == i*2 - - - 2 == 2 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 4 == 4 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 6 == 6 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 8 == 8 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 10 == 10 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 30 == 30 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 40 == 40 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 42 == 42 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - multiply( i, 2 ) == i*2 - - - 72 == 72 - - - - - multiply( j, 2 ) == j*2 - - - 214 == 214 - - - - - - - - d >= Approx( 1.22 ) - - - 1.23 >= Approx( 1.22 ) - - - - - d >= Approx( 1.23 ) - - - 1.23 >= Approx( 1.23 ) - - - - - !d >= Approx( 1.24 ) - - - !(1.23 >= Approx( 1.24 )) - - - - - d >= Approx( 1.24 ).epsilon(0.1) - - - 1.23 >= Approx( 1.24 ) - - - - - - - this is a message - - - this is a warning - - - - - - this message should be logged - - - so should this - - - - a == 1 - - - 2 == 1 - - - - - - - this message may be logged later - - - - a == 2 - - - 2 == 2 - - - - this message should be logged - - - - a == 1 - - - 2 == 1 - - - - and this, but later - - - - a == 0 - - - 2 == 0 - - - - but not this - - - - a == 2 - - - 2 == 2 - - - - - - - - data.int_seven != 7 - - - 7 != 7 - - - - - data.float_nine_point_one != Approx( 9.1f ) - - - 9.1f != Approx( 9.1000003815 ) - - - - - data.double_pi != Approx( 3.1415926535 ) - - - 3.1415926535 != Approx( 3.1415926535 ) - - - - - data.str_hello != "hello" - - - "hello" != "hello" - - - - - data.str_hello.size() != 5 - - - 5 != 5 - - - - - - - - data.int_seven != 6 - - - 7 != 6 - - - - - data.int_seven != 8 - - - 7 != 8 - - - - - data.float_nine_point_one != Approx( 9.11f ) - - - 9.1f != Approx( 9.1099996567 ) - - - - - data.float_nine_point_one != Approx( 9.0f ) - - - 9.1f != Approx( 9.0 ) - - - - - data.float_nine_point_one != Approx( 1 ) - - - 9.1f != Approx( 1.0 ) - - - - - data.float_nine_point_one != Approx( 0 ) - - - 9.1f != Approx( 0.0 ) - - - - - data.double_pi != Approx( 3.1415 ) - - - 3.1415926535 != Approx( 3.1415 ) - - - - - data.str_hello != "goodbye" - - - "hello" != "goodbye" - - - - - data.str_hello != "hell" - - - "hello" != "hell" - - - - - data.str_hello != "hello1" - - - "hello" != "hello1" - - - - - data.str_hello.size() != 6 - - - 5 != 6 - - - - - - - - d <= Approx( 1.24 ) - - - 1.23 <= Approx( 1.24 ) - - - - - d <= Approx( 1.23 ) - - - 1.23 <= Approx( 1.23 ) - - - - - !d <= Approx( 1.22 ) - - - !(1.23 <= Approx( 1.22 )) - - - - - d <= Approx( 1.22 ).epsilon(0.1) - - - 1.23 <= Approx( 1.22 ) - - - - - -
-
- - - Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString - - - "one two three four" -== -"one two three four" - - - - - Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString - - - "one two three four" -== -"one two three four" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 17 ) ).toString() == "one two three\nfour" - - - "one two three -four" -== -"one two three -four" - - - - - Text( testString, TextAttributes().setWidth( 16 ) ).toString() == "one two three\nfour" - - - "one two three -four" -== -"one two three -four" - - - - - Text( testString, TextAttributes().setWidth( 14 ) ).toString() == "one two three\nfour" - - - "one two three -four" -== -"one two three -four" - - - - - Text( testString, TextAttributes().setWidth( 13 ) ).toString() == "one two three\nfour" - - - "one two three -four" -== -"one two three -four" - - - - - Text( testString, TextAttributes().setWidth( 12 ) ).toString() == "one two\nthree four" - - - "one two -three four" -== -"one two -three four" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" - - - "one two -three -four" -== -"one two -three -four" - - - - - Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" - - - "one two -three -four" -== -"one two -three -four" - - - - - Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" - - - "one two -three -four" -== -"one two -three -four" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" - - - "one -two -three -four" -== -"one -two -three -four" - - - - - Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one\ntwo\nthree\nfour" - - - "one -two -three -four" -== -"one -two -three -four" - - - -
- -
-
-
- - - Text( "abcdef", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef" - - - "abc- -def" -== -"abc- -def" - - - - - Text( "abcdefg", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndefg" - - - "abc- -defg" -== -"abc- -defg" - - - - - Text( "abcdefgh", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef-\ngh" - - - "abc- -def- -gh" -== -"abc- -def- -gh" - - - - - Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one\ntwo\nthr-\nee\nfour" - - - "one -two -thr- -ee -four" -== -"one -two -thr- -ee -four" - - - - - Text( testString, TextAttributes().setWidth( 3 ) ).toString() == "one\ntwo\nth-\nree\nfo-\nur" - - - "one -two -th- -ree -fo- -ur" -== -"one -two -th- -ree -fo- -ur" - - - -
- -
-
-
- - - text.size() == 4 - - - 4 == 4 - - - - - text[0] == "one" - - - "one" == "one" - - - - - text[1] == "two" - - - "two" == "two" - - - - - text[2] == "three" - - - "three" == "three" - - - - - text[3] == "four" - - - "four" == "four" - - - -
- -
-
-
- - - text.toString() == " one two\n three\n four" - - - " one two - three - four" -== -" one two - three - four" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString - - - "one two -three four" -== -"one two -three four" - - - - - Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString - - - "one two -three four" -== -"one two -three four" - - - - - Text( testString, TextAttributes().setWidth( 10 ) ).toString() == testString - - - "one two -three four" -== -"one two -three four" - - - -
- -
-
-
- - - Text( "abcdef\n", TextAttributes().setWidth( 10 ) ).toString() == "abcdef" - - - "abcdef" == "abcdef" - - - - - Text( "abcdef", TextAttributes().setWidth( 6 ) ).toString() == "abcdef" - - - "abcdef" == "abcdef" - - - - - Text( "abcdef\n", TextAttributes().setWidth( 6 ) ).toString() == "abcdef" - - - "abcdef" == "abcdef" - - - - - Text( "abcdef\n", TextAttributes().setWidth( 5 ) ).toString() == "abcd-\nef" - - - "abcd- -ef" -== -"abcd- -ef" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" - - - "one two -three -four" -== -"one two -three -four" - - - - - Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" - - - "one two -three -four" -== -"one two -three -four" - - - - - Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" - - - "one two -three -four" -== -"one two -three -four" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" - - - "one -two -three -four" -== -"one -two -three -four" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString - - - "one,two(three) <here>" -== -"one,two(three) <here>" - - - - - Text( testString, TextAttributes().setWidth( 24 ) ).toString() == testString - - - "one,two(three) <here>" -== -"one,two(three) <here>" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 11 ) ).toString() == "one,two\n(three)\n<here>" - - - "one,two -(three) -<here>" -== -"one,two -(three) -<here>" - - - -
- -
-
-
- - - Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one,\ntwo\n(thre-\ne)\n<here>" - - - "one, -two -(thre- -e) -<here>" -== -"one, -two -(thre- -e) -<here>" - - - - - Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one,\ntwo\n(thr-\nee)\n<her-\ne>" - - - "one, -two -(thr- -ee) -<her- -e>" -== -"one, -two -(thr- -ee) -<her- -e>" - - - - - Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one,\ntwo\n(th-\nree)\n<he-\nre>" - - - "one, -two -(th- -ree) -<he- -re>" -== -"one, -two -(th- -ree) -<he- -re>" - - - -
- -
- -
- - - - t.toString(), EndsWith( "... message truncated due to excessive size" ) - - - "******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -******************************************************************************- -************************ -******************************************************************************- -... message truncated due to excessive size" ends with: "... message truncated due to excessive size" - - - - - - - - - - - testStringForMatching(), Contains( "string" ) && Contains( "abc" ) && Contains( "substring" ) && Contains( "contains" ) - - - "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" ) - - - - - - - - testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) - - - "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" ) - - - - - testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) - - - "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" ) - - - - - - - - testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) - - - "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" ) - - - - - - - - testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) - - - "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" ) - - - - - - - - testStringForMatching(), !Contains( "different" ) - - - "this string contains 'abc' as a substring" not contains: "different" - - - - - - - - testStringForMatching(), !Contains( "substring" ) - - - "this string contains 'abc' as a substring" not contains: "substring" - - - - - - - - thisThrows(), "expected exception" - - - thisThrows(), "expected exception" - - - - - thisThrows(), "should fail" - - - expected exception - - - - - - - This one ran - - - - - - custom exception - - - - - - - thisFunctionNotImplemented( 7 ) - - - thisFunctionNotImplemented( 7 ) - - - - - - - - True - - - true - - - - - !False - - - true - - - - - !False - - - !false - - - - - - - - 0x == o - - - 3221225472 (0x) == {?} - - - - - - - - data.int_seven > 7 - - - 7 > 7 - - - - - data.int_seven < 7 - - - 7 < 7 - - - - - data.int_seven > 8 - - - 7 > 8 - - - - - data.int_seven < 6 - - - 7 < 6 - - - - - data.int_seven < 0 - - - 7 < 0 - - - - - data.int_seven < -1 - - - 7 < -1 - - - - - data.int_seven >= 8 - - - 7 >= 8 - - - - - data.int_seven <= 6 - - - 7 <= 6 - - - - - data.float_nine_point_one < 9 - - - 9.1f < 9 - - - - - data.float_nine_point_one > 10 - - - 9.1f > 10 - - - - - data.float_nine_point_one > 9.2 - - - 9.1f > 9.2 - - - - - data.str_hello > "hello" - - - "hello" > "hello" - - - - - data.str_hello < "hello" - - - "hello" < "hello" - - - - - data.str_hello > "hellp" - - - "hello" > "hellp" - - - - - data.str_hello > "z" - - - "hello" > "z" - - - - - data.str_hello < "hellm" - - - "hello" < "hellm" - - - - - data.str_hello < "a" - - - "hello" < "a" - - - - - data.str_hello >= "z" - - - "hello" >= "z" - - - - - data.str_hello <= "a" - - - "hello" <= "a" - - - - - - - - data.int_seven < 8 - - - 7 < 8 - - - - - data.int_seven > 6 - - - 7 > 6 - - - - - data.int_seven > 0 - - - 7 > 0 - - - - - data.int_seven > -1 - - - 7 > -1 - - - - - data.int_seven >= 7 - - - 7 >= 7 - - - - - data.int_seven >= 6 - - - 7 >= 6 - - - - - data.int_seven <= 7 - - - 7 <= 7 - - - - - data.int_seven <= 8 - - - 7 <= 8 - - - - - data.float_nine_point_one > 9 - - - 9.1f > 9 - - - - - data.float_nine_point_one < 10 - - - 9.1f < 10 - - - - - data.float_nine_point_one < 9.2 - - - 9.1f < 9.2 - - - - - data.str_hello <= "hello" - - - "hello" <= "hello" - - - - - data.str_hello >= "hello" - - - "hello" >= "hello" - - - - - data.str_hello < "hellp" - - - "hello" < "hellp" - - - - - data.str_hello < "zebra" - - - "hello" < "zebra" - - - - - data.str_hello > "hellm" - - - "hello" > "hellm" - - - - - data.str_hello > "a" - - - "hello" > "a" - - - - - -
- - Message from section one - - -
-
- - Message from section two - - -
- -
- -
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches(tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == false - - - false == false - - - - - parseTestSpec( "*a" ).matches( tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == false - - - false == false - - - - - parseTestSpec( "a*" ).matches( tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == true - - - true == true - - - - - parseTestSpec( "*a*" ).matches( tcA ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == false - - - false == false - - - - - spec.matches( tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == false - - - false == false - - - - - spec.matches( tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == true - - - true == true - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == false - - - false == false - - - - - spec.matches( tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == true - - - true == true - - - - - spec.matches( tcB ) == true - - - true == true - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == true - - - true == true - - - - - spec.matches( tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == false - - - false == false - - - - - spec.matches( tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == false - - - false == false - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == false - - - false == false - - - - - spec.matches( tcD ) == false - - - false == false - - - -
-
- - - spec.hasFilters() == true - - - true == true - - - - - spec.matches( tcA ) == false - - - false == false - - - - - spec.matches( tcB ) == false - - - false == false - - - - - spec.matches( tcC ) == false - - - false == false - - - - - spec.matches( tcD ) == true - - - true == true - - - -
- -
- - - - (std::pair<int, int>( 1, 2 )) == aNicePair - - - std::pair( 1, 2 ) == std::pair( 1, 2 ) - - - - - - - - p == 0 - - - NULL == 0 - - - - - p == pNULL - - - NULL == NULL - - - - - p != 0 - - - 0x != 0 - - - - - cp != 0 - - - 0x != 0 - - - - - cpc != 0 - - - 0x != 0 - - - - - returnsNull() == 0 - - - {null string} == 0 - - - - - returnsConstNull() == 0 - - - {null string} == 0 - - - - - 0 != p - - - 0 != 0x - - - - - - - actual address of p: 0x - - - toString(p): 0x - - - - -
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.shouldDebugBreak == false - - - false == false - - - - - config.abortAfter == -1 - - - -1 == -1 - - - - - config.noThrow == false - - - false == false - - - - - config.reporterNames.empty() - - - true - - - -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false - - - false == false - - - - - cfg.testSpec().matches( fakeTestCase( "test1" ) ) - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false - - - false == false - - - - - cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false - - - false == false - - - - - cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames[0] == "console" - - - "console" == "console" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames[0] == "xml" - - - "xml" == "xml" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames.size() == 2 - - - 2 == 2 - - - - - config.reporterNames[0] == "xml" - - - "xml" == "xml" - - - - - config.reporterNames[1] == "junit" - - - "junit" == "junit" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.reporterNames[0] == "junit" - - - "junit" == "junit" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.shouldDebugBreak == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.shouldDebugBreak - - - true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.abortAfter == 1 - - - 1 == 1 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.abortAfter == 2 - - - 2 == 2 - - - -
- -
-
-
- - - parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) - - - "Value after -x or --abortAfter must be greater than zero -- while parsing: (-x, --abortx <no. failures>)" contains: "greater than zero" - - - -
- -
-
-
- - - parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) - - - "Unable to convert oops to destination type -- while parsing: (-x, --abortx <no. failures>)" contains: "-x" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.noThrow == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.noThrow == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.outputFilename == "filename.ext" - - - "filename.ext" == "filename.ext" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.outputFilename == "filename.ext" - - - "filename.ext" == "filename.ext" - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.abortAfter == 1 - - - 1 == 1 - - - - - config.shouldDebugBreak - - - true - - - - - config.noThrow == true - - - true == true - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::Auto - - - 0 == 0 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::Auto - - - 0 == 0 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::Yes - - - 1 == 1 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ) - - - parseIntoConfig( argv, config ) - - - - - config.useColour == UseColour::No - - - 2 == 2 - - - -
- -
-
-
- - - parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) - - - parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) - - - -
- -
- -
- - - current counter 0 - - - i := 0 - - - - i < 10 - - - 0 < 10 - - - - current counter 1 - - - i := 1 - - - - i < 10 - - - 1 < 10 - - - - current counter 2 - - - i := 2 - - - - i < 10 - - - 2 < 10 - - - - current counter 3 - - - i := 3 - - - - i < 10 - - - 3 < 10 - - - - current counter 4 - - - i := 4 - - - - i < 10 - - - 4 < 10 - - - - current counter 5 - - - i := 5 - - - - i < 10 - - - 5 < 10 - - - - current counter 6 - - - i := 6 - - - - i < 10 - - - 6 < 10 - - - - current counter 7 - - - i := 7 - - - - i < 10 - - - 7 < 10 - - - - current counter 8 - - - i := 8 - - - - i < 10 - - - 8 < 10 - - - - current counter 9 - - - i := 9 - - - - i < 10 - - - 9 < 10 - - - - current counter 10 - - - i := 10 - - - - i < 10 - - - 10 < 10 - - - - - - - - - - - -
- - - before == 0 - - - 0 == 0 - - -
-
- - - after > before - - - 1 > 0 - - - -
- -
- -
- -
- -
-
-
- - - itDoesThis() - - - true - - -
- - - itDoesThat() - - - true - - - -
- -
- -
- -
- -
- -
-
-
- -
- -
- -
- -
- -
- - - v.size() == 0 - - - 0 == 0 - - -
-
- - - v.size() == 10 - - - 10 == 10 - - - - - v.capacity() >= 10 - - - 10 >= 10 - - -
-
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 10 - - - 10 >= 10 - - - -
- -
- -
- -
- -
-
- - - v.size() == 0 - - - 0 == 0 - - -
-
- - - v.capacity() >= 10 - - - 10 >= 10 - - - - - v.size() == 0 - - - 0 == 0 - - - -
- -
- -
- -
- - - -A string sent directly to stdout - - -A string sent directly to stderr - - - - - - - d == Approx( 1.23 ) - - - 1.23 == Approx( 1.23 ) - - - - - d != Approx( 1.22 ) - - - 1.23 != Approx( 1.22 ) - - - - - d != Approx( 1.24 ) - - - 1.23 != Approx( 1.24 ) - - - - - Approx( d ) == 1.23 - - - Approx( 1.23 ) == 1.23 - - - - - Approx( d ) != 1.22 - - - Approx( 1.23 ) != 1.22 - - - - - Approx( d ) != 1.24 - - - Approx( 1.23 ) != 1.24 - - - - - -
- -
-
- -
- - -Message from section one -Message from section two - - -
- - - - testStringForMatching(), StartsWith( "string" ) - - - "this string contains 'abc' as a substring" starts with: "string" - - - - - - - - testStringForMatching(), Contains( "string" ) - - - "this string contains 'abc' as a substring" contains: "string" - - - - - testStringForMatching(), Contains( "abc" ) - - - "this string contains 'abc' as a substring" contains: "abc" - - - - - testStringForMatching(), StartsWith( "this" ) - - - "this string contains 'abc' as a substring" starts with: "this" - - - - - testStringForMatching(), EndsWith( "substring" ) - - - "this string contains 'abc' as a substring" ends with: "substring" - - - - - - - -hello -hello - - - - - - - s1 == s2 - - - "if ($b == 10) { - $a = 20; -}" -== -"if ($b == 10) { - $a = 20; -} -" - - - - - -
- - - what, Contains( "[@zzz]" ) - - - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "[@zzz]" - - - - - what, Contains( "file" ) - - - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "file" - - - - - what, Contains( "2" ) - - - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "2" - - - - - what, Contains( "10" ) - - - "error: tag alias, "[@zzz]" already registered. - First seen at file:2 - Redefined at file:10" contains: "10" - - - -
-
- - - registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - - - registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - - - registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) - - - - - registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) - - - registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) - - - -
- -
- - - - - - - 0x == bit30and31 - - - 3221225472 (0x) == 3221225472 - - - - - - - - Text( "hi there" ).toString() == "hi there" - - - "hi there" == "hi there" - - - - - Text( "hi there", narrow ).toString() == "hi\nthere" - - - "hi -there" -== -"hi -there" - - - - - - - - 1 == 2 - - - 1 == 2 - - - - - - - - - - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s1.isSuccessfullyCompleted() - - - true - - - - - testCase.isComplete() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isSuccessfullyCompleted() - - - true - - - -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s1.isComplete() - - - true - - - - - s1.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isSuccessfullyCompleted() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isComplete() - - - true - - - - - testCase.isSuccessfullyCompleted() - - - true - - - -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s1.isComplete() - - - true - - - - - s1.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - - - - ctx.completedCycle() - - - true - - - - - testCase.isSuccessfullyCompleted() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - s2.isOpen() - - - true - - - - - ctx.completedCycle() - - - true - - - - - testCase.isComplete() - - - true - - - - - testCase.isSuccessfullyCompleted() - - - true - - - -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s2.isOpen() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - s2b.isOpen() - - - true - - - - - ctx.completedCycle() == false - - - false == false - - -
- - - ctx.completedCycle() - - - true - - - - - s2b.isSuccessfullyCompleted() - - - true - - - - - testCase2.isComplete() == false - - - false == false - - - - - testCase2.isSuccessfullyCompleted() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s2.isOpen() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() == false - - - false == false - - - - - s2b.isOpen() - - - true - - - - - ctx.completedCycle() == false - - - false == false - - -
- - - ctx.completedCycle() - - - true - - - - - s2b.isComplete() - - - true - - - - - s2b.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase2.isSuccessfullyCompleted() == false - - - false == false - - - - - testCase3.isOpen() - - - true - - - - - s1c.isOpen() == false - - - false == false - - - - - s2c.isOpen() == false - - - false == false - - - - - testCase3.isSuccessfullyCompleted() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - s2.isOpen() - - - true - - - - - s2.isComplete() - - - true - - - - - s1.isComplete() == false - - - false == false - - - - - s1.isComplete() - - - true - - - - - testCase.isComplete() == false - - - false == false - - - - - testCase.isComplete() - - - true - - - -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - g1.isOpen() - - - true - - - - - g1.index() == 0 - - - 0 == 0 - - - - - g1.isComplete() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - -
- - - s1.isComplete() == false - - - false == false - - - - - testCase.isSuccessfullyCompleted() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() - - - true - - - - - g1b.isOpen() - - - true - - - - - g1b.index() == 1 - - - 1 == 1 - - - - - s1.isComplete() == false - - - false == false - - - - - s1b.isComplete() - - - true - - - - - g1b.isComplete() - - - true - - - - - testCase2.isComplete() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - g1.isOpen() - - - true - - - - - g1.index() == 0 - - - 0 == 0 - - - - - g1.isComplete() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - -
- - - s2.isOpen() - - - true - - - - - s2.isComplete() - - - true - - - - - s1.isComplete() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() - - - true - - - - - g1b.isOpen() - - - true - - - - - g1b.index() == 1 - - - 1 == 1 - - - - - s2b.isOpen() - - - true - - - - - s2b.isComplete() - - - true - - - - - g1b.isComplete() - - - true - - - - - s1b.isComplete() - - - true - - - - - testCase2.isComplete() - - - true - - - -
- -
- -
- - - testCase.isOpen() - - - true - - - - - s1.isOpen() - - - true - - -
- - - g1.isOpen() - - - true - - - - - g1.index() == 0 - - - 0 == 0 - - - - - g1.isComplete() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - -
- - - s2.isOpen() - - - true - - - - - s2.isComplete() - - - true - - - - - s2.isSuccessfullyCompleted() == false - - - false == false - - - - - s1.isComplete() == false - - - false == false - - - - - testCase.isComplete() == false - - - false == false - - -
- - - testCase2.isOpen() - - - true - - - - - s1b.isOpen() - - - true - - - - - g1b.isOpen() - - - true - - - - - g1b.index() == 0 - - - 0 == 0 - - - - - s2b.isOpen() == false - - - false == false - - - - - g1b.isComplete() == false - - - false == false - - - - - s1b.isComplete() == false - - - false == false - - - - - testCase2.isComplete() == false - - - false == false - - - - - testCase3.isOpen() - - - true - - - - - s1c.isOpen() - - - true - - - - - g1c.isOpen() - - - true - - - - - g1c.index() == 1 - - - 1 == 1 - - - - - s2c.isOpen() - - - true - - - - - s2c.isComplete() - - - true - - - - - g1c.isComplete() - - - true - - - - - s1c.isComplete() - - - true - - - - - testCase3.isComplete() - - - true - - - -
- -
- -
- -
- - - 3.14 - - - - - - - d == approx( 1.23 ) - - - 1.23 == Approx( 1.23 ) - - - - - d == approx( 1.22 ) - - - 1.23 == Approx( 1.22 ) - - - - - d == approx( 1.24 ) - - - 1.23 == Approx( 1.24 ) - - - - - d != approx( 1.25 ) - - - 1.23 != Approx( 1.25 ) - - - - - approx( d ) == 1.23 - - - Approx( 1.23 ) == 1.23 - - - - - approx( d ) == 1.22 - - - Approx( 1.23 ) == 1.22 - - - - - approx( d ) == 1.24 - - - Approx( 1.23 ) == 1.24 - - - - - approx( d ) != 1.25 - - - Approx( 1.23 ) != 1.25 - - - - - -
- -
- -
- -
- - - v, VectorContains( 1 ) - - - { 1, 2, 3 } Contains: 1 - - - - - v, VectorContains( 2 ) - - - { 1, 2, 3 } Contains: 2 - - - -
-
- - - v, Contains( v2 ) - - - { 1, 2, 3 } Contains: { 1, 2 } - - - - - v, Contains( v2 ) - - - { 1, 2, 3 } Contains: { 1, 2, 3 } - - - - - v, Contains( empty) - - - { 1, 2, 3 } Contains: { } - - - - - empty, Contains( empty) - - - { } Contains: { } - - - -
-
- - - v, Equals( v ) - - - { 1, 2, 3 } Equals: { 1, 2, 3 } - - - - - empty, Equals( empty ) - - - { } Equals: { } - - - - - v, Equals( v2 ) - - - { 1, 2, 3 } Equals: { 1, 2, 3 } - - - -
- -
- -
- - - v, VectorContains( -1 ) - - - { 1, 2, 3 } Contains: -1 - - - - - empty, VectorContains( 1 ) - - - { } Contains: 1 - - - -
-
- - - empty, Contains( v) - - - { } Contains: { 1, 2, 3 } - - - - - v, Contains( v2 ) - - - { 1, 2, 3 } Contains: { 1, 2, 4 } - - - -
-
- - - v, Equals( v2 ) - - - { 1, 2, 3 } Equals: { 1, 2 } - - - - - v2, Equals( v ) - - - { 1, 2 } Equals: { 1, 2, 3 } - - - - - empty, Equals( v ) - - - { } Equals: { 1, 2, 3 } - - - - - v, Equals( empty ) - - - { 1, 2, 3 } Equals: { } - - - -
- -
- - - - thisThrows(), std::domain_error - - - thisThrows(), std::domain_error - - - - - thisDoesntThrow() - - - thisDoesntThrow() - - - - - thisThrows() - - - thisThrows() - - - - - - - unexpected exception - - - - - - - thisThrows() == 0 - - - thisThrows() == 0 - - - expected exception - - - - - - - - thisThrows() == 0 - - - thisThrows() == 0 - - - expected exception - - - - - - - - thisThrows() == 0 - - - thisThrows() == 0 - - - expected exception - - - - - -
- - unexpected exception - - -
- -
- - - - - - Uncomment the code in this test to check that it gives a sensible compiler error - - - - - - Uncomment the code in this test to check that it gives a sensible compiler error - - - - - - - - - - - - - - - - -
- - - encode( "normal string" ) == "normal string" - - - "normal string" == "normal string" - - - -
-
- - - encode( "" ) == "" - - - "" == "" - - - -
-
- - - encode( "smith & jones" ) == "smith &amp; jones" - - - "smith &amp; jones" == "smith &amp; jones" - - - -
-
- - - encode( "smith < jones" ) == "smith &lt; jones" - - - "smith &lt; jones" == "smith &lt; jones" - - - -
-
- - - encode( "smith > jones" ) == "smith > jones" - - - "smith > jones" == "smith > jones" - - - - - encode( "smith ]]> jones" ) == "smith ]]&gt; jones" - - - "smith ]]&gt; jones" -== -"smith ]]&gt; jones" - - - -
-
- - - encode( stringWithQuotes ) == stringWithQuotes - - - "don't "quote" me on that" -== -"don't "quote" me on that" - - - - - encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that" - - - "don't &quot;quote&quot; me on that" -== -"don't &quot;quote&quot; me on that" - - - -
-
- - - encode( "[\x01]" ) == "[\\x01]" - - - "[\x01]" == "[\x01]" - - - -
-
- - - encode( "[\x7F]" ) == "[\\x7F]" - - - "[\x7F]" == "[\x7F]" - - - -
- -
- - - - x == 0 - - - 0 == 0 - - - - - - - - obj.prop != 0 - - - 0x != 0 - - - - - - - - flag - - - true - - - - - testCheckedElse( true ) - - - true - - - - - - - - flag - - - false - - - - - testCheckedElse( false ) - - - false - - - - - - - - flag - - - true - - - - - testCheckedIf( true ) - - - true - - - - - - - - flag - - - false - - - - - testCheckedIf( false ) - - - false - - - - - - - - unsigned_char_var == 1 - - - 1 == 1 - - - - - unsigned_short_var == 1 - - - 1 == 1 - - - - - unsigned_int_var == 1 - - - 1 == 1 - - - - - unsigned_long_var == 1 - - - 1 == 1 - - - - - - - - long_var == unsigned_char_var - - - 1 == 1 - - - - - long_var == unsigned_short_var - - - 1 == 1 - - - - - long_var == unsigned_int_var - - - 1 == 1 - - - - - long_var == unsigned_long_var - - - 1 == 1 - - - - - -
-
- -
- -
-
-
- -
- -
-
- -
- -
- - - - -spanner - - - - Previous info should not be seen - - - - - - - -
- - - b > a - - - 0 > 1 - - - -
- -
- - - Testing if fib[0] (1) is even - - - - ( fib[i] % 2 ) == 0 - - - 1 == 0 - - - - Testing if fib[1] (1) is even - - - - ( fib[i] % 2 ) == 0 - - - 1 == 0 - - - - Testing if fib[2] (2) is even - - - - ( fib[i] % 2 ) == 0 - - - 0 == 0 - - - - Testing if fib[3] (3) is even - - - - ( fib[i] % 2 ) == 0 - - - 1 == 0 - - - - Testing if fib[4] (5) is even - - - - ( fib[i] % 2 ) == 0 - - - 1 == 0 - - - - Testing if fib[5] (8) is even - - - - ( fib[i] % 2 ) == 0 - - - 0 == 0 - - - - Testing if fib[6] (13) is even - - - - ( fib[i] % 2 ) == 0 - - - 1 == 0 - - - - Testing if fib[7] (21) is even - - - - ( fib[i] % 2 ) == 0 - - - 1 == 0 - - - - - -
-
- - - a == b - - - 1 == 2 - - - -
- -
-
-
- - - a != b - - - 1 != 2 - - - -
- -
-
-
- - - a < b - - - 1 < 2 - - - -
- -
- -
- -
- - - a != b - - - 1 != 2 - - - - - b != a - - - 2 != 1 - - -
- - - a != b - - - 1 != 2 - - - -
- -
- -
- - - - s == "7" - - - "7" == "7" - - - - - - - - - - - makeString( false ) != static_cast<char*>(0) - - - "valid string" != {null string} - - - - - makeString( true ) == static_cast<char*>(0) - - - {null string} == {null string} - - - - - - - - Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" - - - "{ { 42, "Arthur" }, { "Ford", 24 } }" -== -"{ { 42, "Arthur" }, { "Ford", 24 } }" - - - - - - - - p == 0 - - - NULL == 0 - - - - - -
- - - a != b - - - 1 != 2 - - - - - b != a - - - 2 != 1 - - - -
-
- - - a != b - - - 1 != 2 - - - -
- -
- -
- - - replaceInPlace( letters, "b", "z" ) - - - true - - - - - letters == "azcdefcg" - - - "azcdefcg" == "azcdefcg" - - - -
-
- - - replaceInPlace( letters, "c", "z" ) - - - true - - - - - letters == "abzdefzg" - - - "abzdefzg" == "abzdefzg" - - - -
-
- - - replaceInPlace( letters, "a", "z" ) - - - true - - - - - letters == "zbcdefcg" - - - "zbcdefcg" == "zbcdefcg" - - - -
-
- - - replaceInPlace( letters, "g", "z" ) - - - true - - - - - letters == "abcdefcz" - - - "abcdefcz" == "abcdefcz" - - - -
-
- - - replaceInPlace( letters, letters, "replaced" ) - - - true - - - - - letters == "replaced" - - - "replaced" == "replaced" - - - -
-
- - - !replaceInPlace( letters, "x", "z" ) - - - !false - - - - - letters == letters - - - "abcdefcg" == "abcdefcg" - - - -
-
- - - replaceInPlace( s, "'", "|'" ) - - - true - - - - - s == "didn|'t" - - - "didn|'t" == "didn|'t" - - - -
- -
- - - - - - 3 - - - - false - - - false - - - - - - - hi - - - i := 7 - - - - false - - - false - - - - - - - - Catch::toString(value) == "{ 34, \"xyzzy\" }" - - - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - - - - - - - - Catch::toString( value ) == "{ 34, \"xyzzy\" }" - - - "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }" - - - - - - - - Catch::toString( pr ) == "{ { \"green\", 55 } }" - - - "{ { "green", 55 } }" -== -"{ { "green", 55 } }" - - - - - - - - std::string( "first" ) == "second" - - - "first" == "second" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - - - - result == "\"wide load\"" - - - ""wide load"" == ""wide load"" - - - - - - - - Catch::toString( item ) == "StringMaker<has_maker>" - - - "StringMaker<has_maker>" -== -"StringMaker<has_maker>" - - - - - - - - Catch::toString( item ) == "toString( has_maker_and_toString )" - - - "toString( has_maker_and_toString )" -== -"toString( has_maker_and_toString )" - - - - - - - - Catch::toString( item ) == "toString( has_toString )" - - - "toString( has_toString )" -== -"toString( has_toString )" - - - - - - - - Catch::toString( v ) == "{ StringMaker<has_maker> }" - - - "{ StringMaker<has_maker> }" -== -"{ StringMaker<has_maker> }" - - - - - - - - Catch::toString(e0) == "E2{0}" - - - "E2{0}" == "E2{0}" - - - - - Catch::toString(e1) == "E2{1}" - - - "E2{1}" == "E2{1}" - - - - - - - - Catch::toString(e0) == "0" - - - "0" == "0" - - - - - Catch::toString(e1) == "1" - - - "1" == "1" - - - - - - - - Catch::toString(vv) == "{ }" - - - "{ }" == "{ }" - - - - - Catch::toString(vv) == "{ 42 }" - - - "{ 42 }" == "{ 42 }" - - - - - Catch::toString(vv) == "{ 42, 250 }" - - - "{ 42, 250 }" == "{ 42, 250 }" - - - - - - - - Catch::toString(vv) == "{ }" - - - "{ }" == "{ }" - - - - - Catch::toString(vv) == "{ \"hello\" }" - - - "{ "hello" }" == "{ "hello" }" - - - - - Catch::toString(vv) == "{ \"hello\", \"world\" }" - - - "{ "hello", "world" }" -== -"{ "hello", "world" }" - - - - - - - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 10 - - - 10 == 10 - - - - - v.capacity() >= 10 - - - 10 >= 10 - - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 0 - - - 0 == 0 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.capacity() == 0 - - - 0 == 0 - - - -
- -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 10 - - - 10 >= 10 - - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - -
- - - v.size() == 5 - - - 5 == 5 - - - - - v.capacity() >= 5 - - - 5 >= 5 - - - -
- -
- -
- -
-
- -
- -
- -
- -
diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ClassTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ClassTests.cpp deleted file mode 100644 index a470784..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ClassTests.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Created by Phil on 09/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -namespace -{ - class TestClass - { - std::string s; - - public: - TestClass() - : s( "hello" ) - {} - - void succeedingCase() - { - REQUIRE( s == "hello" ); - } - void failingCase() - { - REQUIRE( s == "world" ); - } - }; -} - - -METHOD_AS_TEST_CASE( TestClass::succeedingCase, "A METHOD_AS_TEST_CASE based test run that succeeds", "[class]" ) -METHOD_AS_TEST_CASE( TestClass::failingCase, "A METHOD_AS_TEST_CASE based test run that fails", "[.][class][failing]" ) - - -struct Fixture -{ - Fixture() : m_a( 1 ) {} - - int m_a; -}; - -TEST_CASE_METHOD( Fixture, "A TEST_CASE_METHOD based test run that succeeds", "[class]" ) -{ - REQUIRE( m_a == 1 ); -} - -// We should be able to write our tests within a different namespace -namespace Inner -{ - TEST_CASE_METHOD( Fixture, "A TEST_CASE_METHOD based test run that fails", "[.][class][failing]" ) - { - REQUIRE( m_a == 2 ); - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/CmdLineTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/CmdLineTests.cpp deleted file mode 100644 index 83b79fd..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/CmdLineTests.cpp +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Created by Phil on 13/5/2013. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" -#include "internal/catch_test_spec_parser.hpp" - -#ifdef __clang__ -# pragma clang diagnostic ignored "-Wc++98-compat" -#endif - -inline Catch::TestCase fakeTestCase( const char* name, const char* desc = "" ){ return Catch::makeTestCase( CATCH_NULL, "", name, desc, CATCH_INTERNAL_LINEINFO ); } - -TEST_CASE( "Parse test names and tags", "" ) { - - using Catch::parseTestSpec; - using Catch::TestSpec; - - Catch::TestCase tcA = fakeTestCase( "a", "" ); - Catch::TestCase tcB = fakeTestCase( "b", "[one][x]" ); - Catch::TestCase tcC = fakeTestCase( "longer name with spaces", "[two][three][.][x]" ); - Catch::TestCase tcD = fakeTestCase( "zlonger name with spacesz", "" ); - - SECTION( "Empty test spec should have no filters", "" ) { - TestSpec spec; - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - } - - SECTION( "Test spec from empty string should have no filters", "" ) { - TestSpec spec = parseTestSpec( "" ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches(tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - } - - SECTION( "Test spec from just a comma should have no filters", "" ) { - TestSpec spec = parseTestSpec( "," ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - } - - SECTION( "Test spec from name should have one filter", "" ) { - TestSpec spec = parseTestSpec( "b" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == true ); - } - - SECTION( "Test spec from quoted name should have one filter", "" ) { - TestSpec spec = parseTestSpec( "\"b\"" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == true ); - } - - SECTION( "Test spec from name should have one filter", "" ) { - TestSpec spec = parseTestSpec( "b" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == false ); - } - - SECTION( "Wildcard at the start", "" ) { - TestSpec spec = parseTestSpec( "*spaces" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == false ); - CHECK( parseTestSpec( "*a" ).matches( tcA ) == true ); - } - SECTION( "Wildcard at the end", "" ) { - TestSpec spec = parseTestSpec( "long*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == false ); - CHECK( parseTestSpec( "a*" ).matches( tcA ) == true ); - } - SECTION( "Wildcard at both ends", "" ) { - TestSpec spec = parseTestSpec( "*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == true ); - CHECK( parseTestSpec( "*a*" ).matches( tcA ) == true ); - } - SECTION( "Redundant wildcard at the start", "" ) { - TestSpec spec = parseTestSpec( "*a" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == false ); - } - SECTION( "Redundant wildcard at the end", "" ) { - TestSpec spec = parseTestSpec( "a*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == false ); - } - SECTION( "Redundant wildcard at both ends", "" ) { - TestSpec spec = parseTestSpec( "*a*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == false ); - } - SECTION( "Wildcard at both ends, redundant at start", "" ) { - TestSpec spec = parseTestSpec( "*longer*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == true ); - } - SECTION( "Just wildcard", "" ) { - TestSpec spec = parseTestSpec( "*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == true ); - } - - SECTION( "Single tag", "" ) { - TestSpec spec = parseTestSpec( "[one]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == false ); - } - SECTION( "Single tag, two matches", "" ) { - TestSpec spec = parseTestSpec( "[x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == true ); - } - SECTION( "Two tags", "" ) { - TestSpec spec = parseTestSpec( "[two][x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - } - SECTION( "Two tags, spare separated", "" ) { - TestSpec spec = parseTestSpec( "[two] [x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - } - SECTION( "Wildcarded name and tag", "" ) { - TestSpec spec = parseTestSpec( "*name*[x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == false ); - } - SECTION( "Single tag exclusion", "" ) { - TestSpec spec = parseTestSpec( "~[one]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - } - SECTION( "One tag exclusion and one tag inclusion", "" ) { - TestSpec spec = parseTestSpec( "~[two][x]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == false ); - } - SECTION( "One tag exclusion and one wldcarded name inclusion", "" ) { - TestSpec spec = parseTestSpec( "~[two]*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == false ); - CHECK( spec.matches( tcD ) == true ); - } - SECTION( "One tag exclusion, using exclude:, and one wldcarded name inclusion", "" ) { - TestSpec spec = parseTestSpec( "exclude:[two]*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == false ); - CHECK( spec.matches( tcD ) == true ); - } - SECTION( "name exclusion", "" ) { - TestSpec spec = parseTestSpec( "~b" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == true ); - } - SECTION( "wildcarded name exclusion", "" ) { - TestSpec spec = parseTestSpec( "~*name*" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == false ); - CHECK( spec.matches( tcD ) == false ); - } - SECTION( "wildcarded name exclusion with tag inclusion", "" ) { - TestSpec spec = parseTestSpec( "~*name*,[three]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == false ); - } - SECTION( "wildcarded name exclusion, using exclude:, with tag inclusion", "" ) { - TestSpec spec = parseTestSpec( "exclude:*name*,[three]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == true ); - CHECK( spec.matches( tcB ) == true ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == false ); - } - SECTION( "two wildcarded names", "" ) { - TestSpec spec = parseTestSpec( "\"longer*\"\"*spaces\"" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == true ); - CHECK( spec.matches( tcD ) == false ); - } - SECTION( "empty tag", "" ) { - TestSpec spec = parseTestSpec( "[]" ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == false ); - CHECK( spec.matches( tcD ) == false ); - } - SECTION( "empty quoted name", "" ) { - TestSpec spec = parseTestSpec( "\"\"" ); - CHECK( spec.hasFilters() == false ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == false ); - CHECK( spec.matches( tcD ) == false ); - } - SECTION( "quoted string followed by tag exclusion", "" ) { - TestSpec spec = parseTestSpec( "\"*name*\"~[.]" ); - CHECK( spec.hasFilters() == true ); - CHECK( spec.matches( tcA ) == false ); - CHECK( spec.matches( tcB ) == false ); - CHECK( spec.matches( tcC ) == false ); - CHECK( spec.matches( tcD ) == true ); - } - -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/CompilationTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/CompilationTests.cpp deleted file mode 100644 index 635c62c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/CompilationTests.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Created by Martin on 17/02/2017. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - - -// This is a minimal example for an issue we have found in 1.7.0 -struct foo { - int i; -}; - -template -bool operator==(const T& val, foo f){ - return val == f.i; -} - -TEST_CASE("#809") { - foo f; f.i = 42; - REQUIRE(42 == f); -} - -// ------------------------------------------------------------------ -// REQUIRE_THROWS_AS was changed to catch exceptions by const& -// using type traits. This means that this should compile cleanly - -// Provides indirection to prevent unreachable-code warnings -void throws_int(bool b) { - if (b) { - throw 1; - } -} - -TEST_CASE("#542") { - CHECK_THROWS_AS(throws_int(true), int); - CHECK_THROWS_AS(throws_int(true), int&); - CHECK_THROWS_AS(throws_int(true), const int); - CHECK_THROWS_AS(throws_int(true), const int&); -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ConditionTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ConditionTests.cpp deleted file mode 100644 index 2eb99ba..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ConditionTests.cpp +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Created by Phil on 08/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifdef __clang__ -# pragma clang diagnostic ignored "-Wpadded" -# pragma clang diagnostic ignored "-Wc++98-compat" -#endif - -#include "catch.hpp" - -#include -#include - -struct TestData { - TestData() - : int_seven( 7 ), - str_hello( "hello" ), - float_nine_point_one( 9.1f ), - double_pi( 3.1415926535 ) - {} - - int int_seven; - std::string str_hello; - float float_nine_point_one; - double double_pi; -}; - - -struct TestDef { - TestDef& operator + ( const std::string& ) { - return *this; - } - TestDef& operator[]( const std::string& ) { - return *this; - } - -}; - -// The "failing" tests all use the CHECK macro, which continues if the specific test fails. -// This allows us to see all results, even if an earlier check fails - -// Equality tests -TEST_CASE( "Equality checks that should succeed", "" ) -{ - - TestDef td; - td + "hello" + "hello"; - - TestData data; - - REQUIRE( data.int_seven == 7 ); - REQUIRE( data.float_nine_point_one == Approx( 9.1f ) ); - REQUIRE( data.double_pi == Approx( 3.1415926535 ) ); - REQUIRE( data.str_hello == "hello" ); - REQUIRE( "hello" == data.str_hello ); - REQUIRE( data.str_hello.size() == 5 ); - - double x = 1.1 + 0.1 + 0.1; - REQUIRE( x == Approx( 1.3 ) ); -} - -TEST_CASE( "Equality checks that should fail", "[.][failing][!mayfail]" ) -{ - TestData data; - - CHECK( data.int_seven == 6 ); - CHECK( data.int_seven == 8 ); - CHECK( data.int_seven == 0 ); - CHECK( data.float_nine_point_one == Approx( 9.11f ) ); - CHECK( data.float_nine_point_one == Approx( 9.0f ) ); - CHECK( data.float_nine_point_one == Approx( 1 ) ); - CHECK( data.float_nine_point_one == Approx( 0 ) ); - CHECK( data.double_pi == Approx( 3.1415 ) ); - CHECK( data.str_hello == "goodbye" ); - CHECK( data.str_hello == "hell" ); - CHECK( data.str_hello == "hello1" ); - CHECK( data.str_hello.size() == 6 ); - - double x = 1.1 + 0.1 + 0.1; - CHECK( x == Approx( 1.301 ) ); -} - -TEST_CASE( "Inequality checks that should succeed", "" ) -{ - TestData data; - - REQUIRE( data.int_seven != 6 ); - REQUIRE( data.int_seven != 8 ); - REQUIRE( data.float_nine_point_one != Approx( 9.11f ) ); - REQUIRE( data.float_nine_point_one != Approx( 9.0f ) ); - REQUIRE( data.float_nine_point_one != Approx( 1 ) ); - REQUIRE( data.float_nine_point_one != Approx( 0 ) ); - REQUIRE( data.double_pi != Approx( 3.1415 ) ); - REQUIRE( data.str_hello != "goodbye" ); - REQUIRE( data.str_hello != "hell" ); - REQUIRE( data.str_hello != "hello1" ); - REQUIRE( data.str_hello.size() != 6 ); -} - -TEST_CASE( "Inequality checks that should fail", "[.][failing][!shouldfail]" ) -{ - TestData data; - - CHECK( data.int_seven != 7 ); - CHECK( data.float_nine_point_one != Approx( 9.1f ) ); - CHECK( data.double_pi != Approx( 3.1415926535 ) ); - CHECK( data.str_hello != "hello" ); - CHECK( data.str_hello.size() != 5 ); -} - -// Ordering comparison tests -TEST_CASE( "Ordering comparison checks that should succeed", "" ) -{ - TestData data; - - REQUIRE( data.int_seven < 8 ); - REQUIRE( data.int_seven > 6 ); - REQUIRE( data.int_seven > 0 ); - REQUIRE( data.int_seven > -1 ); - - REQUIRE( data.int_seven >= 7 ); - REQUIRE( data.int_seven >= 6 ); - REQUIRE( data.int_seven <= 7 ); - REQUIRE( data.int_seven <= 8 ); - - REQUIRE( data.float_nine_point_one > 9 ); - REQUIRE( data.float_nine_point_one < 10 ); - REQUIRE( data.float_nine_point_one < 9.2 ); - - REQUIRE( data.str_hello <= "hello" ); - REQUIRE( data.str_hello >= "hello" ); - - REQUIRE( data.str_hello < "hellp" ); - REQUIRE( data.str_hello < "zebra" ); - REQUIRE( data.str_hello > "hellm" ); - REQUIRE( data.str_hello > "a" ); -} - -TEST_CASE( "Ordering comparison checks that should fail", "[.][failing]" ) -{ - TestData data; - - CHECK( data.int_seven > 7 ); - CHECK( data.int_seven < 7 ); - CHECK( data.int_seven > 8 ); - CHECK( data.int_seven < 6 ); - CHECK( data.int_seven < 0 ); - CHECK( data.int_seven < -1 ); - - CHECK( data.int_seven >= 8 ); - CHECK( data.int_seven <= 6 ); - - CHECK( data.float_nine_point_one < 9 ); - CHECK( data.float_nine_point_one > 10 ); - CHECK( data.float_nine_point_one > 9.2 ); - - CHECK( data.str_hello > "hello" ); - CHECK( data.str_hello < "hello" ); - CHECK( data.str_hello > "hellp" ); - CHECK( data.str_hello > "z" ); - CHECK( data.str_hello < "hellm" ); - CHECK( data.str_hello < "a" ); - - CHECK( data.str_hello >= "z" ); - CHECK( data.str_hello <= "a" ); -} - -// Comparisons with int literals -TEST_CASE( "Comparisons with int literals don't warn when mixing signed/ unsigned", "" ) -{ - int i = 1; - unsigned int ui = 2; - long l = 3; - unsigned long ul = 4; - char c = 5; - unsigned char uc = 6; - - REQUIRE( i == 1 ); - REQUIRE( ui == 2 ); - REQUIRE( l == 3 ); - REQUIRE( ul == 4 ); - REQUIRE( c == 5 ); - REQUIRE( uc == 6 ); - - REQUIRE( 1 == i ); - REQUIRE( 2 == ui ); - REQUIRE( 3 == l ); - REQUIRE( 4 == ul ); - REQUIRE( 5 == c ); - REQUIRE( 6 == uc ); - - REQUIRE( (std::numeric_limits::max)() > ul ); -} - -// Disable warnings about sign conversions for the next two tests -// (as we are deliberately invoking them) -// - Currently only disabled for GCC/ LLVM. Should add VC++ too -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wsign-compare" -#pragma GCC diagnostic ignored "-Wsign-conversion" -#endif -#ifdef _MSC_VER -#pragma warning(disable:4389) // '==' : signed/unsigned mismatch -#endif - -TEST_CASE( "comparisons between int variables", "" ) -{ - long long_var = 1L; - unsigned char unsigned_char_var = 1; - unsigned short unsigned_short_var = 1; - unsigned int unsigned_int_var = 1; - unsigned long unsigned_long_var = 1L; - - REQUIRE( long_var == unsigned_char_var ); - REQUIRE( long_var == unsigned_short_var ); - REQUIRE( long_var == unsigned_int_var ); - REQUIRE( long_var == unsigned_long_var ); -} - -TEST_CASE( "comparisons between const int variables", "" ) -{ - const unsigned char unsigned_char_var = 1; - const unsigned short unsigned_short_var = 1; - const unsigned int unsigned_int_var = 1; - const unsigned long unsigned_long_var = 1L; - - REQUIRE( unsigned_char_var == 1 ); - REQUIRE( unsigned_short_var == 1 ); - REQUIRE( unsigned_int_var == 1 ); - REQUIRE( unsigned_long_var == 1 ); -} - -TEST_CASE( "Comparisons between unsigned ints and negative signed ints match c++ standard behaviour", "" ) -{ - CHECK( ( -1 > 2u ) ); - CHECK( -1 > 2u ); - - CHECK( ( 2u < -1 ) ); - CHECK( 2u < -1 ); - - const int minInt = (std::numeric_limits::min)(); - CHECK( ( minInt > 2u ) ); - CHECK( minInt > 2u ); -} - -TEST_CASE( "Comparisons between ints where one side is computed", "" ) -{ - CHECK( 54 == 6*9 ); -} - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -inline const char* returnsConstNull(){ return CATCH_NULL; } -inline char* returnsNull(){ return CATCH_NULL; } - -TEST_CASE( "Pointers can be compared to null", "" ) -{ - TestData* p = CATCH_NULL; - TestData* pNULL = CATCH_NULL; - - REQUIRE( p == CATCH_NULL ); - REQUIRE( p == pNULL ); - - TestData data; - p = &data; - - REQUIRE( p != CATCH_NULL ); - - const TestData* cp = p; - REQUIRE( cp != CATCH_NULL ); - - const TestData* const cpc = p; - REQUIRE( cpc != CATCH_NULL ); - - REQUIRE( returnsNull() == CATCH_NULL ); - REQUIRE( returnsConstNull() == CATCH_NULL ); - - REQUIRE( CATCH_NULL != p ); -} - -// Not (!) tests -// The problem with the ! operator is that it has right-to-left associativity. -// This means we can't isolate it when we decompose. The simple REQUIRE( !false ) form, therefore, -// cannot have the operand value extracted. The test will work correctly, and the situation -// is detected and a warning issued. -// An alternative form of the macros (CHECK_FALSE and REQUIRE_FALSE) can be used instead to capture -// the operand value. -TEST_CASE( "'Not' checks that should succeed", "" ) -{ - bool falseValue = false; - - REQUIRE( false == false ); - REQUIRE( true == true ); - REQUIRE( !false ); - REQUIRE_FALSE( false ); - - REQUIRE( !falseValue ); - REQUIRE_FALSE( falseValue ); - - REQUIRE( !(1 == 2) ); - REQUIRE_FALSE( 1 == 2 ); -} - -TEST_CASE( "'Not' checks that should fail", "[.][failing]" ) -{ - bool trueValue = true; - - CHECK( false != false ); - CHECK( true != true ); - CHECK( !true ); - CHECK_FALSE( true ); - - CHECK( !trueValue ); - CHECK_FALSE( trueValue ); - - CHECK( !(1 == 1) ); - CHECK_FALSE( 1 == 1 ); -} - diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/EnumToString.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/EnumToString.cpp deleted file mode 100644 index f591520..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/EnumToString.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "catch.hpp" - -/* - TODO: maybe ought to check that user-provided specialisations of - Catch::toString also do the right thing -*/ - -// Enum without user-provided stream operator -enum Enum1 { Enum1Value0, Enum1Value1 }; - -TEST_CASE( "toString(enum)", "[toString][enum]" ) { - Enum1 e0 = Enum1Value0; - CHECK( Catch::toString(e0) == "0" ); - Enum1 e1 = Enum1Value1; - CHECK( Catch::toString(e1) == "1" ); -} - -// Enum with user-provided stream operator -enum Enum2 { Enum2Value0, Enum2Value1 }; - -inline std::ostream& operator<<( std::ostream& os, Enum2 v ) { - return os << "E2{" << static_cast(v) << "}"; -} - -TEST_CASE( "toString(enum w/operator<<)", "[toString][enum]" ) { - Enum2 e0 = Enum2Value0; - CHECK( Catch::toString(e0) == "E2{0}" ); - Enum2 e1 = Enum2Value1; - CHECK( Catch::toString(e1) == "E2{1}" ); -} - -#if defined(CATCH_CPP11_OR_GREATER) -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wc++98-compat" -#endif - -// Enum class without user-provided stream operator -enum class EnumClass1 { EnumClass1Value0, EnumClass1Value1 }; - -TEST_CASE( "toString(enum class)", "[toString][enum][enumClass][c++11][.]" ) { - EnumClass1 e0 = EnumClass1::EnumClass1Value0; - CHECK( Catch::toString(e0) == "0" ); - EnumClass1 e1 = EnumClass1::EnumClass1Value1; - CHECK( Catch::toString(e1) == "1" ); -} - -// Enum class with user-provided stream operator -enum class EnumClass2 : short { EnumClass2Value0, EnumClass2Value1 }; - -inline std::ostream& operator<<( std::ostream& os, EnumClass2 e2 ) { - switch( static_cast( e2 ) ) { - case static_cast( EnumClass2::EnumClass2Value0 ): - return os << "E2/V0"; - case static_cast( EnumClass2::EnumClass2Value1 ): - return os << "E2/V1"; - default: - return os << "Unknown enum value " << static_cast( e2 ); - } -} - -TEST_CASE( "toString(enum class w/operator<<)", "[toString][enum][enumClass][c++11][.]" ) { - EnumClass2 e0 = EnumClass2::EnumClass2Value0; - CHECK( Catch::toString(e0) == "E2/V0" ); - EnumClass2 e1 = EnumClass2::EnumClass2Value1; - CHECK( Catch::toString(e1) == "E2/V1" ); - - EnumClass2 e3 = static_cast(10); - CHECK( Catch::toString(e3) == "Unknown enum value 10" ); -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif -#endif // CATCH_CPP11_OR_GREATER - diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ExceptionTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ExceptionTests.cpp deleted file mode 100644 index de8f6fa..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ExceptionTests.cpp +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Created by Phil on 09/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -#include -#include - -namespace -{ - inline int thisThrows() - { - if( Catch::alwaysTrue() ) - throw std::domain_error( "expected exception" ); - return 1; - } - - int thisDoesntThrow() - { - return 0; - } -} - -TEST_CASE( "When checked exceptions are thrown they can be expected or unexpected", "[!throws]" ) -{ - REQUIRE_THROWS_AS( thisThrows(), std::domain_error ); - REQUIRE_NOTHROW( thisDoesntThrow() ); - REQUIRE_THROWS( thisThrows() ); -} - -TEST_CASE( "Expected exceptions that don't throw or unexpected exceptions fail the test", "[.][failing][!throws]" ) -{ - CHECK_THROWS_AS( thisThrows(), std::string ); - CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error ); - CHECK_NOTHROW( thisThrows() ); -} - -TEST_CASE( "When unchecked exceptions are thrown directly they are always failures", "[.][failing][!throws]" ) -{ - if( Catch::alwaysTrue() ) - throw std::domain_error( "unexpected exception" ); -} - -TEST_CASE( "An unchecked exception reports the line of the last assertion", "[.][failing][!throws]" ) -{ - CHECK( 1 == 1 ); - if( Catch::alwaysTrue() ) - throw std::domain_error( "unexpected exception" ); -} - -TEST_CASE( "When unchecked exceptions are thrown from sections they are always failures", "[.][failing][!throws]" ) -{ - SECTION( "section name", "" ) - { - if( Catch::alwaysTrue() ) - throw std::domain_error( "unexpected exception" ); - } -} - -TEST_CASE( "When unchecked exceptions are thrown from functions they are always failures", "[.][failing][!throws]" ) -{ - CHECK( thisThrows() == 0 ); -} - -TEST_CASE( "When unchecked exceptions are thrown during a REQUIRE the test should abort fail", "[.][failing][!throws]" ) -{ - REQUIRE( thisThrows() == 0 ); - FAIL( "This should never happen" ); -} - -TEST_CASE( "When unchecked exceptions are thrown during a CHECK the test should continue", "[.][failing][!throws]" ) -{ - try { - CHECK(thisThrows() == 0); - } - catch(...) { - FAIL( "This should never happen" ); - } -} - -TEST_CASE( "When unchecked exceptions are thrown, but caught, they do not affect the test", "[!throws]" ) -{ - try - { - throw std::domain_error( "unexpected exception" ); - } - catch(...) - { - } -} - -class CustomException -{ -public: - CustomException( const std::string& msg ) - : m_msg( msg ) - {} - - std::string getMessage() const - { - return m_msg; - } - -private: - std::string m_msg; -}; - -class CustomStdException : public std::exception -{ -public: - CustomStdException( const std::string& msg ) - : m_msg( msg ) - {} - ~CustomStdException() CATCH_NOEXCEPT {} - - std::string getMessage() const - { - return m_msg; - } - -private: - std::string m_msg; -}; - - -CATCH_TRANSLATE_EXCEPTION( CustomException& ex ) -{ - return ex.getMessage(); -} - -CATCH_TRANSLATE_EXCEPTION( CustomStdException& ex ) -{ - return ex.getMessage(); -} - -CATCH_TRANSLATE_EXCEPTION( double& ex ) -{ - return Catch::toString( ex ); -} - -TEST_CASE("Non-std exceptions can be translated", "[.][failing][!throws]" ) -{ - if( Catch::alwaysTrue() ) - throw CustomException( "custom exception" ); -} - -TEST_CASE("Custom std-exceptions can be custom translated", "[.][failing][!throws]" ) -{ - if( Catch::alwaysTrue() ) - throw CustomException( "custom std exception" ); -} - -inline void throwCustom() { - if( Catch::alwaysTrue() ) - throw CustomException( "custom exception - not std" ); -} - -TEST_CASE( "Custom exceptions can be translated when testing for nothrow", "[.][failing][!throws]" ) -{ - REQUIRE_NOTHROW( throwCustom() ); -} - -TEST_CASE( "Custom exceptions can be translated when testing for throwing as something else", "[.][failing][!throws]" ) -{ - REQUIRE_THROWS_AS( throwCustom(), std::exception ); -} - - -TEST_CASE( "Unexpected exceptions can be translated", "[.][failing][!throws]" ) -{ - if( Catch::alwaysTrue() ) - throw double( 3.14 ); -} - -inline int thisFunctionNotImplemented( int ) { - CATCH_NOT_IMPLEMENTED; -} - -TEST_CASE( "NotImplemented exception", "[!throws]" ) -{ - REQUIRE_THROWS( thisFunctionNotImplemented( 7 ) ); -} - -TEST_CASE( "Exception messages can be tested for", "[!throws]" ) { - using namespace Catch::Matchers; - SECTION( "exact match" ) - REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ); - SECTION( "different case" ) - REQUIRE_THROWS_WITH( thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) ); - SECTION( "wildcarded" ) { - REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) ); - REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) ); - REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) ); - REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) ); - } -} - -TEST_CASE( "Mismatching exception messages failing the test", "[.][failing][!throws]" ) { - REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ); - REQUIRE_THROWS_WITH( thisThrows(), "should fail" ); - REQUIRE_THROWS_WITH( thisThrows(), "expected exception" ); -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/GeneratorTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/GeneratorTests.cpp deleted file mode 100644 index af08b1d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/GeneratorTests.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Created by Phil on 28/01/2011. - * Copyright 2011 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -// This define means we have to prefix all the CATCH macros with CATCH_ -// We're using it here to test it out -#define CATCH_CONFIG_PREFIX_ALL -#include "catch.hpp" - -inline int multiply( int a, int b ) -{ - return a*b; -} - -CATCH_TEST_CASE( "Generators over two ranges", "[generators]" ) -{ - using namespace Catch::Generators; - - int i = CATCH_GENERATE( between( 1, 5 ).then( values( 15, 20, 21 ).then( 36 ) ) ); - int j = CATCH_GENERATE( between( 100, 107 ) ); - - CATCH_REQUIRE( multiply( i, 2 ) == i*2 ); - CATCH_REQUIRE( multiply( j, 2 ) == j*2 ); -} - -struct IntPair { int first, second; }; - -CATCH_TEST_CASE( "Generator over a range of pairs", "[generators]" ) -{ - using namespace Catch::Generators; - - IntPair p[] = { { 0, 1 }, { 2, 3 } }; - - IntPair* i = CATCH_GENERATE( between( p, &p[1] ) ); - - CATCH_REQUIRE( i->first == i->second-1 ); - -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MatchersTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MatchersTests.cpp deleted file mode 100644 index 7bcd3cf..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MatchersTests.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Created by Phil on 21/02/2017. - * Copyright 2017 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -inline const char* testStringForMatching() -{ - return "this string contains 'abc' as a substring"; -} -inline const char* testStringForMatching2() -{ - return "some completely different text that contains one common word"; -} - -using namespace Catch::Matchers; - -TEST_CASE("String matchers", "[matchers]" ) -{ - REQUIRE_THAT( testStringForMatching(), Contains( "string" ) ); - CHECK_THAT( testStringForMatching(), Contains( "abc" ) ); - - CHECK_THAT( testStringForMatching(), StartsWith( "this" ) ); - CHECK_THAT( testStringForMatching(), EndsWith( "substring" ) ); -} - -TEST_CASE("Contains string matcher", "[.][failing][matchers]") -{ - CHECK_THAT( testStringForMatching(), Contains( "not there" ) ); -} - -TEST_CASE("StartsWith string matcher", "[.][failing][matchers]") -{ - CHECK_THAT( testStringForMatching(), StartsWith( "string" ) ); -} - -TEST_CASE("EndsWith string matcher", "[.][failing][matchers]") -{ - CHECK_THAT( testStringForMatching(), EndsWith( "this" ) ); -} - -TEST_CASE("Equals string matcher", "[.][failing][matchers]") -{ - CHECK_THAT( testStringForMatching(), Equals( "something else" ) ); -} - -TEST_CASE("AllOf matcher", "[matchers]") -{ - CHECK_THAT( testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) ) ); -} -TEST_CASE("AnyOf matcher", "[matchers]") -{ - CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) ) ); - CHECK_THAT( testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) ) ); -} - -TEST_CASE("Equals", "[matchers]") -{ - CHECK_THAT( testStringForMatching(), Equals( "this string contains 'abc' as a substring" ) ); -} - -TEST_CASE("Matchers can be (AllOf) composed with the && operator", "[matchers][operators][operator&&]") -{ - CHECK_THAT( testStringForMatching(), - Contains( "string" ) && - Contains( "abc" ) && - Contains( "substring" ) && - Contains( "contains" ) ); -} - -TEST_CASE("Matchers can be (AnyOf) composed with the || operator", "[matchers][operators][operator||]") -{ - CHECK_THAT( testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) ); - CHECK_THAT( testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" ) ); -} - -TEST_CASE("Matchers can be composed with both && and ||", "[matchers][operators][operator||][operator&&]") -{ - CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "substring" ) ); -} - -TEST_CASE("Matchers can be composed with both && and || - failing", "[matchers][operators][operator||][operator&&][.failing]") -{ - CHECK_THAT( testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) && Contains( "random" ) ); -} - -TEST_CASE("Matchers can be negated (Not) with the ! operator", "[matchers][operators][not]") -{ - CHECK_THAT( testStringForMatching(), !Contains( "different" ) ); -} - -TEST_CASE("Matchers can be negated (Not) with the ! operator - failing", "[matchers][operators][not][.failing]") -{ - CHECK_THAT( testStringForMatching(), !Contains( "substring" ) ); -} - -TEST_CASE( "Vector matchers", "[matchers][vector]" ) { - std::vector v; - v.push_back( 1 ); - v.push_back( 2 ); - v.push_back( 3 ); - - std::vector v2; - v2.push_back( 1 ); - v2.push_back( 2 ); - - std::vector empty; - - SECTION( "Contains (element)" ) { - CHECK_THAT( v, VectorContains( 1 ) ); - CHECK_THAT( v, VectorContains( 2 ) ); - } - SECTION( "Contains (vector)" ) { - CHECK_THAT( v, Contains( v2 ) ); - v2.push_back( 3 ); // now exactly matches - CHECK_THAT( v, Contains( v2 ) ); - - CHECK_THAT( v, Contains( empty) ); - CHECK_THAT( empty, Contains( empty) ); - } - - SECTION( "Equals" ) { - - // Same vector - CHECK_THAT( v, Equals( v ) ); - - CHECK_THAT( empty, Equals( empty ) ); - - // Different vector with same elements - v2.push_back( 3 ); - CHECK_THAT( v, Equals( v2 ) ); - } -} - -TEST_CASE( "Vector matchers that fail", "[matchers][vector][.][failing]" ) { - std::vector v; - v.push_back( 1 ); - v.push_back( 2 ); - v.push_back( 3 ); - - std::vector v2; - v2.push_back( 1 ); - v2.push_back( 2 ); - - std::vector empty; - - SECTION( "Contains (element)" ) { - CHECK_THAT( v, VectorContains( -1 ) ); - CHECK_THAT( empty, VectorContains( 1 ) ); - } - SECTION( "Contains (vector)" ) { - CHECK_THAT( empty, Contains( v) ); - v2.push_back( 4 ); - CHECK_THAT( v, Contains( v2 ) ); - } - - SECTION( "Equals" ) { - - CHECK_THAT( v, Equals( v2 ) ); - CHECK_THAT( v2, Equals( v ) ); - CHECK_THAT( empty, Equals( v ) ); - CHECK_THAT( v, Equals( empty ) ); - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MessageTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MessageTests.cpp deleted file mode 100644 index 87a85a8..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MessageTests.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Created by Phil on 09/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" -#include - -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wc++98-compat-pedantic" -#endif - -TEST_CASE( "INFO and WARN do not abort tests", "[messages][.]" ) -{ - INFO( "this is a " << "message" ); // This should output the message if a failure occurs - WARN( "this is a " << "warning" ); // This should always output the message but then continue -} -TEST_CASE( "SUCCEED counts as a test pass", "[messages]" ) -{ - SUCCEED( "this is a " << "success" ); -} - -TEST_CASE( "INFO gets logged on failure", "[failing][messages][.]" ) -{ - INFO( "this message should be logged" ); - INFO( "so should this" ); - int a = 2; - REQUIRE( a == 1 ); -} - -TEST_CASE( "INFO gets logged on failure, even if captured before successful assertions", "[failing][messages][.]" ) -{ - INFO( "this message may be logged later" ); - int a = 2; - CHECK( a == 2 ); - - INFO( "this message should be logged" ); - - CHECK( a == 1 ); - - INFO( "and this, but later" ); - - CHECK( a == 0 ); - - INFO( "but not this" ); - - CHECK( a == 2 ); -} - -TEST_CASE( "FAIL aborts the test", "[failing][messages][.]" ) -{ - FAIL( "This is a " << "failure" ); // This should output the message and abort -} - -#ifdef CATCH_CONFIG_VARIADIC_MACROS -TEST_CASE( "FAIL does not require an argument", "[failing][messages][.]" ) -{ - FAIL(); -} -TEST_CASE( "SUCCESS does not require an argument", "[messages][.]" ) -{ - SUCCEED(); -} -#endif - -TEST_CASE( "Output from all sections is reported", "[failing][messages][.]" ) -{ - SECTION( "one", "" ) - { - FAIL( "Message from section one" ); - } - - SECTION( "two", "" ) - { - FAIL( "Message from section two" ); - } -} - -TEST_CASE( "Standard output from all sections is reported", "[messages][.]" ) -{ - SECTION( "one", "" ) - { - std::cout << "Message from section one" << std::endl; - } - - SECTION( "two", "" ) - { - std::cout << "Message from section two" << std::endl; - } -} - -TEST_CASE( "SCOPED_INFO is reset for each loop", "[messages][failing][.]" ) -{ - for( int i=0; i<100; i++ ) - { - SCOPED_INFO( "current counter " << i ); - SCOPED_CAPTURE( i ); - REQUIRE( i < 10 ); - } -} - -TEST_CASE( "The NO_FAIL macro reports a failure but does not fail the test", "[messages]" ) -{ - CHECK_NOFAIL( 1 == 2 ); -} - -TEST_CASE( "just info", "[info][isolated info][messages]" ) -{ - INFO( "this should never be seen" ); -} -TEST_CASE( "just failure", "[fail][isolated info][.][messages]" ) -{ - FAIL( "Previous info should not be seen" ); -} - - -TEST_CASE( "sends information to INFO", "[.][failing]" ) -{ - INFO( "hi" ); - int i = 7; - CAPTURE( i ); - REQUIRE( false ); -} - -TEST_CASE( "Pointers can be converted to strings", "[messages][.]" ) -{ - int p; - WARN( "actual address of p: " << &p ); - WARN( "toString(p): " << Catch::toString( &p ) ); -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MiscTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MiscTests.cpp deleted file mode 100644 index 88a524f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/MiscTests.cpp +++ /dev/null @@ -1,395 +0,0 @@ -/* - * Created by Phil on 29/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -#ifdef __clang__ -# pragma clang diagnostic ignored "-Wc++98-compat" -# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" -#endif - -#include "../include/internal/catch_xmlwriter.hpp" - -#include - -TEST_CASE( "random SECTION tests", "[.][sections][failing]" ) -{ - int a = 1; - int b = 2; - - SECTION( "s1", "doesn't equal" ) - { - REQUIRE( a != b ); - REQUIRE( b != a ); - } - - SECTION( "s2", "not equal" ) - { - REQUIRE( a != b); - } -} - -TEST_CASE( "nested SECTION tests", "[.][sections][failing]" ) -{ - int a = 1; - int b = 2; - - SECTION( "s1", "doesn't equal" ) - { - REQUIRE( a != b ); - REQUIRE( b != a ); - - SECTION( "s2", "not equal" ) - { - REQUIRE( a != b); - } - } -} - -TEST_CASE( "more nested SECTION tests", "[sections][failing][.]" ) -{ - int a = 1; - int b = 2; - - SECTION( "s1", "doesn't equal" ) - { - SECTION( "s2", "equal" ) - { - REQUIRE( a == b ); - } - - SECTION( "s3", "not equal" ) - { - REQUIRE( a != b ); - } - SECTION( "s4", "less than" ) - { - REQUIRE( a < b ); - } - } -} - -TEST_CASE( "even more nested SECTION tests", "[sections]" ) -{ - SECTION( "c", "" ) - { - SECTION( "d (leaf)", "" ) - { - SUCCEED(""); // avoid failing due to no tests - } - - SECTION( "e (leaf)", "" ) - { - SUCCEED(""); // avoid failing due to no tests - } - } - - SECTION( "f (leaf)", "" ) - { - SUCCEED(""); // avoid failing due to no tests - } -} - -TEST_CASE( "looped SECTION tests", "[.][failing][sections]" ) -{ - int a = 1; - - for( int b = 0; b < 10; ++b ) - { - std::ostringstream oss; - oss << "b is currently: " << b; - SECTION( "s1", oss.str() ) - { - CHECK( b > a ); - } - } -} - -TEST_CASE( "looped tests", "[.][failing]" ) -{ - static const int fib[] = { 1, 1, 2, 3, 5, 8, 13, 21 }; - - for( size_t i=0; i < sizeof(fib)/sizeof(int); ++i ) - { - INFO( "Testing if fib[" << i << "] (" << fib[i] << ") is even" ); - CHECK( ( fib[i] % 2 ) == 0 ); - } -} - -TEST_CASE( "Sends stuff to stdout and stderr", "[.]" ) -{ - std::cout << "A string sent directly to stdout" << std::endl; - - std::cerr << "A string sent directly to stderr" << std::endl; -} - -inline const char* makeString( bool makeNull ) -{ - return makeNull ? CATCH_NULL : "valid string"; -} - -TEST_CASE( "null strings", "" ) -{ - REQUIRE( makeString( false ) != static_cast(CATCH_NULL)); - REQUIRE( makeString( true ) == static_cast(CATCH_NULL)); -} - - -inline bool testCheckedIf( bool flag ) -{ - CHECKED_IF( flag ) - return true; - else - return false; -} - -TEST_CASE( "checkedIf", "" ) -{ - REQUIRE( testCheckedIf( true ) ); -} - -TEST_CASE( "checkedIf, failing", "[failing][.]" ) -{ - REQUIRE( testCheckedIf( false ) ); -} - -inline bool testCheckedElse( bool flag ) -{ - CHECKED_ELSE( flag ) - return false; - - return true; -} - -TEST_CASE( "checkedElse", "" ) -{ - REQUIRE( testCheckedElse( true ) ); -} - -TEST_CASE( "checkedElse, failing", "[failing][.]" ) -{ - REQUIRE( testCheckedElse( false ) ); -} - -TEST_CASE( "xmlentitycheck", "" ) -{ - SECTION( "embedded xml", "it should be possible to embed xml characters, such as <, \" or &, or even whole documents within an attribute" ) - { - SUCCEED(""); // We need this here to stop it failing due to no tests - } - SECTION( "encoded chars", "these should all be encoded: &&&\"\"\"<<<&\"<<&\"" ) - { - SUCCEED(""); // We need this here to stop it failing due to no tests - } -} - -TEST_CASE( "send a single char to INFO", "[failing][.]" ) -{ - INFO(3); - REQUIRE(false); -} - -TEST_CASE( "atomic if", "[failing][0]") -{ - size_t x = 0; - - if( x ) - REQUIRE(x > 0); - else - REQUIRE(x == 0); -} - -inline unsigned int Factorial( unsigned int number ) -{ -// return number <= 1 ? number : Factorial(number-1)*number; - return number > 1 ? Factorial(number-1)*number : 1; -} - -TEST_CASE( "Factorials are computed", "[factorial]" ) { - REQUIRE( Factorial(0) == 1 ); - REQUIRE( Factorial(1) == 1 ); - REQUIRE( Factorial(2) == 2 ); - REQUIRE( Factorial(3) == 6 ); - REQUIRE( Factorial(10) == 3628800 ); -} - -TEST_CASE( "An empty test with no assertions", "[empty]" ) -{ -} - -TEST_CASE( "Nice descriptive name", "[tag1][tag2][tag3][.]" ) -{ - WARN( "This one ran" ); -} -TEST_CASE( "first tag", "[tag1]" ) -{ -} -TEST_CASE( "second tag", "[tag2]" ) -{ -} -// -//TEST_CASE( "spawn a new process", "[.]" ) -//{ -// // !TBD Work in progress -// char line[200]; -// FILE* output = popen("./CatchSelfTest ./failing/matchers/StartsWith", "r"); -// while ( fgets(line, 199, output) ) -// std::cout << line; -//} - -TEST_CASE( "vectors can be sized and resized", "[vector]" ) { - - std::vector v( 5 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 5 ); - - SECTION( "resizing bigger changes size and capacity", "" ) { - v.resize( 10 ); - - REQUIRE( v.size() == 10 ); - REQUIRE( v.capacity() >= 10 ); - } - SECTION( "resizing smaller changes size but not capacity", "" ) { - v.resize( 0 ); - - REQUIRE( v.size() == 0 ); - REQUIRE( v.capacity() >= 5 ); - - SECTION( "We can use the 'swap trick' to reset the capacity", "" ) { - std::vector empty; - empty.swap( v ); - - REQUIRE( v.capacity() == 0 ); - } - } - SECTION( "reserving bigger changes capacity but not size", "" ) { - v.reserve( 10 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 10 ); - } - SECTION( "reserving smaller does not change size or capacity", "" ) { - v.reserve( 0 ); - - REQUIRE( v.size() == 5 ); - REQUIRE( v.capacity() >= 5 ); - } -} - -// https://github.com/philsquared/Catch/issues/166 -TEST_CASE("A couple of nested sections followed by a failure", "[failing][.]") -{ - SECTION("Outer", "") - SECTION("Inner", "") - SUCCEED("that's not flying - that's failing in style"); - - FAIL("to infinity and beyond"); -} - -TEST_CASE("not allowed", "[!throws]") -{ - // This test case should not be included if you run with -e on the command line - SUCCEED( "" ); -} - -//TEST_CASE( "Is big endian" ) { -// CHECK( Catch::Detail::Endianness::which() == Catch::Detail::Endianness::Little ); -//} - -TEST_CASE( "Tabs and newlines show in output", "[.][whitespace][failing]" ) { - - // Based on issue #242 - std::string s1 = "if ($b == 10) {\n\t\t$a\t= 20;\n}"; - std::string s2 = "if ($b == 10) {\n\t$a = 20;\n}\n"; - CHECK( s1 == s2 ); -} - - -TEST_CASE( "toString on const wchar_t const pointer returns the string contents", "[toString]" ) { - const wchar_t * const s = L"wide load"; - std::string result = Catch::toString( s ); - CHECK( result == "\"wide load\"" ); -} - -TEST_CASE( "toString on const wchar_t pointer returns the string contents", "[toString]" ) { - const wchar_t * s = L"wide load"; - std::string result = Catch::toString( s ); - CHECK( result == "\"wide load\"" ); -} - -TEST_CASE( "toString on wchar_t const pointer returns the string contents", "[toString]" ) { - wchar_t * const s = const_cast( L"wide load" ); - std::string result = Catch::toString( s ); - CHECK( result == "\"wide load\"" ); -} - -TEST_CASE( "toString on wchar_t returns the string contents", "[toString]" ) { - wchar_t * s = const_cast( L"wide load" ); - std::string result = Catch::toString( s ); - CHECK( result == "\"wide load\"" ); -} - -inline std::string encode( std::string const& str, Catch::XmlEncode::ForWhat forWhat = Catch::XmlEncode::ForTextNodes ) { - std::ostringstream oss; - oss << Catch::XmlEncode( str, forWhat ); - return oss.str(); -} - -TEST_CASE( "XmlEncode" ) { - SECTION( "normal string" ) { - REQUIRE( encode( "normal string" ) == "normal string" ); - } - SECTION( "empty string" ) { - REQUIRE( encode( "" ) == "" ); - } - SECTION( "string with ampersand" ) { - REQUIRE( encode( "smith & jones" ) == "smith & jones" ); - } - SECTION( "string with less-than" ) { - REQUIRE( encode( "smith < jones" ) == "smith < jones" ); - } - SECTION( "string with greater-than" ) { - REQUIRE( encode( "smith > jones" ) == "smith > jones" ); - REQUIRE( encode( "smith ]]> jones" ) == "smith ]]> jones" ); - } - SECTION( "string with quotes" ) { - std::string stringWithQuotes = "don't \"quote\" me on that"; - REQUIRE( encode( stringWithQuotes ) == stringWithQuotes ); - REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't "quote" me on that" ); - } - SECTION( "string with control char (1)" ) { - REQUIRE( encode( "[\x01]" ) == "[\\x01]" ); - } - SECTION( "string with control char (x7F)" ) { - REQUIRE( encode( "[\x7F]" ) == "[\\x7F]" ); - } -} - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG -TEST_CASE( "long long", "[c++11][.]" ) { - long long l = std::numeric_limits::max(); - - REQUIRE( l == std::numeric_limits::max() ); -} -#endif - -//TEST_CASE( "Divide by Zero signal handler", "[.][sig]" ) { -// int i = 0; -// int x = 10/i; // This should cause the signal to fire -// CHECK( x == 0 ); -//} - -TEST_CASE( "This test 'should' fail but doesn't", "[.][failing][!shouldfail]" ) -{ - SUCCEED( "oops!" ); -} - -TEST_CASE( "# A test name that starts with a #" ) { - SUCCEED( "yay" ); -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/PartTrackerTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/PartTrackerTests.cpp deleted file mode 100644 index 45f4cf1..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/PartTrackerTests.cpp +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Created by Phil on 1/10/2015. - * Copyright 2015 Two Blue Cubes Ltd - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_test_case_tracker.hpp" - - -namespace Catch -{ - class LocalContext { - - public: - TrackerContext& operator()() const { - return TrackerContext::instance(); - } - }; - -} // namespace Catch - -inline Catch::TrackerContext& C_A_T_C_H_Context() { - return Catch::TrackerContext::instance(); -} - -// ------------------- - -#include "catch.hpp" - -using namespace Catch; - -//inline void testCase( Catch::LocalContext const& C_A_T_C_H_Context ) { -// -// REQUIRE( C_A_T_C_H_Context().i() == 42 ); -//} - -Catch::TestCaseTracking::NameAndLocation makeNAL( std::string const& name ) { - return Catch::TestCaseTracking::NameAndLocation( name, Catch::SourceLineInfo() ); -} - -TEST_CASE( "Tracker", "" ) { - - TrackerContext ctx; - ctx.startRun(); - ctx.startCycle(); - - - ITracker& testCase = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase.isOpen() ); - - ITracker& s1 = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1.isOpen() ); - - SECTION( "successfully close one section", "" ) { - s1.close(); - REQUIRE( s1.isSuccessfullyCompleted() ); - REQUIRE( testCase.isComplete() == false ); - - testCase.close(); - REQUIRE( ctx.completedCycle() ); - REQUIRE( testCase.isSuccessfullyCompleted() ); - } - - SECTION( "fail one section", "" ) { - s1.fail(); - REQUIRE( s1.isComplete() ); - REQUIRE( s1.isSuccessfullyCompleted() == false ); - REQUIRE( testCase.isComplete() == false ); - - testCase.close(); - REQUIRE( ctx.completedCycle() ); - REQUIRE( testCase.isSuccessfullyCompleted() == false ); - - SECTION( "re-enter after failed section", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1b.isOpen() == false ); - - testCase2.close(); - REQUIRE( ctx.completedCycle() ); - REQUIRE( testCase.isComplete() ); - REQUIRE( testCase.isSuccessfullyCompleted() ); - } - SECTION( "re-enter after failed section and find next section", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1b.isOpen() == false ); - - ITracker& s2 = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2.isOpen() ); - - s2.close(); - REQUIRE( ctx.completedCycle() ); - - testCase2.close(); - REQUIRE( testCase.isComplete() ); - REQUIRE( testCase.isSuccessfullyCompleted() ); - } - } - - SECTION( "successfully close one section, then find another", "" ) { - s1.close(); - - ITracker& s2 = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2.isOpen() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() == false ); - - SECTION( "Re-enter - skips S1 and enters S2", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1b.isOpen() == false ); - - ITracker& s2b = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2b.isOpen() ); - - REQUIRE( ctx.completedCycle() == false ); - - SECTION ("Successfully close S2") { - s2b.close(); - REQUIRE( ctx.completedCycle() ); - - REQUIRE( s2b.isSuccessfullyCompleted() ); - REQUIRE( testCase2.isComplete() == false ); - - testCase2.close(); - REQUIRE( testCase2.isSuccessfullyCompleted() ); - } - SECTION ("fail S2") { - s2b.fail(); - REQUIRE( ctx.completedCycle() ); - - REQUIRE( s2b.isComplete() ); - REQUIRE( s2b.isSuccessfullyCompleted() == false ); - - testCase2.close(); - REQUIRE( testCase2.isSuccessfullyCompleted() == false ); - - // Need a final cycle - ctx.startCycle(); - ITracker& testCase3 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase3.isOpen() ); - - ITracker& s1c = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1c.isOpen() == false ); - - ITracker& s2c = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2c.isOpen() == false ); - - testCase3.close(); - REQUIRE( testCase3.isSuccessfullyCompleted() ); - } - } - } - - SECTION( "open a nested section", "" ) { - ITracker& s2 = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2.isOpen() ); - - s2.close(); - REQUIRE( s2.isComplete() ); - REQUIRE( s1.isComplete() == false ); - - s1.close(); - REQUIRE( s1.isComplete() ); - REQUIRE( testCase.isComplete() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() ); - } - - SECTION( "start a generator", "" ) { - IndexTracker& g1 = IndexTracker::acquire( ctx, makeNAL( "G1" ), 2 ); - REQUIRE( g1.isOpen() ); - REQUIRE( g1.index() == 0 ); - - REQUIRE( g1.isComplete() == false ); - REQUIRE( s1.isComplete() == false ); - - SECTION( "close outer section" ) - { - s1.close(); - REQUIRE( s1.isComplete() == false ); - testCase.close(); - REQUIRE( testCase.isSuccessfullyCompleted() == false ); - - SECTION( "Re-enter for second generation", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1b.isOpen() ); - - - IndexTracker& g1b = IndexTracker::acquire( ctx, makeNAL( "G1" ), 2 ); - REQUIRE( g1b.isOpen() ); - REQUIRE( g1b.index() == 1 ); - - REQUIRE( s1.isComplete() == false ); - - s1b.close(); - REQUIRE( s1b.isComplete() ); - REQUIRE( g1b.isComplete() ); - testCase2.close(); - REQUIRE( testCase2.isComplete() ); - } - } - SECTION( "Start a new inner section", "" ) { - ITracker& s2 = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2.isOpen() ); - - s2.close(); - REQUIRE( s2.isComplete() ); - - s1.close(); - REQUIRE( s1.isComplete() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() == false ); - - SECTION( "Re-enter for second generation", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1b.isOpen() ); - - // generator - next value - IndexTracker& g1b = IndexTracker::acquire( ctx, makeNAL( "G1" ), 2 ); - REQUIRE( g1b.isOpen() ); - REQUIRE( g1b.index() == 1 ); - - // inner section again - ITracker& s2b = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2b.isOpen() ); - - s2b.close(); - REQUIRE( s2b.isComplete() ); - - s1b.close(); - REQUIRE( g1b.isComplete() ); - REQUIRE( s1b.isComplete() ); - - testCase2.close(); - REQUIRE( testCase2.isComplete() ); - } - } - - SECTION( "Fail an inner section", "" ) { - ITracker& s2 = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2.isOpen() ); - - s2.fail(); - REQUIRE( s2.isComplete() ); - REQUIRE( s2.isSuccessfullyCompleted() == false ); - - s1.close(); - REQUIRE( s1.isComplete() == false ); - - testCase.close(); - REQUIRE( testCase.isComplete() == false ); - - SECTION( "Re-enter for second generation", "" ) { - ctx.startCycle(); - ITracker& testCase2 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase2.isOpen() ); - - ITracker& s1b = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1b.isOpen() ); - - // generator - still same value - IndexTracker& g1b = IndexTracker::acquire( ctx, makeNAL( "G1" ), 2 ); - REQUIRE( g1b.isOpen() ); - REQUIRE( g1b.index() == 0 ); - - // inner section again - this time won't open - ITracker& s2b = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2b.isOpen() == false ); - - s1b.close(); - REQUIRE( g1b.isComplete() == false ); - REQUIRE( s1b.isComplete() == false ); - - testCase2.close(); - REQUIRE( testCase2.isComplete() == false ); - - // Another cycle - now should complete - ctx.startCycle(); - ITracker& testCase3 = SectionTracker::acquire( ctx, makeNAL( "Testcase" ) ); - REQUIRE( testCase3.isOpen() ); - - ITracker& s1c = SectionTracker::acquire( ctx, makeNAL( "S1" ) ); - REQUIRE( s1c.isOpen() ); - - // generator - now next value - IndexTracker& g1c = IndexTracker::acquire( ctx, makeNAL( "G1" ), 2 ); - REQUIRE( g1c.isOpen() ); - REQUIRE( g1c.index() == 1 ); - - // inner section - now should open again - ITracker& s2c = SectionTracker::acquire( ctx, makeNAL( "S2" ) ); - REQUIRE( s2c.isOpen() ); - - s2c.close(); - REQUIRE( s2c.isComplete() ); - - s1c.close(); - REQUIRE( g1c.isComplete() ); - REQUIRE( s1c.isComplete() ); - - testCase3.close(); - REQUIRE( testCase3.isComplete() ); - } - } - // !TBD" - // nested generator - // two sections within a generator - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp deleted file mode 100644 index 65377f3..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_common.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_common.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp deleted file mode 100644 index c28aa01..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_console_colour.hpp" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp deleted file mode 100644 index 04f4e07..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +++ /dev/null @@ -1,2 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_debugger.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp deleted file mode 100644 index f46dae4..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_interfaces_capture.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp deleted file mode 100644 index 46f80e8..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_interfaces_config.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp deleted file mode 100644 index f5ad487..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_interfaces_exception.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp deleted file mode 100644 index 2eda981..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "internal/catch_interfaces_generators.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp deleted file mode 100644 index b399d86..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_interfaces_registry_hub.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp deleted file mode 100644 index f3c7158..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_interfaces_reporter.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp deleted file mode 100644 index 800f32a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "internal/catch_interfaces_runner.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp deleted file mode 100644 index 0d6903c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_interfaces_testcase.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp deleted file mode 100644 index 40f4403..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_message.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_message.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp deleted file mode 100644 index a4ca37c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_option.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_option.hpp" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp deleted file mode 100644 index 90796ca..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_ptr.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_ptr.hpp" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp deleted file mode 100644 index a76d841..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_stream.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_stream.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp deleted file mode 100644 index a9222e4..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_streambuf.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp deleted file mode 100644 index bd67a8a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp +++ /dev/null @@ -1,2 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_test_case_tracker.hpp" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp deleted file mode 100644 index 9993b80..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp +++ /dev/null @@ -1,3 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_test_spec.hpp" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp deleted file mode 100644 index 169d2d7..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +++ /dev/null @@ -1,4 +0,0 @@ -// This file is only here to verify (to the extent possible) the self sufficiency of the header -#include "internal/catch_suppress_warnings.h" -#include "internal/catch_xmlwriter.hpp" -#include "internal/catch_reenable_warnings.h" diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TagAliasTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TagAliasTests.cpp deleted file mode 100644 index 002a93c..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TagAliasTests.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Created by Phil on 27/06/2014. - * Copyright 2014 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" -#include "internal/catch_tag_alias_registry.h" - -TEST_CASE( "Tag alias can be registered against tag patterns", "" ) { - - using namespace Catch::Matchers; - - Catch::TagAliasRegistry registry; - - registry.add( "[@zzz]", "[one][two]", Catch::SourceLineInfo( "file", 2 ) ); - - SECTION( "The same tag alias can only be registered once", "" ) { - - try { - registry.add( "[@zzz]", "[one][two]", Catch::SourceLineInfo( "file", 10 ) ); - FAIL( "expected exception" ); - } - catch( std::exception& ex ) { - std::string what = ex.what(); - CHECK_THAT( what, Contains( "[@zzz]" ) ); - CHECK_THAT( what, Contains( "file" ) ); - CHECK_THAT( what, Contains( "2" ) ); - CHECK_THAT( what, Contains( "10" ) ); - } - } - - SECTION( "Tag aliases must be of the form [@name]", "" ) { - CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) ); - CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) ); - CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) ); - CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) ); - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TestMain.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TestMain.cpp deleted file mode 100644 index e00966a..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TestMain.cpp +++ /dev/null @@ -1,494 +0,0 @@ -/* - * Created by Phil on 22/10/2010. - * Copyright 2010 Two Blue Cubes Ltd - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#define CATCH_CONFIG_MAIN -#include "catch.hpp" -#include "../include/reporters/catch_reporter_teamcity.hpp" -#include "../include/reporters/catch_reporter_tap.hpp" -#include "../include/reporters/catch_reporter_automake.hpp" - - -// Some example tag aliases -CATCH_REGISTER_TAG_ALIAS( "[@nhf]", "[failing]~[.]" ) -CATCH_REGISTER_TAG_ALIAS( "[@tricky]", "[tricky]~[.]" ) - - -#ifdef __clang__ -# pragma clang diagnostic ignored "-Wpadded" -# pragma clang diagnostic ignored "-Wweak-vtables" -# pragma clang diagnostic ignored "-Wc++98-compat" -#endif - - -template -void parseIntoConfig( const char * (&argv)[size], Catch::ConfigData& config ) { - Catch::Clara::CommandLine parser = Catch::makeCommandLineParser(); - parser.parseInto( Catch::Clara::argsToVector( size, argv ), config ); -} - -template -std::string parseIntoConfigAndReturnError( const char * (&argv)[size], Catch::ConfigData& config ) { - try { - parseIntoConfig( argv, config ); - FAIL( "expected exception" ); - } - catch( std::exception& ex ) { - return ex.what(); - } - return ""; -} - -inline Catch::TestCase fakeTestCase( const char* name, const char* desc = "" ){ return Catch::makeTestCase( CATCH_NULL, "", name, desc, CATCH_INTERNAL_LINEINFO ); } - -TEST_CASE( "Process can be configured on command line", "[config][command-line]" ) { - - using namespace Catch::Matchers; - - Catch::ConfigData config; - - SECTION( "default - no arguments", "" ) { - const char* argv[] = { "test" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - CHECK( config.shouldDebugBreak == false ); - CHECK( config.abortAfter == -1 ); - CHECK( config.noThrow == false ); - CHECK( config.reporterNames.empty() ); - } - - SECTION( "test lists", "" ) { - SECTION( "1 test", "Specify one test case using" ) { - const char* argv[] = { "test", "test1" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - Catch::Config cfg( config ); - REQUIRE( cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false ); - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) ); - } - SECTION( "Specify one test case exclusion using exclude:", "" ) { - const char* argv[] = { "test", "exclude:test1" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - Catch::Config cfg( config ); - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ); - REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) ); - } - - SECTION( "Specify one test case exclusion using ~", "" ) { - const char* argv[] = { "test", "~test1" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - Catch::Config cfg( config ); - REQUIRE( cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false ); - REQUIRE( cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) ) ); - } - - } - - SECTION( "reporter", "" ) { - SECTION( "-r/console", "" ) { - const char* argv[] = { "test", "-r", "console" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.reporterNames[0] == "console" ); - } - SECTION( "-r/xml", "" ) { - const char* argv[] = { "test", "-r", "xml" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.reporterNames[0] == "xml" ); - } - SECTION( "-r xml and junit", "" ) { - const char* argv[] = { "test", "-r", "xml", "-r", "junit" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.reporterNames.size() == 2 ); - REQUIRE( config.reporterNames[0] == "xml" ); - REQUIRE( config.reporterNames[1] == "junit" ); - } - SECTION( "--reporter/junit", "" ) { - const char* argv[] = { "test", "--reporter", "junit" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.reporterNames[0] == "junit" ); - } - } - - SECTION( "debugger", "" ) { - SECTION( "-b", "" ) { - const char* argv[] = { "test", "-b" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.shouldDebugBreak == true ); - } - SECTION( "--break", "" ) { - const char* argv[] = { "test", "--break" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.shouldDebugBreak ); - } - } - - SECTION( "abort", "" ) { - SECTION( "-a aborts after first failure", "" ) { - const char* argv[] = { "test", "-a" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.abortAfter == 1 ); - } - SECTION( "-x 2 aborts after two failures", "" ) { - const char* argv[] = { "test", "-x", "2" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.abortAfter == 2 ); - } - SECTION( "-x must be greater than zero", "" ) { - const char* argv[] = { "test", "-x", "0" }; - REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" ) ); - } - SECTION( "-x must be numeric", "" ) { - const char* argv[] = { "test", "-x", "oops" }; - REQUIRE_THAT( parseIntoConfigAndReturnError( argv, config ), Contains( "-x" ) ); - } - } - - SECTION( "nothrow", "" ) { - SECTION( "-e", "" ) { - const char* argv[] = { "test", "-e" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.noThrow == true ); - } - SECTION( "--nothrow", "" ) { - const char* argv[] = { "test", "--nothrow" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.noThrow == true ); - } - } - - SECTION( "output filename", "" ) { - SECTION( "-o filename", "" ) { - const char* argv[] = { "test", "-o", "filename.ext" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.outputFilename == "filename.ext" ); - } - SECTION( "--out", "" ) { - const char* argv[] = { "test", "--out", "filename.ext" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.outputFilename == "filename.ext" ); - } - } - - SECTION( "combinations", "" ) { - SECTION( "Single character flags can be combined", "" ) { - const char* argv[] = { "test", "-abe" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - CHECK( config.abortAfter == 1 ); - CHECK( config.shouldDebugBreak ); - CHECK( config.noThrow == true ); - } - } - - SECTION( "use-colour", "") { - - using Catch::UseColour; - - SECTION( "without option", "" ) { - const char* argv[] = { "test" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.useColour == UseColour::Auto ); - } - - SECTION( "auto", "" ) { - const char* argv[] = { "test", "--use-colour", "auto" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.useColour == UseColour::Auto ); - } - - SECTION( "yes", "" ) { - const char* argv[] = { "test", "--use-colour", "yes" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.useColour == UseColour::Yes ); - } - - SECTION( "no", "" ) { - const char* argv[] = { "test", "--use-colour", "no" }; - CHECK_NOTHROW( parseIntoConfig( argv, config ) ); - - REQUIRE( config.useColour == UseColour::No ); - } - - SECTION( "error", "" ) { - const char* argv[] = { "test", "--use-colour", "wrong" }; - REQUIRE_THROWS_WITH( parseIntoConfig( argv, config ), Contains( "colour mode must be one of" ) ); - } - } -} - - -TEST_CASE( "Long strings can be wrapped", "[wrap]" ) { - - using namespace Catch; - SECTION( "plain string", "" ) { - // guide: 123456789012345678 - std::string testString = "one two three four"; - - SECTION( "No wrapping", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString ); - CHECK( Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString ); - } - SECTION( "Wrapped once", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 17 ) ).toString() == "one two three\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 16 ) ).toString() == "one two three\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 14 ) ).toString() == "one two three\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 13 ) ).toString() == "one two three\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 12 ) ).toString() == "one two\nthree four" ); - } - SECTION( "Wrapped twice", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" ); - } - SECTION( "Wrapped three times", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one\ntwo\nthree\nfour" ); - } - SECTION( "Short wrap", "" ) { - CHECK( Text( "abcdef", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef" ); - CHECK( Text( "abcdefg", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndefg" ); - CHECK( Text( "abcdefgh", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef-\ngh" ); - - CHECK( Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one\ntwo\nthr-\nee\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 3 ) ).toString() == "one\ntwo\nth-\nree\nfo-\nur" ); - } - SECTION( "As container", "" ) { - Text text( testString, TextAttributes().setWidth( 6 ) ); - REQUIRE( text.size() == 4 ); - CHECK( text[0] == "one" ); - CHECK( text[1] == "two" ); - CHECK( text[2] == "three" ); - CHECK( text[3] == "four" ); - } - SECTION( "Indent first line differently", "" ) { - Text text( testString, TextAttributes() - .setWidth( 10 ) - .setIndent( 4 ) - .setInitialIndent( 1 ) ); - CHECK( text.toString() == " one two\n three\n four" ); - } - - } - - SECTION( "With newlines", "" ) { - - // guide: 1234567890123456789 - std::string testString = "one two\nthree four"; - - SECTION( "No wrapping" , "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString ); - CHECK( Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString ); - CHECK( Text( testString, TextAttributes().setWidth( 10 ) ).toString() == testString ); - } - SECTION( "Trailing newline" , "" ) { - CHECK( Text( "abcdef\n", TextAttributes().setWidth( 10 ) ).toString() == "abcdef" ); - CHECK( Text( "abcdef", TextAttributes().setWidth( 6 ) ).toString() == "abcdef" ); - CHECK( Text( "abcdef\n", TextAttributes().setWidth( 6 ) ).toString() == "abcdef" ); - CHECK( Text( "abcdef\n", TextAttributes().setWidth( 5 ) ).toString() == "abcd-\nef" ); - } - SECTION( "Wrapped once", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour" ); - CHECK( Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour" ); - } - SECTION( "Wrapped twice", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour" ); - } - } - - SECTION( "With wrap-before/ after characters", "" ) { - std::string testString = "one,two(three) "; - - SECTION( "No wrapping", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString ); - CHECK( Text( testString, TextAttributes().setWidth( 24 ) ).toString() == testString ); - } - SECTION( "Wrap before", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 11 ) ).toString() == "one,two\n(three)\n" ); - } - SECTION( "Wrap after", "" ) { - CHECK( Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one,\ntwo\n(thre-\ne)\n" ); - CHECK( Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one,\ntwo\n(thr-\nee)\n" ); - CHECK( Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one,\ntwo\n(th-\nree)\n" ); - } - } - -} - -using namespace Catch; - -class ColourString { -public: - - struct ColourIndex { - ColourIndex( Colour::Code _colour, std::size_t _fromIndex, std::size_t _toIndex ) - : colour( _colour ), - fromIndex( _fromIndex ), - toIndex( _toIndex ) - {} - - Colour::Code colour; - std::size_t fromIndex; - std::size_t toIndex; - }; - - ColourString( std::string const& _string ) - : string( _string ) - {} - ColourString( std::string const& _string, std::vector const& _colours ) - : string( _string ), colours( _colours ) - {} - - ColourString& addColour( Colour::Code colour, int _index ) { - colours.push_back( ColourIndex( colour, - resolveRelativeIndex( _index ), - resolveRelativeIndex( _index )+1 ) ); - return *this; - } - ColourString& addColour( Colour::Code colour, int _fromIndex, int _toIndex ) { - colours.push_back( ColourIndex( colour, - resolveRelativeIndex(_fromIndex), - resolveLastRelativeIndex( _toIndex ) ) ); - return *this; - } - - void writeToStream( std::ostream& _stream ) const { - std::size_t last = 0; - for( std::size_t i = 0; i < colours.size(); ++i ) { - ColourIndex const& index = colours[i]; - if( index.fromIndex > last ) - _stream << string.substr( last, index.fromIndex-last ); - { - Colour colourGuard( index.colour ); - _stream << string.substr( index.fromIndex, index.toIndex-index.fromIndex ); - } - last = index.toIndex; - } - if( last < string.size() ) - _stream << string.substr( last ); - } - friend std::ostream& operator << ( std::ostream& _stream, ColourString const& _colourString ) { - _colourString.writeToStream( _stream ); - return _stream; - } - -private: - - std::size_t resolveLastRelativeIndex( int _index ) { - std::size_t index = resolveRelativeIndex( _index ); - return index == 0 ? string.size() : index; - } - std::size_t resolveRelativeIndex( int _index ) { - return static_cast( _index >= 0 - ? _index - : static_cast( string.size() )+_index ); - } - std::string string; - std::vector colours; -}; - -TEST_CASE( "replaceInPlace", "" ) { - std::string letters = "abcdefcg"; - SECTION( "replace single char" ) { - CHECK( replaceInPlace( letters, "b", "z" ) ); - CHECK( letters == "azcdefcg" ); - } - SECTION( "replace two chars" ) { - CHECK( replaceInPlace( letters, "c", "z" ) ); - CHECK( letters == "abzdefzg" ); - } - SECTION( "replace first char" ) { - CHECK( replaceInPlace( letters, "a", "z" ) ); - CHECK( letters == "zbcdefcg" ); - } - SECTION( "replace last char" ) { - CHECK( replaceInPlace( letters, "g", "z" ) ); - CHECK( letters == "abcdefcz" ); - } - SECTION( "replace all chars" ) { - CHECK( replaceInPlace( letters, letters, "replaced" ) ); - CHECK( letters == "replaced" ); - } - SECTION( "replace no chars" ) { - CHECK_FALSE( replaceInPlace( letters, "x", "z" ) ); - CHECK( letters == letters ); - } - SECTION( "escape '" ) { - std::string s = "didn't"; - CHECK( replaceInPlace( s, "'", "|'" ) ); - CHECK( s == "didn|'t" ); - } -} - -// !TBD: This will be folded into Text class -TEST_CASE( "Strings can be rendered with colour", "[.colour]" ) { - - { - ColourString cs( "hello" ); - cs .addColour( Colour::Red, 0 ) - .addColour( Colour::Green, -1 ); - - Catch::cout() << cs << std::endl; - } - - { - ColourString cs( "hello" ); - cs .addColour( Colour::Blue, 1, -2 ); - - Catch::cout() << cs << std::endl; - } - -} - -TEST_CASE( "Text can be formatted using the Text class", "" ) { - - CHECK( Text( "hi there" ).toString() == "hi there" ); - - TextAttributes narrow; - narrow.setWidth( 6 ); - - CHECK( Text( "hi there", narrow ).toString() == "hi\nthere" ); -} - -TEST_CASE( "Long text is truncated", "[Text][Truncated]" ) { - - std::string longLine( 90, '*' ); - - std::ostringstream oss; - for(int i = 0; i < 600; ++i ) - oss << longLine << longLine << "\n"; - Text t( oss.str() ); - CHECK_THAT( t.toString(), EndsWith( "... message truncated due to excessive size" ) ); - -} - -inline void manuallyRegisteredTestFunction() { - SUCCEED( "was called" ); -} -struct AutoTestReg { - AutoTestReg() { - REGISTER_TEST_CASE( manuallyRegisteredTestFunction, "ManuallyRegistered", "" ); - } -}; -AutoTestReg autoTestReg; diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringGeneralTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringGeneralTests.cpp deleted file mode 100644 index bca913f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringGeneralTests.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Created by Martin on 17/02/2017. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - - -TEST_CASE( "Character pretty printing" ){ - // - SECTION("Specifically escaped"){ - char tab = '\t'; - char newline = '\n'; - char carr_return = '\r'; - char form_feed = '\f'; - CHECK(tab == '\t'); - CHECK(newline == '\n'); - CHECK(carr_return == '\r'); - CHECK(form_feed == '\f'); - } - SECTION("General chars"){ - char space = ' '; - CHECK(space == ' '); - char chars[] = {'a', 'z', 'A', 'Z'}; - for (int i = 0; i < 4; ++i){ - char c = chars[i]; - REQUIRE(c == chars[i]); - } - } - SECTION("Low ASCII"){ - char null_terminator = '\0'; - CHECK(null_terminator == '\0'); - for (int i = 2; i < 6; ++i){ - char c = static_cast(i); - REQUIRE(c == i); - } - } -} - - -TEST_CASE( "Capture and info messages" ) { - SECTION("Capture should stringify like assertions") { - int i = 2; - CAPTURE(i); - REQUIRE(true); - } - SECTION("Info should NOT stringify the way assertions do") { - int i = 3; - INFO(i); - REQUIRE(true); - } -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringPair.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringPair.cpp deleted file mode 100644 index 8f51070..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringPair.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "catch.hpp" - -// === Pair === -namespace Catch { - // Note: If we put this in the right place in catch_tostring, then - // we can make it an overload of Catch::toString - template - struct StringMaker > { - static std::string convert( const std::pair& pair ) { - std::ostringstream oss; - oss << "{ " - << toString( pair.first ) - << ", " - << toString( pair.second ) - << " }"; - return oss.str(); - } - }; -} - -TEST_CASE( "std::pair -> toString", "[toString][pair]" ) { - std::pair value( 34, "xyzzy" ); - REQUIRE( Catch::toString( value ) == "{ 34, \"xyzzy\" }" ); -} - -TEST_CASE( "std::pair -> toString", "[toString][pair]" ) { - std::pair value( 34, "xyzzy" ); - REQUIRE( Catch::toString(value) == "{ 34, \"xyzzy\" }" ); -} - -TEST_CASE( "std::vector > -> toString", "[toString][pair]" ) { - std::vector > pr; - pr.push_back( std::make_pair("green", 55 ) ); - REQUIRE( Catch::toString( pr ) == "{ { \"green\", 55 } }" ); -} - -// This is pretty contrived - I figure if this works, anything will... -TEST_CASE( "pair > -> toString", "[toString][pair]" ) { - typedef std::pair left_t; - typedef std::pair right_t; - - left_t left( 42, "Arthur" ); - right_t right( "Ford", 24 ); - - std::pair pair( left, right ); - REQUIRE( Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" ); -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringTuple.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringTuple.cpp deleted file mode 100644 index fa61f63..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringTuple.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "catch.hpp" - -#ifdef CATCH_CPP11_OR_GREATER - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wc++98-compat" -#endif - -TEST_CASE( "tuple<>", "[toString][tuple][c++11][.]" ) -{ - typedef std::tuple<> type; - CHECK( "{ }" == Catch::toString(type{}) ); - type value {}; - CHECK( "{ }" == Catch::toString(value) ); -} - -TEST_CASE( "tuple", "[toString][tuple][c++11][.]" ) -{ - typedef std::tuple type; - CHECK( "{ 0 }" == Catch::toString(type{0}) ); -} - - -TEST_CASE( "tuple", "[toString][tuple][c++11][.]" ) -{ - typedef std::tuple type; - CHECK( "1.2f" == Catch::toString(float(1.2)) ); - CHECK( "{ 1.2f, 0 }" == Catch::toString(type{1.2,0}) ); -} - -TEST_CASE( "tuple", "[toString][tuple][c++11][.]" ) -{ - typedef std::tuple type; - CHECK( "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"}) ); -} - -TEST_CASE( "tuple,tuple<>,float>", "[toString][tuple][c++11][.]" ) -{ - typedef std::tuple,std::tuple<>,float> type; - type value { std::tuple{42}, {}, 1.2f }; - CHECK( "{ { 42 }, { }, 1.2f }" == Catch::toString(value) ); -} - -#ifdef CATCH_CONFIG_CPP11_NULLPTR -TEST_CASE( "tuple", "[toString][tuple][c++11][.]" ) -{ - typedef std::tuple type; - type value { nullptr, 42, "Catch me" }; - CHECK( "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value) ); -} -#endif - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif /* #ifdef CATCH_CPP11_OR_GREATER */ - diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringVector.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringVector.cpp deleted file mode 100644 index cd071a9..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringVector.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include "catch.hpp" -#include - - -// vedctor -TEST_CASE( "vector -> toString", "[toString][vector]" ) -{ - std::vector vv; - REQUIRE( Catch::toString(vv) == "{ }" ); - vv.push_back( 42 ); - REQUIRE( Catch::toString(vv) == "{ 42 }" ); - vv.push_back( 250 ); - REQUIRE( Catch::toString(vv) == "{ 42, 250 }" ); -} - -TEST_CASE( "vector -> toString", "[toString][vector]" ) -{ - std::vector vv; - REQUIRE( Catch::toString(vv) == "{ }" ); - vv.push_back( "hello" ); - REQUIRE( Catch::toString(vv) == "{ \"hello\" }" ); - vv.push_back( "world" ); - REQUIRE( Catch::toString(vv) == "{ \"hello\", \"world\" }" ); -} - -#if defined(CATCH_CPP11_OR_GREATER) -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wc++98-compat" -#endif - -/* - Note: These tests *can* be made to work with C++ < 11, but the - allocator is a lot more work... -*/ -namespace { - /* Minimal Allocator */ - template - struct minimal_allocator { - typedef T value_type; - typedef std::size_t size_type; - T *allocate( size_type n ) { - return static_cast( ::operator new( n * sizeof(T) ) ); - } - void deallocate( T *p, size_type /*n*/ ) { - ::operator delete( static_cast(p) ); - } - template - bool operator==( const minimal_allocator& ) const { return true; } - template - bool operator!=( const minimal_allocator& ) const { return false; } - }; -} - -TEST_CASE( "vector -> toString", "[toString][vector,allocator][c++11][.]" ) { - std::vector > vv; - REQUIRE( Catch::toString(vv) == "{ }" ); - vv.push_back( 42 ); - REQUIRE( Catch::toString(vv) == "{ 42 }" ); - vv.push_back( 250 ); - REQUIRE( Catch::toString(vv) == "{ 42, 250 }" ); -} - -TEST_CASE( "vec> -> toString", "[toString][vector,allocator][c++11][.]" ) { - typedef std::vector > inner; - typedef std::vector vector; - vector v; - REQUIRE( Catch::toString(v) == "{ }" ); - v.push_back( inner { "hello" } ); - v.push_back( inner { "world" } ); - REQUIRE( Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }" ); -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif -#endif // CATCH_CPP11_OR_GREATER diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringWhich.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringWhich.cpp deleted file mode 100644 index a1d2a60..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/ToStringWhich.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "catch.hpp" -/* - Demonstrate which version of toString/StringMaker is being used - for various types -*/ - - -struct has_toString { }; -struct has_maker {}; -struct has_maker_and_toString {}; - -namespace Catch { - inline std::string toString( const has_toString& ) { - return "toString( has_toString )"; - } - inline std::string toString( const has_maker_and_toString& ) { - return "toString( has_maker_and_toString )"; - } - template<> - struct StringMaker { - static std::string convert( const has_maker& ) { - return "StringMaker"; - } - }; - template<> - struct StringMaker { - static std::string convert( const has_maker_and_toString& ) { - return "StringMaker"; - } - }; -} - -// Call the overload -TEST_CASE( "toString( has_toString )", "[toString]" ) { - has_toString item; - REQUIRE( Catch::toString( item ) == "toString( has_toString )" ); -} - -// Call the overload -TEST_CASE( "toString( has_maker )", "toString]" ) { - has_maker item; - REQUIRE( Catch::toString( item ) == "StringMaker" ); -} - -// Call the overload -TEST_CASE( "toString( has_maker_and_toString )", "[.][toString]" ) { - has_maker_and_toString item; - REQUIRE( Catch::toString( item ) == "toString( has_maker_and_toString )" ); -} - -// Vectors... - -// Don't run this in approval tests as it is sensitive to two phase lookup differences -TEST_CASE( "toString( vectors v(1); - // This invokes template toString which actually gives us '{ ? }' - REQUIRE( Catch::toString( v ) == "{ {?} }" ); -} - -TEST_CASE( "toString( vectors v(1); - REQUIRE( Catch::toString( v ) == "{ StringMaker }" ); -} - - -// Don't run this in approval tests as it is sensitive to two phase lookup differences -TEST_CASE( "toString( vectors v(1); - // Note: This invokes the template toString -> StringMaker - REQUIRE( Catch::toString( v ) == "{ StringMaker }" ); -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TrickyTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TrickyTests.cpp deleted file mode 100644 index 26625b0..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/TrickyTests.cpp +++ /dev/null @@ -1,409 +0,0 @@ -/* - * Created by Phil on 09/11/2010. - * Copyright 2010 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wpadded" -#endif - -#include - -#include "catch.hpp" - -#ifdef __clang__ -#pragma clang diagnostic ignored "-Wc++98-compat" -#pragma clang diagnostic ignored "-Wc++98-compat-pedantic" -#endif - -namespace Catch -{ - template<> - std::string toString >( const std::pair& value ) - { - std::ostringstream oss; - oss << "std::pair( " << value.first << ", " << value.second << " )"; - return oss.str(); - - } -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Parsing a std::pair", - "[Tricky][std::pair]" -) -{ - std::pair aNicePair( 1, 2 ); - - REQUIRE( (std::pair( 1, 2 )) == aNicePair ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Where there is more to the expression after the RHS", - "[Tricky][failing][.]" -) -{ -// int a = 1, b = 2; -// REQUIRE( a == 2 || b == 2 ); - WARN( "Uncomment the code in this test to check that it gives a sensible compiler error" ); -} -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "Where the LHS is not a simple value", - "[Tricky][failing][.]" -) -{ - /* - int a = 1; - int b = 2; - - // This only captures part of the expression, but issues a warning about the rest - REQUIRE( a+1 == b-1 ); - */ - WARN( "Uncomment the code in this test to check that it gives a sensible compiler error" ); -} - -struct Opaque -{ - int val; - bool operator ==( const Opaque& o ) const - { - return val == o.val; - } -}; - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "A failing expression with a non streamable type is still captured", - "[Tricky][failing][.]" -) -{ - - Opaque o1, o2; - o1.val = 7; - o2.val = 8; - - CHECK( &o1 == &o2 ); - CHECK( o1 == o2 ); -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "string literals of different sizes can be compared", - "[Tricky][failing][.]" -) -{ - REQUIRE( std::string( "first" ) == "second" ); - -} - -/////////////////////////////////////////////////////////////////////////////// -TEST_CASE -( - "An expression with side-effects should only be evaluated once", - "[Tricky]" -) -{ - int i = 7; - - REQUIRE( i++ == 7 ); - REQUIRE( i++ == 8 ); - -} - -namespace A { - struct X - { - X() : a(4), b(2), c(7) {} - X(int v) : a(v), b(2), c(7) {} - int a; - int b; - int c; - }; -} - -namespace B { - struct Y - { - Y() : a(4), b(2), c(7) {} - Y(int v) : a(v), b(2), c(7) {} - int a; - int b; - int c; - }; -} - -inline bool operator==(const A::X& lhs, const B::Y& rhs) -{ - return (lhs.a == rhs.a); -} - -inline bool operator==(const B::Y& lhs, const A::X& rhs) -{ - return (lhs.a == rhs.a); -} - - -/////////////////////////////////////////////////////////////////////////////// -/* This, currently, does not compile with LLVM -TEST_CASE -( - "Operators at different namespace levels not hijacked by Koenig lookup" - "[Tricky]" -) -{ - A::X x; - B::Y y; - REQUIRE( x == y ); -} -*/ - -namespace ObjectWithConversions -{ - struct Object - { - operator unsigned int() {return 0xc0000000;} - }; - - /////////////////////////////////////////////////////////////////////////////// - TEST_CASE - ( - "Operators at different namespace levels not hijacked by Koenig lookup", - "[Tricky]" - ) - { - Object o; - REQUIRE(0xc0000000 == o ); - } -} - -namespace ObjectWithNonConstEqualityOperator -{ - struct Test - { - Test( unsigned int v ) - : m_value(v) - {} - - bool operator==( const Test&rhs ) - { - return (m_value == rhs.m_value); - } - bool operator==( const Test&rhs ) const - { - return (m_value != rhs.m_value); - } - unsigned int m_value; - }; - - TEST_CASE("Demonstrate that a non-const == is not used", "[Tricky]" ) - { - Test t( 1 ); - REQUIRE( t == 1u ); - } -} - -namespace EnumBitFieldTests -{ - enum Bits {bit0 = 0x0001, bit1 = 0x0002, bit2 = 0x0004, bit3 = 0x0008, bit1and2 = 0x0006, - bit30 = 0x40000000, bit31 = 0x80000000, - bit30and31 = 0xc0000000}; - - TEST_CASE( "Test enum bit values", "[Tricky]" ) - { - REQUIRE( 0xc0000000 == bit30and31 ); - } -} - -struct Obj -{ - Obj():prop(&p){} - - int p; - int* prop; -}; - -TEST_CASE("boolean member", "[Tricky]") -{ - Obj obj; - REQUIRE( obj.prop != CATCH_NULL ); -} - -// Tests for a problem submitted by Ralph McArdell -// -// The static bool value should not need to be defined outside the -// struct it is declared in - but when evaluating it in a deduced -// context it appears to require the extra definition. -// The issue was fixed by adding bool overloads to bypass the -// templates that were there to deduce it. -template -struct is_true -{ - static const bool value = B; -}; - -TEST_CASE( "(unimplemented) static bools can be evaluated", "[Tricky]" ) -{ - SECTION("compare to true","") - { - REQUIRE( is_true::value == true ); - REQUIRE( true == is_true::value ); - } - SECTION("compare to false","") - { - REQUIRE( is_true::value == false ); - REQUIRE( false == is_true::value ); - } - - SECTION("negation", "") - { - REQUIRE( !is_true::value ); - } - - SECTION("double negation","") - { - REQUIRE( !!is_true::value ); - } - - SECTION("direct","") - { - REQUIRE( is_true::value ); - REQUIRE_FALSE( is_true::value ); - } -} - -// Uncomment these tests to produce an error at test registration time -/* -TEST_CASE( "Tests with the same name are not allowed", "[Tricky]" ) -{ - -} -TEST_CASE( "Tests with the same name are not allowed", "[Tricky]" ) -{ - -} -*/ - -struct Boolable -{ - explicit Boolable( bool value ) : m_value( value ) {} - - operator Catch::SafeBool::type() const { - return Catch::SafeBool::makeSafe( m_value ); - } - - bool m_value; -}; - -TEST_CASE( "Objects that evaluated in boolean contexts can be checked", "[Tricky][SafeBool]" ) -{ - Boolable True( true ); - Boolable False( false ); - - CHECK( True ); - CHECK( !False ); - CHECK_FALSE( False ); -} - -TEST_CASE( "Assertions then sections", "[Tricky]" ) -{ - // This was causing a failure due to the way the console reporter was handling - // the current section - - REQUIRE( Catch::alwaysTrue() ); - - SECTION( "A section", "" ) - { - REQUIRE( Catch::alwaysTrue() ); - - SECTION( "Another section", "" ) - { - REQUIRE( Catch::alwaysTrue() ); - } - SECTION( "Another other section", "" ) - { - REQUIRE( Catch::alwaysTrue() ); - } - } -} - -struct Awkward -{ - operator int() const { return 7; } -}; - -TEST_CASE( "non streamable - with conv. op", "[Tricky]" ) -{ - Awkward awkward; - std::string s = Catch::toString( awkward ); - REQUIRE( s == "7" ); -} - -inline void foo() {} - -typedef void (*fooptr_t)(); - -TEST_CASE( "Comparing function pointers", "[Tricky][function pointer]" ) -{ - // This was giving a warning in VS2010 - // #179 - fooptr_t a = foo; - - REQUIRE( a ); - REQUIRE( a == &foo ); -} - -struct S -{ - void f() {} -}; - - -TEST_CASE( "Comparing member function pointers", "[Tricky][member function pointer]" ) -{ - typedef void (S::*MF)(); - MF m = &S::f; - - CHECK( m == &S::f ); -} - -class ClassName {}; - -TEST_CASE( "pointer to class", "[Tricky]" ) -{ - ClassName *p = 0; - REQUIRE( p == 0 ); -} - -#ifdef CATCH_CONFIG_CPP11_NULLPTR - -#include - -TEST_CASE( "null_ptr", "[Tricky][c++11][.]" ) -{ - std::unique_ptr ptr; - REQUIRE(ptr.get() == nullptr); -} - -#endif - -TEST_CASE( "X/level/0/a", "[Tricky]" ) { SUCCEED(""); } -TEST_CASE( "X/level/0/b", "[Tricky][fizz]" ){ SUCCEED(""); } -TEST_CASE( "X/level/1/a", "[Tricky]" ) { SUCCEED(""); } -TEST_CASE( "X/level/1/b", "[Tricky]" ) { SUCCEED(""); } - -TEST_CASE( "has printf", "" ) { - - // This can cause problems as, currently, stdout itself is not redirect - only the cout (and cerr) buffer - printf( "spanner" ); -} diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/VariadicMacrosTests.cpp b/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/VariadicMacrosTests.cpp deleted file mode 100644 index b784076..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/SelfTest/VariadicMacrosTests.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Created by Phil on 15/03/2013. - * Copyright 2013 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ - -#include "catch.hpp" - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - -TEST_CASE() -{ - SUCCEED( "anonymous test case" ); -} - -TEST_CASE( "Test case with one argument" ) -{ - SUCCEED( "no assertions" ); -} - -TEST_CASE( "Variadic macros", "[variadic][sections]" ) -{ - SECTION( "Section with one argument" ) - { - SUCCEED( "no assertions" ); - } -} - -#endif diff --git a/libraries/Lora_Serialization/test/lib/Catch/projects/Where did the projects go.txt b/libraries/Lora_Serialization/test/lib/Catch/projects/Where did the projects go.txt deleted file mode 100644 index c7b011d..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/projects/Where did the projects go.txt +++ /dev/null @@ -1,13 +0,0 @@ -The canonical project format is now CMake. -To generate an XCode or Visual Studio project you'll need CMake, which you can download from https://cmake.org if necessary. - -To generate the project files open a terminal/ console within the projects directory (where this file is located), create a directory called "Generated" (using mkdir or md), cd into it, then type: - -CMake -G ../.. - -Where is XCode for XCode projects, or "Visual Studio 14" for Visual Studio 2015 (replace 14 with the major version number for any other supported Visual Studio version - or execute CMake -help for the full list) - -Remember to re-run CMake any time you pull from GitHub. -Note that the projects/Generated folder is excluded in .gitignore. So it is recommended to use this. - -CMake can also generate make files or projects for other build systems. Run CMake -help for the full set of options. diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/approvalTests.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/approvalTests.py deleted file mode 100644 index b1b1d65..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/approvalTests.py +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function - -import os -import sys -import subprocess -import re -import difflib - -import scriptCommon -from scriptCommon import catchPath - -rootPath = os.path.join(catchPath, 'projects/SelfTest/Baselines') - - -filelocParser = re.compile(r''' - .*/ - (.+\.[ch]pp) # filename - (?::|\() # : is starting separator between filename and line number on Linux, ( on Windows - ([0-9]*) # line number - \)? # Windows also has an ending separator, ) -''', re.VERBOSE) -lineNumberParser = re.compile(r' line="[0-9]*"') -hexParser = re.compile(r'\b(0[xX][0-9a-fA-F]+)\b') -durationsParser = re.compile(r' time="[0-9]*\.[0-9]*"') -timestampsParser = re.compile(r' timestamp="\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}Z"') -versionParser = re.compile(r'Catch v[0-9]+\.[0-9]+\.[0-9]+(-develop\.[0-9]+)?') -nullParser = re.compile(r'\b(__null|nullptr)\b') -exeNameParser = re.compile(r''' - \b - (CatchSelfTest|SelfTest) # Expected executable name - (?:.exe)? # Executable name contains .exe on Windows. - \b -''', re.VERBOSE) -# This is a hack until something more reasonable is figured out -specialCaseParser = re.compile(r'file\((\d+)\)') - -if len(sys.argv) == 2: - cmdPath = sys.argv[1] -else: - cmdPath = os.path.join(catchPath, scriptCommon.getBuildExecutable()) - -overallResult = 0 - -def diffFiles(fileA, fileB): - with open(fileA, 'r') as file: - aLines = file.readlines() - with open(fileB, 'r') as file: - bLines = file.readlines() - - shortenedFilenameA = fileA.rsplit(os.sep, 1)[-1] - shortenedFilenameB = fileB.rsplit(os.sep, 1)[-1] - - diff = difflib.unified_diff(aLines, bLines, fromfile=shortenedFilenameA, tofile=shortenedFilenameB, n=0) - return [line for line in diff if line[0] in ('+', '-')] - - -def filterLine(line): - if catchPath in line: - # make paths relative to Catch root - line = line.replace(catchPath + os.sep, '') - # go from \ in windows paths to / - line = line.replace('\\', '/') - - - # strip source line numbers - m = filelocParser.match(line) - if m: - # note that this also strips directories, leaving only the filename - filename, lnum = m.groups() - lnum = ":" if lnum else "" - line = filename + lnum + line[m.end():] - else: - line = lineNumberParser.sub(" ", line) - - # strip Catch version number - line = versionParser.sub("", line) - - # replace *null* with 0 - line = nullParser.sub("0", line) - - # strip executable name - line = exeNameParser.sub("", line) - - # strip hexadecimal numbers (presumably pointer values) - line = hexParser.sub("0x", line) - - # strip durations and timestamps - line = durationsParser.sub(' time="{duration}"', line) - line = timestampsParser.sub(' timestamp="{iso8601-timestamp}"', line) - line = specialCaseParser.sub('file:\g<1>', line) - return line - - -def approve(baseName, args): - global overallResult - args[0:0] = [cmdPath] - if not os.path.exists(cmdPath): - raise Exception("Executable doesn't exist at " + cmdPath) - baselinesPath = os.path.join(rootPath, '{0}.approved.txt'.format(baseName)) - rawResultsPath = os.path.join(rootPath, '_{0}.tmp'.format(baseName)) - filteredResultsPath = os.path.join(rootPath, '{0}.unapproved.txt'.format(baseName)) - - f = open(rawResultsPath, 'w') - subprocess.call(args, stdout=f, stderr=f) - f.close() - - rawFile = open(rawResultsPath, 'r') - filteredFile = open(filteredResultsPath, 'w') - for line in rawFile: - filteredFile.write(filterLine(line).rstrip() + "\n") - filteredFile.close() - rawFile.close() - - os.remove(rawResultsPath) - print() - print(baseName + ":") - if os.path.exists(baselinesPath): - diffResult = diffFiles(baselinesPath, filteredResultsPath) - if diffResult: - print(''.join(diffResult)) - print(" \n****************************\n \033[91mResults differed") - if len(diffResult) > overallResult: - overallResult = len(diffResult) - else: - os.remove(filteredResultsPath) - print(" \033[92mResults matched") - print("\033[0m") - else: - print(" first approval") - if overallResult == 0: - overallResult = 1 - - -print("Running approvals against executable:") -print(" " + cmdPath) - -# Standard console reporter -approve("console.std", ["~[c++11]~[!nonportable]", "--order", "lex"]) -# console reporter, include passes, warn about No Assertions -approve("console.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "--order", "lex"]) -# console reporter, include passes, warn about No Assertions, limit failures to first 4 -approve("console.swa4", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-x", "4", "--order", "lex"]) -# junit reporter, include passes, warn about No Assertions -approve("junit.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "junit", "--order", "lex"]) -# xml reporter, include passes, warn about No Assertions -approve("xml.sw", ["~[c++11]~[!nonportable]", "-s", "-w", "NoAssertions", "-r", "xml", "--order", "lex"]) - -if overallResult != 0: - print("If these differences are expected, run approve.py to approve new baselines.") -exit(overallResult) diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/approve.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/approve.py deleted file mode 100644 index 78a2a9e..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/approve.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function - -import os -import sys -import shutil -import glob -from scriptCommon import catchPath - -rootPath = os.path.join( catchPath, 'projects/SelfTest/Baselines' ) - -if len(sys.argv) > 1: - files = [os.path.join( rootPath, f ) for f in sys.argv[1:]] -else: - files = glob.glob( os.path.join( rootPath, "*.unapproved.txt" ) ) - - -def approveFile( approvedFile, unapprovedFile ): - justFilename = unapprovedFile[len(rootPath)+1:] - if os.path.exists( unapprovedFile ): - if os.path.exists( approvedFile ): - os.remove( approvedFile ) - os.rename( unapprovedFile, approvedFile ) - print( "approved " + justFilename ) - else: - print( "approval file " + justFilename + " does not exist" ) - -if len(files) > 0: - for unapprovedFile in files: - approveFile( unapprovedFile.replace( "unapproved.txt", "approved.txt" ), unapprovedFile ) -else: - print( "no files to approve" ) diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/benchmarkCompile.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/benchmarkCompile.py deleted file mode 100644 index 13e6189..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/benchmarkCompile.py +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function - -import time, subprocess, sys, os, shutil, glob, random -import argparse - -def median(lst): - lst = sorted(lst) - mid, odd = divmod(len(lst), 2) - if odd: - return lst[mid] - else: - return (lst[mid - 1] + lst[mid]) / 2.0 - -def mean(lst): - return float(sum(lst)) / max(len(lst), 1) - -compiler_path = '' -flags = [] - -main_file = r''' -#define CATCH_CONFIG_MAIN -#include "catch.hpp" -''' -main_name = 'catch-main.cpp' - -dir_name = 'benchmark-dir' - -files = 20 -test_cases_in_file = 20 -sections_in_file = 4 -assertions_per_section = 5 - -checks = [ - 'a != b', 'a != c', 'a != d', 'a != e', 'b != c', 'b != d', 'b != e', 'c != d', 'c != e', 'd != e', 'a + a == a', - 'a + b == b', 'a + c == c', 'a + d == d', 'a + e == e', 'b + a == b', 'b + b == c', 'b + c == d', - 'b + d == e', 'c + a == c', 'c + b == d', 'c + c == e', 'd + a == d', 'd + b == e', 'e + a == e', - 'a + a + a == a', 'b + c == a + d', 'c + a + a == a + b + b + a', - 'a < b', 'b < c', 'c < d', 'd < e', 'a >= a', 'd >= b', -] - -def create_temp_dir(): - if os.path.exists(dir_name): - shutil.rmtree(dir_name) - os.mkdir(dir_name) - -def copy_catch(path_to_catch): - shutil.copy(path_to_catch, dir_name) - -def create_catch_main(): - with open(main_name, 'w') as f: - f.write(main_file) - -def compile_main(): - start_t = time.time() - subprocess.check_call([compiler_path, main_name, '-c'] + flags) - end_t = time.time() - return end_t - start_t - -def compile_files(): - cpp_files = glob.glob('*.cpp') - start_t = time.time() - subprocess.check_call([compiler_path, '-c'] + flags + cpp_files) - end_t = time.time() - return end_t - start_t - -def link_files(): - obj_files = glob.glob('*.o') - start_t = time.time() - subprocess.check_call([compiler_path] + flags + obj_files) - end_t = time.time() - return end_t - start_t - -def benchmark(func): - results = [func() for i in range(10)] - return mean(results), median(results) - -def char_range(start, end): - for c in range(ord(start), ord(end)): - yield chr(c) - -def generate_sections(fd): - for i in range(sections_in_file): - fd.write(' SECTION("Section {}") {{\n'.format(i)) - fd.write('\n'.join(' CHECK({});'.format(check) for check in random.sample(checks, assertions_per_section))) - fd.write(' }\n') - - -def generate_file(file_no): - with open('tests{}.cpp'.format(file_no), 'w') as f: - f.write('#include "catch.hpp"\n\n') - for i in range(test_cases_in_file): - f.write('TEST_CASE("File {} test {}", "[.compile]"){{\n'.format(file_no, i)) - for i, c in enumerate(char_range('a', 'f')): - f.write(' int {} = {};\n'.format(c, i)) - generate_sections(f) - f.write('}\n\n') - - -def generate_files(): - create_catch_main() - for i in range(files): - generate_file(i) - - -options = ['all', 'main', 'files', 'link'] - -parser = argparse.ArgumentParser(description='Benchmarks Catch\'s compile times against some synthetic tests') -# Add first arg -- benchmark type -parser.add_argument('benchmark_kind', nargs='?', default='all', choices=options, help='What kind of benchmark to run, default: all') - -# Args to allow changing header/compiler -parser.add_argument('-I', '--catch-header', default='catch.hpp', help = 'Path to catch.hpp, default: catch.hpp') -parser.add_argument('-c', '--compiler', default='g++', help = 'Compiler to use, default: g++') - -parser.add_argument('-f', '--flags', nargs='*', help = 'Flags to be passed to the compiler') - -# Allow creating files only, without running the whole thing -parser.add_argument('-g', '--generate-files', action='store_true', help='Generate test files and quit') - -args = parser.parse_args() - -compiler_path = args.compiler -catch_path = args.catch_header - -if args.generate_files: - create_temp_dir() - os.chdir(dir_name) - copy_catch(catch_path) - # now create the fake test files - generate_files() - # Early exit - print('Finished generating files') - exit(1) - -os.chdir(dir_name) - -if args.flags: - flags = args.flags - -print('Time needed for ...') -if args.benchmark_kind in ('all', 'main'): - print(' ... compiling main, mean: {:.2f}, median: {:.2f} s'.format(*benchmark(compile_main))) -if args.benchmark_kind in ('all', 'files'): - print(' ... compiling test files, mean: {:.2f}, median: {:.2f} s'.format(*benchmark(compile_files))) -if args.benchmark_kind in ('all', 'link'): - print(' ... linking everything, mean: {:.2f}, median: {:.2f} s'.format(*benchmark(link_files))) diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/benchmarkRunner.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/benchmarkRunner.py deleted file mode 100644 index dc753cf..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/benchmarkRunner.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env python3 - -import subprocess, os, sys -import xml.etree.ElementTree as ET -from collections import defaultdict -from statistics import median, stdev -from datetime import datetime - -def get_commit_hash(): - res = subprocess.run('git rev-parse HEAD'.split(), check=True, stdout=subprocess.PIPE, universal_newlines=True) - return res.stdout.strip() - -if len(sys.argv) < 2: - print('Usage: {} benchmark-binary'.format(sys.argv[0])) - exit(1) - - -num_runs = 10 -data = defaultdict(list) - - -def parse_file(file): - - def recursive_search(node): - if node.tag == 'TestCase': - results = node.find('OverallResult') - time = results.get('durationInSeconds') - data[node.get('name')].append(float(time)) - elif node.tag in ('Group', 'Catch'): - for child in node: - recursive_search(child) - - tree = ET.parse(file) - recursive_search(tree.getroot()) - -def run_benchmarks(binary): - call = [binary] + '-d yes -r xml -o'.split() - for i in range(num_runs): - file = 'temp{}.xml'.format(i) - print('Run number {}'.format(i)) - subprocess.run(call + [file]) - parse_file(file) - # Remove file right after parsing, because benchmark output can be big - os.remove(file) - - -# Run benchmarks -run_benchmarks(sys.argv[1]) - -result_file = '{:%Y-%m-%dT%H-%M-%S}-{}.result'.format(datetime.now(), get_commit_hash()) - - -print('Writing results to {}'.format(result_file)) -with open(result_file, 'w') as file: - for k in sorted(data): - file.write('{}: median: {} (s), stddev: {} (s)\n'.format(k, median(data[k]), stdev(data[k]))) diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/developBuild.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/developBuild.py deleted file mode 100644 index c16c8a6..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/developBuild.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -from releaseCommon import Version - -v = Version() -v.incrementBuildNumber() -v.updateVersionFile() -v.updateReadmeFile() - -print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) ) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/fixWhitespace.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/fixWhitespace.py deleted file mode 100644 index 6f37c53..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/fixWhitespace.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -import os -from scriptCommon import catchPath - -changedFiles = 0 - -def isSourceFile( path ): - return path.endswith( ".cpp" ) or path.endswith( ".h" ) or path.endswith( ".hpp" ) - -def fixAllFilesInDir( dir ): - for f in os.listdir( dir ): - path = os.path.join( dir,f ) - if os.path.isfile( path ): - if isSourceFile( path ): - fixFile( path ) - else: - fixAllFilesInDir( path ) - -def fixFile( path ): - f = open( path, 'r' ) - lines = [] - changed = 0 - for line in f: - trimmed = line.rstrip() + "\n" - trimmed = trimmed.replace('\t', ' ') - if trimmed != line: - changed = changed +1 - lines.append( trimmed ) - f.close() - if changed > 0: - global changedFiles - changedFiles = changedFiles + 1 - print( path + ":" ) - print( " - fixed " + str(changed) + " line(s)" ) - altPath = path + ".backup" - os.rename( path, altPath ) - f2 = open( path, 'w' ) - for line in lines: - f2.write( line ) - f2.close() - os.remove( altPath ) - -fixAllFilesInDir(catchPath) -if changedFiles > 0: - print( "Fixed " + str(changedFiles) + " file(s)" ) -else: - print( "No trailing whitespace found" ) diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/generateSingleHeader.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/generateSingleHeader.py deleted file mode 100644 index 18a2612..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/generateSingleHeader.py +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function - -import os -import sys -import re -import datetime -import string - -from scriptCommon import catchPath -from releaseCommon import Version - - -includesParser = re.compile( r'\s*#\s*include\s*"(.*)"' ) -guardParser = re.compile( r'\s*#.*TWOBLUECUBES_CATCH_.*_INCLUDED') -defineParser = re.compile( r'\s*#define') -ifParser = re.compile( r'\s*#ifndef TWOBLUECUBES_CATCH_.*_INCLUDED') -endIfParser = re.compile( r'\s*#endif // TWOBLUECUBES_CATCH_.*_INCLUDED') -ifImplParser = re.compile( r'\s*#ifdef CATCH_CONFIG_RUNNER' ) -commentParser1 = re.compile( r'^\s*/\*') -commentParser2 = re.compile( r'^ \*') -blankParser = re.compile( r'^\s*$') -seenHeaders = set([]) -rootPath = os.path.join( catchPath, 'include/' ) -outputPath = os.path.join( catchPath, 'single_include/catch.hpp' ) - -includeImpl = True - -for arg in sys.argv[1:]: - arg = string.lower(arg) - if arg == "noimpl": - includeImpl = False - print( "Not including impl code" ) - else: - print( "\n** Unrecognised argument: " + arg + " **\n" ) - exit(1) - -out = open( outputPath, 'w' ) -ifdefs = 0 -implIfDefs = -1 - -def write( line ): - if includeImpl or implIfDefs == -1: - out.write( line ) - -def parseFile( path, filename ): - global ifdefs - global implIfDefs - - f = open( path + filename, 'r' ) - blanks = 0 - for line in f: - if ifParser.match( line ): - ifdefs = ifdefs + 1 - elif endIfParser.match( line ): - ifdefs = ifdefs - 1 - if ifdefs == implIfDefs: - implIfDefs = -1 - m = includesParser.match( line ) - if m: - header = m.group(1) - headerPath, sep, headerFile = header.rpartition( "/" ) - if not headerFile in seenHeaders: - if headerFile != "tbc_text_format.h" and headerFile != "clara.h": - seenHeaders.add( headerFile ) - write( "// #included from: {0}\n".format( header ) ) - if headerPath == "internal" and path.endswith("internal/"): - headerPath = "" - sep = "" - if os.path.exists( path + headerPath + sep + headerFile ): - parseFile( path + headerPath + sep, headerFile ) - else: - parseFile( rootPath + headerPath + sep, headerFile ) - else: - if ifImplParser.match(line): - implIfDefs = ifdefs - if (not guardParser.match( line ) or defineParser.match( line ) ) and not commentParser1.match( line )and not commentParser2.match( line ): - if blankParser.match( line ): - blanks = blanks + 1 - else: - blanks = 0 - if blanks < 2: - write( line.rstrip() + "\n" ) - - -v = Version() -out.write( "/*\n" ) -out.write( " * Catch v{0}\n".format( v.getVersionString() ) ) -out.write( " * Generated: {0}\n".format( datetime.datetime.now() ) ) -out.write( " * ----------------------------------------------------------\n" ) -out.write( " * This file has been merged from multiple headers. Please don't edit it directly\n" ) -out.write( " * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.\n" ) -out.write( " *\n" ) -out.write( " * Distributed under the Boost Software License, Version 1.0. (See accompanying\n" ) -out.write( " * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n" ) -out.write( " */\n" ) -out.write( "#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" ) -out.write( "#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" ) - -parseFile( rootPath, 'catch.hpp' ) - -out.write( "#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n\n" ) - -print ("Generated single include for Catch v{0}\n".format( v.getVersionString() ) ) diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/majorRelease.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/majorRelease.py deleted file mode 100644 index f367506..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/majorRelease.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -from releaseCommon import Version - -v = Version() -v.incrementMajorVersion() -v.updateVersionFile() -v.updateReadmeFile() - -print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) ) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/minorRelease.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/minorRelease.py deleted file mode 100644 index ac36df9..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/minorRelease.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -from releaseCommon import Version - -v = Version() -v.incrementMinorVersion() -v.updateVersionFile() -v.updateReadmeFile() - -print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) ) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/patchRelease.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/patchRelease.py deleted file mode 100644 index 878662f..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/patchRelease.py +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -from releaseCommon import Version - -v = Version() -v.incrementPatchNumber() -v.updateVersionFile() -v.updateReadmeFile() - -print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) ) \ No newline at end of file diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/releaseCommon.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/releaseCommon.py deleted file mode 100644 index 91a9062..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/releaseCommon.py +++ /dev/null @@ -1,88 +0,0 @@ -from __future__ import print_function - -import os -import sys -import re -import string - -from scriptCommon import catchPath - -versionParser = re.compile( r'(\s*Version\slibraryVersion)\s*\(\s*(.*)\s*,\s*(.*)\s*,\s*(.*)\s*,\s*\"(.*)\"\s*,\s*(.*)\s*\).*' ) -rootPath = os.path.join( catchPath, 'include/' ) -versionPath = os.path.join( rootPath, "internal/catch_version.hpp" ) -readmePath = os.path.join( catchPath, "README.md" ) - -class Version: - def __init__(self): - f = open( versionPath, 'r' ) - for line in f: - m = versionParser.match( line ) - if m: - self.variableDecl = m.group(1) - self.majorVersion = int(m.group(2)) - self.minorVersion = int(m.group(3)) - self.patchNumber = int(m.group(4)) - self.branchName = m.group(5) - self.buildNumber = int(m.group(6)) - f.close() - - def nonDevelopRelease(self): - if self.branchName != "": - self.branchName = "" - self.buildNumber = 0 - def developBuild(self): - if self.branchName == "": - self.branchName = "develop" - self.buildNumber = 0 - - def incrementBuildNumber(self): - self.developBuild() - self.buildNumber = self.buildNumber+1 - - def incrementPatchNumber(self): - self.nonDevelopRelease() - self.patchNumber = self.patchNumber+1 - - def incrementMinorVersion(self): - self.nonDevelopRelease() - self.patchNumber = 0 - self.minorVersion = self.minorVersion+1 - - def incrementMajorVersion(self): - self.nonDevelopRelease() - self.patchNumber = 0 - self.minorVersion = 0 - self.majorVersion = self.majorVersion+1 - - def getVersionString(self): - versionString = '{0}.{1}.{2}'.format( self.majorVersion, self.minorVersion, self.patchNumber ) - if self.branchName != "": - versionString = versionString + '-{0}.{1}'.format( self.branchName, self.buildNumber ) - return versionString - - def updateVersionFile(self): - f = open( versionPath, 'r' ) - lines = [] - for line in f: - m = versionParser.match( line ) - if m: - lines.append( '{0}( {1}, {2}, {3}, "{4}", {5} );'.format( self.variableDecl, self.majorVersion, self.minorVersion, self.patchNumber, self.branchName, self.buildNumber ) ) - else: - lines.append( line.rstrip() ) - f.close() - f = open( versionPath, 'w' ) - for line in lines: - f.write( line + "\n" ) - - def updateReadmeFile(self): - downloadParser = re.compile( r'' ) - f = open( readmePath, 'r' ) - lines = [] - for line in f: - lines.append( line.rstrip() ) - f.close() - f = open( readmePath, 'w' ) - for line in lines: - line = downloadParser.sub( r''.format(self.getVersionString()) , line) - f.write( line + "\n" ) - diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/releaseNotes.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/releaseNotes.py deleted file mode 100644 index 80fffbf..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/releaseNotes.py +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env python - -import os -import re -import urllib2 -import json - -from scriptCommon import catchPath -from scriptCommon import runAndCapture - -issueNumberRe = re.compile( r'(.*?)#([0-9]*)([^0-9]?.*)' ) - -rootPath = os.path.join( catchPath, 'include/' ) -versionPath = os.path.join( rootPath, "internal/catch_version.hpp" ) - - -hashes = runAndCapture( ['git', 'log', '-2', '--format="%H"', versionPath] ) -lines = runAndCapture( ['git', 'log', hashes[1] + ".." + hashes[0], catchPath] ) - -prevLine = "" -messages = [] -dates = [] -issues = {} - -def getIssueTitle( issueNumber ): - try: - s = urllib2.urlopen("https://api.github.com/repos/philsquared/catch/issues/" + issueNumber ).read() - except: - return "#HTTP Error#" - - try: - j = json.loads( s ) - return j["title"] - except: - return "#JSON Error#" - -for line in lines: - if line.startswith( "commit"): - pass - elif line.startswith( "Author:"): - pass - elif line.startswith( "Date:"): - dates.append( line[5:].lstrip() ) - pass - elif line == "" and prevLine == "": - pass - else: - prevLine = line - match = issueNumberRe.match( line ) - line2 = "" - while match: - issueNumber = match.group(2) - issue = '#{0} ("{1}")'.format( issueNumber, getIssueTitle( issueNumber ) ) - line2 = line2 + match.group(1) + issue - match = issueNumberRe.match( match.group(3) ) - if line2 == "": - messages.append( line ) - else: - messages.append( line2 ) - -print "All changes between {0} and {1}:\n".format( dates[-1], dates[0] ) - -for line in messages: - print line diff --git a/libraries/Lora_Serialization/test/lib/Catch/scripts/scriptCommon.py b/libraries/Lora_Serialization/test/lib/Catch/scripts/scriptCommon.py deleted file mode 100644 index 9adadb6..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/scripts/scriptCommon.py +++ /dev/null @@ -1,26 +0,0 @@ -import os -import sys -import subprocess - - -catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0]))) - -def getBuildExecutable(): - dir = os.environ.get('CATCH_DEV_OUT_DIR', "cmake-build-debug/SelfTest") - return dir - -def runAndCapture( args ): - child = subprocess.Popen(" ".join( args ), shell=True, stdout=subprocess.PIPE) - lines = [] - line = "" - while True: - out = child.stdout.read(1) - if out == '' and child.poll() != None: - break - if out != '': - if out == '\n': - lines.append( line ) - line = "" - else: - line = line + out - return lines diff --git a/libraries/Lora_Serialization/test/lib/Catch/single_include/catch.hpp b/libraries/Lora_Serialization/test/lib/Catch/single_include/catch.hpp deleted file mode 100644 index 6f9334b..0000000 --- a/libraries/Lora_Serialization/test/lib/Catch/single_include/catch.hpp +++ /dev/null @@ -1,11282 +0,0 @@ -/* - * Catch v1.8.1 - * Generated: 2017-03-01 16:04:19.016511 - * ---------------------------------------------------------- - * This file has been merged from multiple headers. Please don't edit it directly - * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved. - * - * Distributed under the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - */ -#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED -#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED - -#define TWOBLUECUBES_CATCH_HPP_INCLUDED - -#ifdef __clang__ -# pragma clang system_header -#elif defined __GNUC__ -# pragma GCC system_header -#endif - -// #included from: internal/catch_suppress_warnings.h - -#ifdef __clang__ -# ifdef __ICC // icpc defines the __clang__ macro -# pragma warning(push) -# pragma warning(disable: 161 1682) -# else // __ICC -# pragma clang diagnostic ignored "-Wglobal-constructors" -# pragma clang diagnostic ignored "-Wvariadic-macros" -# pragma clang diagnostic ignored "-Wc99-extensions" -# pragma clang diagnostic ignored "-Wunused-variable" -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wpadded" -# pragma clang diagnostic ignored "-Wc++98-compat" -# pragma clang diagnostic ignored "-Wc++98-compat-pedantic" -# pragma clang diagnostic ignored "-Wswitch-enum" -# pragma clang diagnostic ignored "-Wcovered-switch-default" -# endif -#elif defined __GNUC__ -# pragma GCC diagnostic ignored "-Wvariadic-macros" -# pragma GCC diagnostic ignored "-Wunused-variable" - - // For newer version we can use __Pragma to disable the warnings locally -# if __GNUC__ == 4 && __GNUC_MINOR__ >= 4 && __GNUC_MINOR__ <= 7 -# pragma GCC diagnostic ignored "-Wparentheses" -# endif - -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wpadded" -#endif -#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER) -# define CATCH_IMPL -#endif - -#ifdef CATCH_IMPL -# ifndef CLARA_CONFIG_MAIN -# define CLARA_CONFIG_MAIN_NOT_DEFINED -# define CLARA_CONFIG_MAIN -# endif -#endif - -// #included from: internal/catch_notimplemented_exception.h -#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED - -// #included from: catch_common.h -#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED - -// #included from: catch_compiler_capabilities.h -#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED - -// Detect a number of compiler features - mostly C++11/14 conformance - by compiler -// The following features are defined: -// -// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported? -// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported? -// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods -// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported? -// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported -// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported? -// CATCH_CONFIG_CPP11_OVERRIDE : is override supported? -// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr) -// CATCH_CONFIG_CPP11_SHUFFLE : is std::shuffle supported? -// CATCH_CONFIG_CPP11_TYPE_TRAITS : are type_traits and enable_if supported? - -// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported? - -// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported? -// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported? -// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported? -// CATCH_CONFIG_POSIX_SIGNALS : are POSIX signals supported? -// **************** -// Note to maintainers: if new toggles are added please document them -// in configuration.md, too -// **************** - -// In general each macro has a _NO_ form -// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature. -// Many features, at point of detection, define an _INTERNAL_ macro, so they -// can be combined, en-mass, with the _NO_ forms later. - -// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11 - -#ifdef __cplusplus - -# if __cplusplus >= 201103L -# define CATCH_CPP11_OR_GREATER -# endif - -# if __cplusplus >= 201402L -# define CATCH_CPP14_OR_GREATER -# endif - -#endif - -#ifdef __clang__ - -# if __has_feature(cxx_nullptr) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# if __has_feature(cxx_noexcept) -# define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# endif - -# if defined(CATCH_CPP11_OR_GREATER) -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "clang diagnostic push" ) \ - _Pragma( "clang diagnostic ignored \"-Wparentheses\"" ) -# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "clang diagnostic pop" ) -# endif - -#endif // __clang__ - -//////////////////////////////////////////////////////////////////////////////// -// Cygwin -#ifdef __CYGWIN__ - -# if !defined(CATCH_CONFIG_POSIX_SIGNALS) -# define CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS -# endif - -// Required for some versions of Cygwin to declare gettimeofday -// see: http://stackoverflow.com/questions/36901803/gettimeofday-not-declared-in-this-scope-cygwin -# define _BSD_SOURCE - -#endif // __CYGWIN__ - -//////////////////////////////////////////////////////////////////////////////// -// Borland -#ifdef __BORLANDC__ - -#endif // __BORLANDC__ - -//////////////////////////////////////////////////////////////////////////////// -// EDG -#ifdef __EDG_VERSION__ - -#endif // __EDG_VERSION__ - -//////////////////////////////////////////////////////////////////////////////// -// Digital Mars -#ifdef __DMC__ - -#endif // __DMC__ - -//////////////////////////////////////////////////////////////////////////////// -// GCC -#ifdef __GNUC__ - -# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) -# define CATCH_GCC_HAS_NEW_PRAGMA -# endif - -# if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) && defined(CATCH_GCC_HAS_NEW_PRAGMA) -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "GCC diagnostic push" ) \ - _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" ) -# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \ - _Pragma( "GCC diagnostic pop" ) -# endif - -// - otherwise more recent versions define __cplusplus >= 201103L -// and will get picked up below - -#endif // __GNUC__ - -//////////////////////////////////////////////////////////////////////////////// -// Visual C++ -#ifdef _MSC_VER - -#define CATCH_INTERNAL_CONFIG_WINDOWS_SEH - -#if (_MSC_VER >= 1600) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) -#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE -#define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS -#endif - -#endif // _MSC_VER - -//////////////////////////////////////////////////////////////////////////////// - -// Use variadic macros if the compiler supports them -#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \ - ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \ - ( defined __GNUC__ && __GNUC__ >= 3 ) || \ - ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L ) - -#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS - -#endif - -// Use __COUNTER__ if the compiler supports it -#if ( defined _MSC_VER && _MSC_VER >= 1300 ) || \ - ( defined __GNUC__ && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 ) || \ - ( defined __clang__ && __clang_major__ >= 3 ) - -#define CATCH_INTERNAL_CONFIG_COUNTER - -#endif - -//////////////////////////////////////////////////////////////////////////////// -// C++ language feature support - -// catch all support for C++11 -#if defined(CATCH_CPP11_OR_GREATER) - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) -# define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -# define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM -# define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM -# endif - -# ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE -# define CATCH_INTERNAL_CONFIG_CPP11_TUPLE -# endif - -# ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS -# define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS -# endif - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) -# define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG -# endif - -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) -# define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE -# endif -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) -# define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -# endif -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) -# define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE -# endif -# if !defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) -# define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS -# endif - -#endif // __cplusplus >= 201103L - -// Now set the actual defines based on the above + anything the user has configured -#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_NULLPTR -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_NOEXCEPT -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_GENERATED_METHODS -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_IS_ENUM -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_TUPLE -#endif -#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS) -# define CATCH_CONFIG_VARIADIC_MACROS -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_LONG_LONG -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_OVERRIDE -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_UNIQUE_PTR -#endif -// Use of __COUNTER__ is suppressed if __JETBRAINS_IDE__ is #defined (meaning we're being parsed by a JetBrains IDE for -// analytics) because, at time of writing, __COUNTER__ is not properly handled by it. -// This does not affect compilation -#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) && !defined(__JETBRAINS_IDE__) -# define CATCH_CONFIG_COUNTER -#endif -#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_SHUFFLE -#endif -# if defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_NO_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_NO_CPP11) -# define CATCH_CONFIG_CPP11_TYPE_TRAITS -# endif -#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH) -# define CATCH_CONFIG_WINDOWS_SEH -#endif -// This is set by default, because we assume that unix compilers are posix-signal-compatible by default. -#if !defined(CATCH_INTERNAL_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_NO_POSIX_SIGNALS) && !defined(CATCH_CONFIG_POSIX_SIGNALS) -# define CATCH_CONFIG_POSIX_SIGNALS -#endif - -#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) -# define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS -# define CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS -#endif - -// noexcept support: -#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT) -# define CATCH_NOEXCEPT noexcept -# define CATCH_NOEXCEPT_IS(x) noexcept(x) -#else -# define CATCH_NOEXCEPT throw() -# define CATCH_NOEXCEPT_IS(x) -#endif - -// nullptr support -#ifdef CATCH_CONFIG_CPP11_NULLPTR -# define CATCH_NULL nullptr -#else -# define CATCH_NULL NULL -#endif - -// override support -#ifdef CATCH_CONFIG_CPP11_OVERRIDE -# define CATCH_OVERRIDE override -#else -# define CATCH_OVERRIDE -#endif - -// unique_ptr support -#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR -# define CATCH_AUTO_PTR( T ) std::unique_ptr -#else -# define CATCH_AUTO_PTR( T ) std::auto_ptr -#endif - -#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line -#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) -#ifdef CATCH_CONFIG_COUNTER -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ ) -#else -# define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ ) -#endif - -#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr -#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr ) - -#include -#include - -namespace Catch { - - struct IConfig; - - struct CaseSensitive { enum Choice { - Yes, - No - }; }; - - class NonCopyable { -#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - NonCopyable( NonCopyable const& ) = delete; - NonCopyable( NonCopyable && ) = delete; - NonCopyable& operator = ( NonCopyable const& ) = delete; - NonCopyable& operator = ( NonCopyable && ) = delete; -#else - NonCopyable( NonCopyable const& info ); - NonCopyable& operator = ( NonCopyable const& ); -#endif - - protected: - NonCopyable() {} - virtual ~NonCopyable(); - }; - - class SafeBool { - public: - typedef void (SafeBool::*type)() const; - - static type makeSafe( bool value ) { - return value ? &SafeBool::trueValue : 0; - } - private: - void trueValue() const {} - }; - - template - inline void deleteAll( ContainerT& container ) { - typename ContainerT::const_iterator it = container.begin(); - typename ContainerT::const_iterator itEnd = container.end(); - for(; it != itEnd; ++it ) - delete *it; - } - template - inline void deleteAllValues( AssociativeContainerT& container ) { - typename AssociativeContainerT::const_iterator it = container.begin(); - typename AssociativeContainerT::const_iterator itEnd = container.end(); - for(; it != itEnd; ++it ) - delete it->second; - } - - bool startsWith( std::string const& s, std::string const& prefix ); - bool startsWith( std::string const& s, char prefix ); - bool endsWith( std::string const& s, std::string const& suffix ); - bool endsWith( std::string const& s, char suffix ); - bool contains( std::string const& s, std::string const& infix ); - void toLowerInPlace( std::string& s ); - std::string toLower( std::string const& s ); - std::string trim( std::string const& str ); - bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ); - - struct pluralise { - pluralise( std::size_t count, std::string const& label ); - - friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ); - - std::size_t m_count; - std::string m_label; - }; - - struct SourceLineInfo { - - SourceLineInfo(); - SourceLineInfo( char const* _file, std::size_t _line ); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - SourceLineInfo(SourceLineInfo const& other) = default; - SourceLineInfo( SourceLineInfo && ) = default; - SourceLineInfo& operator = ( SourceLineInfo const& ) = default; - SourceLineInfo& operator = ( SourceLineInfo && ) = default; -# endif - bool empty() const; - bool operator == ( SourceLineInfo const& other ) const; - bool operator < ( SourceLineInfo const& other ) const; - - char const* file; - std::size_t line; - }; - - std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ); - - // This is just here to avoid compiler warnings with macro constants and boolean literals - inline bool isTrue( bool value ){ return value; } - inline bool alwaysTrue() { return true; } - inline bool alwaysFalse() { return false; } - - void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ); - - void seedRng( IConfig const& config ); - unsigned int rngSeed(); - - // Use this in variadic streaming macros to allow - // >> +StreamEndStop - // as well as - // >> stuff +StreamEndStop - struct StreamEndStop { - std::string operator+() { - return std::string(); - } - }; - template - T const& operator + ( T const& value, StreamEndStop ) { - return value; - } -} - -#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast( __LINE__ ) ) -#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO ); - -namespace Catch { - - class NotImplementedException : public std::exception - { - public: - NotImplementedException( SourceLineInfo const& lineInfo ); - NotImplementedException( NotImplementedException const& ) {} - - virtual ~NotImplementedException() CATCH_NOEXCEPT {} - - virtual const char* what() const CATCH_NOEXCEPT; - - private: - std::string m_what; - SourceLineInfo m_lineInfo; - }; - -} // end namespace Catch - -/////////////////////////////////////////////////////////////////////////////// -#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO ) - -// #included from: internal/catch_context.h -#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED - -// #included from: catch_interfaces_generators.h -#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED - -#include - -namespace Catch { - - struct IGeneratorInfo { - virtual ~IGeneratorInfo(); - virtual bool moveNext() = 0; - virtual std::size_t getCurrentIndex() const = 0; - }; - - struct IGeneratorsForTest { - virtual ~IGeneratorsForTest(); - - virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0; - virtual bool moveNext() = 0; - }; - - IGeneratorsForTest* createGeneratorsForTest(); - -} // end namespace Catch - -// #included from: catch_ptr.hpp -#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -namespace Catch { - - // An intrusive reference counting smart pointer. - // T must implement addRef() and release() methods - // typically implementing the IShared interface - template - class Ptr { - public: - Ptr() : m_p( CATCH_NULL ){} - Ptr( T* p ) : m_p( p ){ - if( m_p ) - m_p->addRef(); - } - Ptr( Ptr const& other ) : m_p( other.m_p ){ - if( m_p ) - m_p->addRef(); - } - ~Ptr(){ - if( m_p ) - m_p->release(); - } - void reset() { - if( m_p ) - m_p->release(); - m_p = CATCH_NULL; - } - Ptr& operator = ( T* p ){ - Ptr temp( p ); - swap( temp ); - return *this; - } - Ptr& operator = ( Ptr const& other ){ - Ptr temp( other ); - swap( temp ); - return *this; - } - void swap( Ptr& other ) { std::swap( m_p, other.m_p ); } - T* get() const{ return m_p; } - T& operator*() const { return *m_p; } - T* operator->() const { return m_p; } - bool operator !() const { return m_p == CATCH_NULL; } - operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); } - - private: - T* m_p; - }; - - struct IShared : NonCopyable { - virtual ~IShared(); - virtual void addRef() const = 0; - virtual void release() const = 0; - }; - - template - struct SharedImpl : T { - - SharedImpl() : m_rc( 0 ){} - - virtual void addRef() const { - ++m_rc; - } - virtual void release() const { - if( --m_rc == 0 ) - delete this; - } - - mutable unsigned int m_rc; - }; - -} // end namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -namespace Catch { - - class TestCase; - class Stream; - struct IResultCapture; - struct IRunner; - struct IGeneratorsForTest; - struct IConfig; - - struct IContext - { - virtual ~IContext(); - - virtual IResultCapture* getResultCapture() = 0; - virtual IRunner* getRunner() = 0; - virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0; - virtual bool advanceGeneratorsForCurrentTest() = 0; - virtual Ptr getConfig() const = 0; - }; - - struct IMutableContext : IContext - { - virtual ~IMutableContext(); - virtual void setResultCapture( IResultCapture* resultCapture ) = 0; - virtual void setRunner( IRunner* runner ) = 0; - virtual void setConfig( Ptr const& config ) = 0; - }; - - IContext& getCurrentContext(); - IMutableContext& getCurrentMutableContext(); - void cleanUpContext(); - Stream createStream( std::string const& streamName ); - -} - -// #included from: internal/catch_test_registry.hpp -#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED - -// #included from: catch_interfaces_testcase.h -#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED - -#include - -namespace Catch { - - class TestSpec; - - struct ITestCase : IShared { - virtual void invoke () const = 0; - protected: - virtual ~ITestCase(); - }; - - class TestCase; - struct IConfig; - - struct ITestCaseRegistry { - virtual ~ITestCaseRegistry(); - virtual std::vector const& getAllTests() const = 0; - virtual std::vector const& getAllTestsSorted( IConfig const& config ) const = 0; - }; - - bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ); - std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ); - std::vector const& getAllTestCasesSorted( IConfig const& config ); - -} - -namespace Catch { - -template -class MethodTestCase : public SharedImpl { - -public: - MethodTestCase( void (C::*method)() ) : m_method( method ) {} - - virtual void invoke() const { - C obj; - (obj.*m_method)(); - } - -private: - virtual ~MethodTestCase() {} - - void (C::*m_method)(); -}; - -typedef void(*TestFunction)(); - -struct NameAndDesc { - NameAndDesc( const char* _name = "", const char* _description= "" ) - : name( _name ), description( _description ) - {} - - const char* name; - const char* description; -}; - -void registerTestCase - ( ITestCase* testCase, - char const* className, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ); - -struct AutoReg { - - AutoReg - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ); - - template - AutoReg - ( void (C::*method)(), - char const* className, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ) { - - registerTestCase - ( new MethodTestCase( method ), - className, - nameAndDesc, - lineInfo ); - } - - ~AutoReg(); - -private: - AutoReg( AutoReg const& ); - void operator= ( AutoReg const& ); -}; - -void registerTestCaseFunction - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ); - -} // end namespace Catch - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \ - static void TestName(); \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\ - static void TestName() - #define INTERNAL_CATCH_TESTCASE( ... ) \ - INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); } - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\ - namespace{ \ - struct TestName : ClassName{ \ - void test(); \ - }; \ - Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestName::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \ - } \ - void TestName::test() - #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \ - INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \ - Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); - -#else - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TESTCASE2( TestName, Name, Desc ) \ - static void TestName(); \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\ - static void TestName() - #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \ - INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), Name, Desc ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \ - namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); } - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestCaseName, ClassName, TestName, Desc )\ - namespace{ \ - struct TestCaseName : ClassName{ \ - void test(); \ - }; \ - Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestCaseName::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \ - } \ - void TestCaseName::test() - #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\ - INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, TestName, Desc ) - - /////////////////////////////////////////////////////////////////////////////// - #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \ - Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); -#endif - -// #included from: internal/catch_capture.hpp -#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED - -// #included from: catch_result_builder.h -#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED - -// #included from: catch_result_type.h -#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED - -namespace Catch { - - // ResultWas::OfType enum - struct ResultWas { enum OfType { - Unknown = -1, - Ok = 0, - Info = 1, - Warning = 2, - - FailureBit = 0x10, - - ExpressionFailed = FailureBit | 1, - ExplicitFailure = FailureBit | 2, - - Exception = 0x100 | FailureBit, - - ThrewException = Exception | 1, - DidntThrowException = Exception | 2, - - FatalErrorCondition = 0x200 | FailureBit - - }; }; - - inline bool isOk( ResultWas::OfType resultType ) { - return ( resultType & ResultWas::FailureBit ) == 0; - } - inline bool isJustInfo( int flags ) { - return flags == ResultWas::Info; - } - - // ResultDisposition::Flags enum - struct ResultDisposition { enum Flags { - Normal = 0x01, - - ContinueOnFailure = 0x02, // Failures fail test, but execution continues - FalseTest = 0x04, // Prefix expression with ! - SuppressFail = 0x08 // Failures are reported but do not fail the test - }; }; - - inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) { - return static_cast( static_cast( lhs ) | static_cast( rhs ) ); - } - - inline bool shouldContinueOnFailure( int flags ) { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; } - inline bool isFalseTest( int flags ) { return ( flags & ResultDisposition::FalseTest ) != 0; } - inline bool shouldSuppressFailure( int flags ) { return ( flags & ResultDisposition::SuppressFail ) != 0; } - -} // end namespace Catch - -// #included from: catch_assertionresult.h -#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED - -#include - -namespace Catch { - - struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison; - - struct DecomposedExpression - { - virtual ~DecomposedExpression() {} - virtual bool isBinaryExpression() const { - return false; - } - virtual void reconstructExpression( std::string& dest ) const = 0; - - // Only simple binary comparisons can be decomposed. - // If more complex check is required then wrap sub-expressions in parentheses. - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator % ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( T const& ); - template STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( T const& ); - - private: - DecomposedExpression& operator = (DecomposedExpression const&); - }; - - struct AssertionInfo - { - AssertionInfo() {} - AssertionInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - std::string const& _capturedExpression, - ResultDisposition::Flags _resultDisposition ); - - std::string macroName; - SourceLineInfo lineInfo; - std::string capturedExpression; - ResultDisposition::Flags resultDisposition; - }; - - struct AssertionResultData - { - AssertionResultData() : decomposedExpression( CATCH_NULL ) - , resultType( ResultWas::Unknown ) - , negated( false ) - , parenthesized( false ) {} - - void negate( bool parenthesize ) { - negated = !negated; - parenthesized = parenthesize; - if( resultType == ResultWas::Ok ) - resultType = ResultWas::ExpressionFailed; - else if( resultType == ResultWas::ExpressionFailed ) - resultType = ResultWas::Ok; - } - - std::string const& reconstructExpression() const { - if( decomposedExpression != CATCH_NULL ) { - decomposedExpression->reconstructExpression( reconstructedExpression ); - if( parenthesized ) { - reconstructedExpression.insert( 0, 1, '(' ); - reconstructedExpression.append( 1, ')' ); - } - if( negated ) { - reconstructedExpression.insert( 0, 1, '!' ); - } - decomposedExpression = CATCH_NULL; - } - return reconstructedExpression; - } - - mutable DecomposedExpression const* decomposedExpression; - mutable std::string reconstructedExpression; - std::string message; - ResultWas::OfType resultType; - bool negated; - bool parenthesized; - }; - - class AssertionResult { - public: - AssertionResult(); - AssertionResult( AssertionInfo const& info, AssertionResultData const& data ); - ~AssertionResult(); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - AssertionResult( AssertionResult const& ) = default; - AssertionResult( AssertionResult && ) = default; - AssertionResult& operator = ( AssertionResult const& ) = default; - AssertionResult& operator = ( AssertionResult && ) = default; -# endif - - bool isOk() const; - bool succeeded() const; - ResultWas::OfType getResultType() const; - bool hasExpression() const; - bool hasMessage() const; - std::string getExpression() const; - std::string getExpressionInMacro() const; - bool hasExpandedExpression() const; - std::string getExpandedExpression() const; - std::string getMessage() const; - SourceLineInfo getSourceInfo() const; - std::string getTestMacroName() const; - void discardDecomposedExpression() const; - void expandDecomposedExpression() const; - - protected: - AssertionInfo m_info; - AssertionResultData m_resultData; - }; - -} // end namespace Catch - -// #included from: catch_matchers.hpp -#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED - -namespace Catch { -namespace Matchers { - namespace Impl { - - template struct MatchAllOf; - template struct MatchAnyOf; - template struct MatchNotOf; - - class MatcherUntypedBase { - public: - std::string toString() const { - if( m_cachedToString.empty() ) - m_cachedToString = describe(); - return m_cachedToString; - } - - protected: - virtual std::string describe() const = 0; - mutable std::string m_cachedToString; - private: - MatcherUntypedBase& operator = ( MatcherUntypedBase const& ); - }; - - template - struct MatcherBase : MatcherUntypedBase { - - virtual bool match( ObjectT const& arg ) const = 0; - - MatchAllOf operator && ( MatcherBase const& other ) const; - MatchAnyOf operator || ( MatcherBase const& other ) const; - MatchNotOf operator ! () const; - }; - - template - struct MatchAllOf : MatcherBase { - virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE { - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if (!m_matchers[i]->match(arg)) - return false; - } - return true; - } - virtual std::string describe() const CATCH_OVERRIDE { - std::string description; - description.reserve( 4 + m_matchers.size()*32 ); - description += "( "; - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if( i != 0 ) - description += " and "; - description += m_matchers[i]->toString(); - } - description += " )"; - return description; - } - - MatchAllOf& operator && ( MatcherBase const& other ) { - m_matchers.push_back( &other ); - return *this; - } - - std::vector const*> m_matchers; - }; - template - struct MatchAnyOf : MatcherBase { - - virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE { - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if (m_matchers[i]->match(arg)) - return true; - } - return false; - } - virtual std::string describe() const CATCH_OVERRIDE { - std::string description; - description.reserve( 4 + m_matchers.size()*32 ); - description += "( "; - for( std::size_t i = 0; i < m_matchers.size(); ++i ) { - if( i != 0 ) - description += " or "; - description += m_matchers[i]->toString(); - } - description += " )"; - return description; - } - - MatchAnyOf& operator || ( MatcherBase const& other ) { - m_matchers.push_back( &other ); - return *this; - } - - std::vector const*> m_matchers; - }; - - template - struct MatchNotOf : MatcherBase { - - MatchNotOf( MatcherBase const& underlyingMatcher ) : m_underlyingMatcher( underlyingMatcher ) {} - - virtual bool match( ArgT const& arg ) const CATCH_OVERRIDE { - return !m_underlyingMatcher.match( arg ); - } - - virtual std::string describe() const CATCH_OVERRIDE { - return "not " + m_underlyingMatcher.toString(); - } - MatcherBase const& m_underlyingMatcher; - }; - - template - MatchAllOf MatcherBase::operator && ( MatcherBase const& other ) const { - return MatchAllOf() && *this && other; - } - template - MatchAnyOf MatcherBase::operator || ( MatcherBase const& other ) const { - return MatchAnyOf() || *this || other; - } - template - MatchNotOf MatcherBase::operator ! () const { - return MatchNotOf( *this ); - } - - } // namespace Impl - - // The following functions create the actual matcher objects. - // This allows the types to be inferred - // - deprecated: prefer ||, && and ! - template - inline Impl::MatchNotOf Not( Impl::MatcherBase const& underlyingMatcher ) { - return Impl::MatchNotOf( underlyingMatcher ); - } - template - inline Impl::MatchAllOf AllOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2 ) { - return Impl::MatchAllOf() && m1 && m2; - } - template - inline Impl::MatchAllOf AllOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2, Impl::MatcherBase const& m3 ) { - return Impl::MatchAllOf() && m1 && m2 && m3; - } - template - inline Impl::MatchAnyOf AnyOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2 ) { - return Impl::MatchAnyOf() || m1 || m2; - } - template - inline Impl::MatchAnyOf AnyOf( Impl::MatcherBase const& m1, Impl::MatcherBase const& m2, Impl::MatcherBase const& m3 ) { - return Impl::MatchAnyOf() || m1 || m2 || m3; - } - -} // namespace Matchers - -using namespace Matchers; -using Matchers::Impl::MatcherBase; - -} // namespace Catch - -namespace Catch { - - struct TestFailureException{}; - - template class ExpressionLhs; - - struct CopyableStream { - CopyableStream() {} - CopyableStream( CopyableStream const& other ) { - oss << other.oss.str(); - } - CopyableStream& operator=( CopyableStream const& other ) { - oss.str(std::string()); - oss << other.oss.str(); - return *this; - } - std::ostringstream oss; - }; - - class ResultBuilder : public DecomposedExpression { - public: - ResultBuilder( char const* macroName, - SourceLineInfo const& lineInfo, - char const* capturedExpression, - ResultDisposition::Flags resultDisposition, - char const* secondArg = "" ); - - template - ExpressionLhs operator <= ( T const& operand ); - ExpressionLhs operator <= ( bool value ); - - template - ResultBuilder& operator << ( T const& value ) { - m_stream.oss << value; - return *this; - } - - ResultBuilder& setResultType( ResultWas::OfType result ); - ResultBuilder& setResultType( bool result ); - - void endExpression( DecomposedExpression const& expr ); - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE; - - AssertionResult build() const; - AssertionResult build( DecomposedExpression const& expr ) const; - - void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal ); - void captureResult( ResultWas::OfType resultType ); - void captureExpression(); - void captureExpectedException( std::string const& expectedMessage ); - void captureExpectedException( Matchers::Impl::MatcherBase const& matcher ); - void handleResult( AssertionResult const& result ); - void react(); - bool shouldDebugBreak() const; - bool allowThrows() const; - - template - void captureMatch( ArgT const& arg, MatcherT const& matcher, char const* matcherString ); - - private: - AssertionInfo m_assertionInfo; - AssertionResultData m_data; - CopyableStream m_stream; - - bool m_shouldDebugBreak; - bool m_shouldThrow; - }; - -} // namespace Catch - -// Include after due to circular dependency: -// #included from: catch_expression_lhs.hpp -#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED - -// #included from: catch_evaluate.hpp -#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4389) // '==' : signed/unsigned mismatch -#pragma warning(disable:4312) // Converting int to T* using reinterpret_cast (issue on x64 platform) -#endif - -#include - -namespace Catch { -namespace Internal { - - enum Operator { - IsEqualTo, - IsNotEqualTo, - IsLessThan, - IsGreaterThan, - IsLessThanOrEqualTo, - IsGreaterThanOrEqualTo - }; - - template struct OperatorTraits { static const char* getName(){ return "*error*"; } }; - template<> struct OperatorTraits { static const char* getName(){ return "=="; } }; - template<> struct OperatorTraits { static const char* getName(){ return "!="; } }; - template<> struct OperatorTraits { static const char* getName(){ return "<"; } }; - template<> struct OperatorTraits { static const char* getName(){ return ">"; } }; - template<> struct OperatorTraits { static const char* getName(){ return "<="; } }; - template<> struct OperatorTraits{ static const char* getName(){ return ">="; } }; - - template - inline T& opCast(T const& t) { return const_cast(t); } - -// nullptr_t support based on pull request #154 from Konstantin Baumann -#ifdef CATCH_CONFIG_CPP11_NULLPTR - inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; } -#endif // CATCH_CONFIG_CPP11_NULLPTR - - // So the compare overloads can be operator agnostic we convey the operator as a template - // enum, which is used to specialise an Evaluator for doing the comparison. - template - class Evaluator{}; - - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs) { - return bool( opCast( lhs ) == opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) != opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) < opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) > opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) >= opCast( rhs ) ); - } - }; - template - struct Evaluator { - static bool evaluate( T1 const& lhs, T2 const& rhs ) { - return bool( opCast( lhs ) <= opCast( rhs ) ); - } - }; - - template - bool applyEvaluator( T1 const& lhs, T2 const& rhs ) { - return Evaluator::evaluate( lhs, rhs ); - } - - // This level of indirection allows us to specialise for integer types - // to avoid signed/ unsigned warnings - - // "base" overload - template - bool compare( T1 const& lhs, T2 const& rhs ) { - return Evaluator::evaluate( lhs, rhs ); - } - - // unsigned X to int - template bool compare( unsigned int lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned long lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned char lhs, int rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - - // unsigned X to long - template bool compare( unsigned int lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned long lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - template bool compare( unsigned char lhs, long rhs ) { - return applyEvaluator( lhs, static_cast( rhs ) ); - } - - // int to unsigned X - template bool compare( int lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( int lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( int lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // long to unsigned X - template bool compare( long lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // pointer to long (when comparing against NULL) - template bool compare( long lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, long rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } - - // pointer to int (when comparing against NULL) - template bool compare( int lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, int rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG - // long long to unsigned X - template bool compare( long long lhs, unsigned int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned long long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( long long lhs, unsigned char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // unsigned long long to X - template bool compare( unsigned long long lhs, int rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, long long rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - template bool compare( unsigned long long lhs, char rhs ) { - return applyEvaluator( static_cast( lhs ), rhs ); - } - - // pointer to long long (when comparing against NULL) - template bool compare( long long lhs, T* rhs ) { - return Evaluator::evaluate( reinterpret_cast( lhs ), rhs ); - } - template bool compare( T* lhs, long long rhs ) { - return Evaluator::evaluate( lhs, reinterpret_cast( rhs ) ); - } -#endif // CATCH_CONFIG_CPP11_LONG_LONG - -#ifdef CATCH_CONFIG_CPP11_NULLPTR - // pointer to nullptr_t (when comparing against nullptr) - template bool compare( std::nullptr_t, T* rhs ) { - return Evaluator::evaluate( nullptr, rhs ); - } - template bool compare( T* lhs, std::nullptr_t ) { - return Evaluator::evaluate( lhs, nullptr ); - } -#endif // CATCH_CONFIG_CPP11_NULLPTR - -} // end of namespace Internal -} // end of namespace Catch - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -// #included from: catch_tostring.h -#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED - -#include -#include -#include -#include -#include - -#ifdef __OBJC__ -// #included from: catch_objc_arc.hpp -#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED - -#import - -#ifdef __has_feature -#define CATCH_ARC_ENABLED __has_feature(objc_arc) -#else -#define CATCH_ARC_ENABLED 0 -#endif - -void arcSafeRelease( NSObject* obj ); -id performOptionalSelector( id obj, SEL sel ); - -#if !CATCH_ARC_ENABLED -inline void arcSafeRelease( NSObject* obj ) { - [obj release]; -} -inline id performOptionalSelector( id obj, SEL sel ) { - if( [obj respondsToSelector: sel] ) - return [obj performSelector: sel]; - return nil; -} -#define CATCH_UNSAFE_UNRETAINED -#define CATCH_ARC_STRONG -#else -inline void arcSafeRelease( NSObject* ){} -inline id performOptionalSelector( id obj, SEL sel ) { -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" -#endif - if( [obj respondsToSelector: sel] ) - return [obj performSelector: sel]; -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - return nil; -} -#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained -#define CATCH_ARC_STRONG __strong -#endif - -#endif - -#ifdef CATCH_CONFIG_CPP11_TUPLE -#include -#endif - -#ifdef CATCH_CONFIG_CPP11_IS_ENUM -#include -#endif - -namespace Catch { - -// Why we're here. -template -std::string toString( T const& value ); - -// Built in overloads - -std::string toString( std::string const& value ); -std::string toString( std::wstring const& value ); -std::string toString( const char* const value ); -std::string toString( char* const value ); -std::string toString( const wchar_t* const value ); -std::string toString( wchar_t* const value ); -std::string toString( int value ); -std::string toString( unsigned long value ); -std::string toString( unsigned int value ); -std::string toString( const double value ); -std::string toString( const float value ); -std::string toString( bool value ); -std::string toString( char value ); -std::string toString( signed char value ); -std::string toString( unsigned char value ); - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG -std::string toString( long long value ); -std::string toString( unsigned long long value ); -#endif - -#ifdef CATCH_CONFIG_CPP11_NULLPTR -std::string toString( std::nullptr_t ); -#endif - -#ifdef __OBJC__ - std::string toString( NSString const * const& nsstring ); - std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ); - std::string toString( NSObject* const& nsObject ); -#endif - -namespace Detail { - - extern const std::string unprintableString; - - struct BorgType { - template BorgType( T const& ); - }; - - struct TrueType { char sizer[1]; }; - struct FalseType { char sizer[2]; }; - - TrueType& testStreamable( std::ostream& ); - FalseType testStreamable( FalseType ); - - FalseType operator<<( std::ostream const&, BorgType const& ); - - template - struct IsStreamInsertable { - static std::ostream &s; - static T const&t; - enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) }; - }; - -#if defined(CATCH_CONFIG_CPP11_IS_ENUM) - template::value - > - struct EnumStringMaker - { - static std::string convert( T const& ) { return unprintableString; } - }; - - template - struct EnumStringMaker - { - static std::string convert( T const& v ) - { - return ::Catch::toString( - static_cast::type>(v) - ); - } - }; -#endif - template - struct StringMakerBase { -#if defined(CATCH_CONFIG_CPP11_IS_ENUM) - template - static std::string convert( T const& v ) - { - return EnumStringMaker::convert( v ); - } -#else - template - static std::string convert( T const& ) { return unprintableString; } -#endif - }; - - template<> - struct StringMakerBase { - template - static std::string convert( T const& _value ) { - std::ostringstream oss; - oss << _value; - return oss.str(); - } - }; - - std::string rawMemoryToString( const void *object, std::size_t size ); - - template - inline std::string rawMemoryToString( const T& object ) { - return rawMemoryToString( &object, sizeof(object) ); - } - -} // end namespace Detail - -template -struct StringMaker : - Detail::StringMakerBase::value> {}; - -template -struct StringMaker { - template - static std::string convert( U* p ) { - if( !p ) - return "NULL"; - else - return Detail::rawMemoryToString( p ); - } -}; - -template -struct StringMaker { - static std::string convert( R C::* p ) { - if( !p ) - return "NULL"; - else - return Detail::rawMemoryToString( p ); - } -}; - -namespace Detail { - template - std::string rangeToString( InputIterator first, InputIterator last ); -} - -//template -//struct StringMaker > { -// static std::string convert( std::vector const& v ) { -// return Detail::rangeToString( v.begin(), v.end() ); -// } -//}; - -template -std::string toString( std::vector const& v ) { - return Detail::rangeToString( v.begin(), v.end() ); -} - -#ifdef CATCH_CONFIG_CPP11_TUPLE - -// toString for tuples -namespace TupleDetail { - template< - typename Tuple, - std::size_t N = 0, - bool = (N < std::tuple_size::value) - > - struct ElementPrinter { - static void print( const Tuple& tuple, std::ostream& os ) - { - os << ( N ? ", " : " " ) - << Catch::toString(std::get(tuple)); - ElementPrinter::print(tuple,os); - } - }; - - template< - typename Tuple, - std::size_t N - > - struct ElementPrinter { - static void print( const Tuple&, std::ostream& ) {} - }; - -} - -template -struct StringMaker> { - - static std::string convert( const std::tuple& tuple ) - { - std::ostringstream os; - os << '{'; - TupleDetail::ElementPrinter>::print( tuple, os ); - os << " }"; - return os.str(); - } -}; -#endif // CATCH_CONFIG_CPP11_TUPLE - -namespace Detail { - template - std::string makeString( T const& value ) { - return StringMaker::convert( value ); - } -} // end namespace Detail - -/// \brief converts any type to a string -/// -/// The default template forwards on to ostringstream - except when an -/// ostringstream overload does not exist - in which case it attempts to detect -/// that and writes {?}. -/// Overload (not specialise) this template for custom typs that you don't want -/// to provide an ostream overload for. -template -std::string toString( T const& value ) { - return StringMaker::convert( value ); -} - - namespace Detail { - template - std::string rangeToString( InputIterator first, InputIterator last ) { - std::ostringstream oss; - oss << "{ "; - if( first != last ) { - oss << Catch::toString( *first ); - for( ++first ; first != last ; ++first ) - oss << ", " << Catch::toString( *first ); - } - oss << " }"; - return oss.str(); - } -} - -} // end namespace Catch - -namespace Catch { - -template -class BinaryExpression; - -template -class MatchExpression; - -// Wraps the LHS of an expression and overloads comparison operators -// for also capturing those and RHS (if any) -template -class ExpressionLhs : public DecomposedExpression { -public: - ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ), m_truthy(false) {} - - ExpressionLhs& operator = ( const ExpressionLhs& ); - - template - BinaryExpression - operator == ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator != ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator < ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator > ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator <= ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - template - BinaryExpression - operator >= ( RhsT const& rhs ) { - return captureExpression( rhs ); - } - - BinaryExpression operator == ( bool rhs ) { - return captureExpression( rhs ); - } - - BinaryExpression operator != ( bool rhs ) { - return captureExpression( rhs ); - } - - void endExpression() { - m_truthy = m_lhs ? true : false; - m_rb - .setResultType( m_truthy ) - .endExpression( *this ); - } - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE { - dest = Catch::toString( m_truthy ); - } - -private: - template - BinaryExpression captureExpression( RhsT& rhs ) const { - return BinaryExpression( m_rb, m_lhs, rhs ); - } - - template - BinaryExpression captureExpression( bool rhs ) const { - return BinaryExpression( m_rb, m_lhs, rhs ); - } - -private: - ResultBuilder& m_rb; - T m_lhs; - bool m_truthy; -}; - -template -class BinaryExpression : public DecomposedExpression { -public: - BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs ) - : m_rb( rb ), m_lhs( lhs ), m_rhs( rhs ) {} - - BinaryExpression& operator = ( BinaryExpression& ); - - void endExpression() const { - m_rb - .setResultType( Internal::compare( m_lhs, m_rhs ) ) - .endExpression( *this ); - } - - virtual bool isBinaryExpression() const CATCH_OVERRIDE { - return true; - } - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE { - std::string lhs = Catch::toString( m_lhs ); - std::string rhs = Catch::toString( m_rhs ); - char delim = lhs.size() + rhs.size() < 40 && - lhs.find('\n') == std::string::npos && - rhs.find('\n') == std::string::npos ? ' ' : '\n'; - dest.reserve( 7 + lhs.size() + rhs.size() ); - // 2 for spaces around operator - // 2 for operator - // 2 for parentheses (conditionally added later) - // 1 for negation (conditionally added later) - dest = lhs; - dest += delim; - dest += Internal::OperatorTraits::getName(); - dest += delim; - dest += rhs; - } - -private: - ResultBuilder& m_rb; - LhsT m_lhs; - RhsT m_rhs; -}; - -template -class MatchExpression : public DecomposedExpression { -public: - MatchExpression( ArgT arg, MatcherT matcher, char const* matcherString ) - : m_arg( arg ), m_matcher( matcher ), m_matcherString( matcherString ) {} - - virtual bool isBinaryExpression() const CATCH_OVERRIDE { - return true; - } - - virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE { - std::string matcherAsString = m_matcher.toString(); - dest = Catch::toString( m_arg ); - dest += ' '; - if( matcherAsString == Detail::unprintableString ) - dest += m_matcherString; - else - dest += matcherAsString; - } - -private: - ArgT m_arg; - MatcherT m_matcher; - char const* m_matcherString; -}; - -} // end namespace Catch - - -namespace Catch { - - template - inline ExpressionLhs ResultBuilder::operator <= ( T const& operand ) { - return ExpressionLhs( *this, operand ); - } - - inline ExpressionLhs ResultBuilder::operator <= ( bool value ) { - return ExpressionLhs( *this, value ); - } - - template - inline void ResultBuilder::captureMatch( ArgT const& arg, MatcherT const& matcher, - char const* matcherString ) { - MatchExpression expr( arg, matcher, matcherString ); - setResultType( matcher.match( arg ) ); - endExpression( expr ); - } - -} // namespace Catch - -// #included from: catch_message.h -#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED - -#include - -namespace Catch { - - struct MessageInfo { - MessageInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - ResultWas::OfType _type ); - - std::string macroName; - SourceLineInfo lineInfo; - ResultWas::OfType type; - std::string message; - unsigned int sequence; - - bool operator == ( MessageInfo const& other ) const { - return sequence == other.sequence; - } - bool operator < ( MessageInfo const& other ) const { - return sequence < other.sequence; - } - private: - static unsigned int globalCount; - }; - - struct MessageBuilder { - MessageBuilder( std::string const& macroName, - SourceLineInfo const& lineInfo, - ResultWas::OfType type ) - : m_info( macroName, lineInfo, type ) - {} - - template - MessageBuilder& operator << ( T const& value ) { - m_stream << value; - return *this; - } - - MessageInfo m_info; - std::ostringstream m_stream; - }; - - class ScopedMessage { - public: - ScopedMessage( MessageBuilder const& builder ); - ScopedMessage( ScopedMessage const& other ); - ~ScopedMessage(); - - MessageInfo m_info; - }; - -} // end namespace Catch - -// #included from: catch_interfaces_capture.h -#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED - -#include - -namespace Catch { - - class TestCase; - class AssertionResult; - struct AssertionInfo; - struct SectionInfo; - struct SectionEndInfo; - struct MessageInfo; - class ScopedMessageBuilder; - struct Counts; - - struct IResultCapture { - - virtual ~IResultCapture(); - - virtual void assertionEnded( AssertionResult const& result ) = 0; - virtual bool sectionStarted( SectionInfo const& sectionInfo, - Counts& assertions ) = 0; - virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0; - virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0; - virtual void pushScopedMessage( MessageInfo const& message ) = 0; - virtual void popScopedMessage( MessageInfo const& message ) = 0; - - virtual std::string getCurrentTestName() const = 0; - virtual const AssertionResult* getLastResult() const = 0; - - virtual void handleFatalErrorCondition( std::string const& message ) = 0; - }; - - IResultCapture& getResultCapture(); -} - -// #included from: catch_debugger.h -#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED - -// #included from: catch_platform.h -#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED - -#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# define CATCH_PLATFORM_MAC -#elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED) -# define CATCH_PLATFORM_IPHONE -#elif defined(linux) || defined(__linux) || defined(__linux__) -# define CATCH_PLATFORM_LINUX -#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) -# define CATCH_PLATFORM_WINDOWS -# if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX) -# define CATCH_DEFINES_NOMINMAX -# endif -# if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN) -# define CATCH_DEFINES_WIN32_LEAN_AND_MEAN -# endif -#endif - -#include - -namespace Catch{ - - bool isDebuggerActive(); - void writeToDebugConsole( std::string const& text ); -} - -#ifdef CATCH_PLATFORM_MAC - - // The following code snippet based on: - // http://cocoawithlove.com/2008/03/break-into-debugger.html - #if defined(__ppc64__) || defined(__ppc__) - #define CATCH_TRAP() \ - __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \ - : : : "memory","r0","r3","r4" ) - #else - #define CATCH_TRAP() __asm__("int $3\n" : : ) - #endif - -#elif defined(CATCH_PLATFORM_LINUX) - // If we can use inline assembler, do it because this allows us to break - // directly at the location of the failing check instead of breaking inside - // raise() called from it, i.e. one stack frame below. - #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64)) - #define CATCH_TRAP() asm volatile ("int $3") - #else // Fall back to the generic way. - #include - - #define CATCH_TRAP() raise(SIGTRAP) - #endif -#elif defined(_MSC_VER) - #define CATCH_TRAP() __debugbreak() -#elif defined(__MINGW32__) - extern "C" __declspec(dllimport) void __stdcall DebugBreak(); - #define CATCH_TRAP() DebugBreak() -#endif - -#ifdef CATCH_TRAP - #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { CATCH_TRAP(); } -#else - #define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue(); -#endif - -// #included from: catch_interfaces_runner.h -#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED - -namespace Catch { - class TestCase; - - struct IRunner { - virtual ~IRunner(); - virtual bool aborting() const = 0; - }; -} - -// #included from: catch_type_traits.hpp -#define TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) -#include -#endif - -namespace Catch { - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) - - template - using add_lvalue_reference = std::add_lvalue_reference; - - template - using add_const = std::add_const; - -#else - - template - struct add_const { - typedef const T type; - }; - - template - struct add_lvalue_reference { - typedef T& type; - }; - template - struct add_lvalue_reference { - typedef T& type; - }; - // No && overload, because that is C++11, in which case we have - // proper type_traits implementation from the standard library - -#endif - -} - -#if defined(CATCH_CONFIG_FAST_COMPILE) -/////////////////////////////////////////////////////////////////////////////// -// We can speedup compilation significantly by breaking into debugger lower in -// the callstack, because then we don't have to expand CATCH_BREAK_INTO_DEBUGGER -// macro in each assertion -#define INTERNAL_CATCH_REACT( resultBuilder ) \ - resultBuilder.react(); -#else -/////////////////////////////////////////////////////////////////////////////// -// In the event of a failure works out if the debugger needs to be invoked -// and/or an exception thrown and takes appropriate action. -// This needs to be done as a macro so the debugger will stop in the user -// source code rather than in Catch library code -#define INTERNAL_CATCH_REACT( resultBuilder ) \ - if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \ - resultBuilder.react(); -#endif - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ - try { \ - CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \ - ( __catchResult <= expr ).endExpression(); \ - CATCH_INTERNAL_UNSUPPRESS_PARENTHESES_WARNINGS \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::isTrue( false && static_cast( !!(expr) ) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look - // The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&. - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \ - INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \ - if( Catch::getResultCapture().getLastResult()->succeeded() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \ - INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \ - if( !Catch::getResultCapture().getLastResult()->succeeded() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \ - try { \ - static_cast(expr); \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \ - if( __catchResult.allowThrows() ) \ - try { \ - static_cast(expr); \ - __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \ - } \ - catch( ... ) { \ - __catchResult.captureExpectedException( matcher ); \ - } \ - else \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr ", " #exceptionType, resultDisposition ); \ - if( __catchResult.allowThrows() ) \ - try { \ - static_cast(expr); \ - __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \ - } \ - catch( Catch::add_const::type>::type ) { \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - } \ - catch( ... ) { \ - __catchResult.useActiveException( resultDisposition ); \ - } \ - else \ - __catchResult.captureResult( Catch::ResultWas::Ok ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -/////////////////////////////////////////////////////////////////////////////// -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \ - __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \ - __catchResult.captureResult( messageType ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) -#else - #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \ - __catchResult << log + ::Catch::StreamEndStop(); \ - __catchResult.captureResult( messageType ); \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) -#endif - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_INFO( log, macroName ) \ - Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log; - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \ - do { \ - Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \ - try { \ - __catchResult.captureMatch( arg, matcher, #matcher ); \ - } catch( ... ) { \ - __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \ - } \ - INTERNAL_CATCH_REACT( __catchResult ) \ - } while( Catch::alwaysFalse() ) - -// #included from: internal/catch_section.h -#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED - -// #included from: catch_section_info.h -#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED - -// #included from: catch_totals.hpp -#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED - -#include - -namespace Catch { - - struct Counts { - Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {} - - Counts operator - ( Counts const& other ) const { - Counts diff; - diff.passed = passed - other.passed; - diff.failed = failed - other.failed; - diff.failedButOk = failedButOk - other.failedButOk; - return diff; - } - Counts& operator += ( Counts const& other ) { - passed += other.passed; - failed += other.failed; - failedButOk += other.failedButOk; - return *this; - } - - std::size_t total() const { - return passed + failed + failedButOk; - } - bool allPassed() const { - return failed == 0 && failedButOk == 0; - } - bool allOk() const { - return failed == 0; - } - - std::size_t passed; - std::size_t failed; - std::size_t failedButOk; - }; - - struct Totals { - - Totals operator - ( Totals const& other ) const { - Totals diff; - diff.assertions = assertions - other.assertions; - diff.testCases = testCases - other.testCases; - return diff; - } - - Totals delta( Totals const& prevTotals ) const { - Totals diff = *this - prevTotals; - if( diff.assertions.failed > 0 ) - ++diff.testCases.failed; - else if( diff.assertions.failedButOk > 0 ) - ++diff.testCases.failedButOk; - else - ++diff.testCases.passed; - return diff; - } - - Totals& operator += ( Totals const& other ) { - assertions += other.assertions; - testCases += other.testCases; - return *this; - } - - Counts assertions; - Counts testCases; - }; -} - -#include - -namespace Catch { - - struct SectionInfo { - SectionInfo - ( SourceLineInfo const& _lineInfo, - std::string const& _name, - std::string const& _description = std::string() ); - - std::string name; - std::string description; - SourceLineInfo lineInfo; - }; - - struct SectionEndInfo { - SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds ) - : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds ) - {} - - SectionInfo sectionInfo; - Counts prevAssertions; - double durationInSeconds; - }; - -} // end namespace Catch - -// #included from: catch_timer.h -#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED - -#ifdef CATCH_PLATFORM_WINDOWS -typedef unsigned long long uint64_t; -#else -#include -#endif - -namespace Catch { - - class Timer { - public: - Timer() : m_ticks( 0 ) {} - void start(); - unsigned int getElapsedMicroseconds() const; - unsigned int getElapsedMilliseconds() const; - double getElapsedSeconds() const; - - private: - uint64_t m_ticks; - }; - -} // namespace Catch - -#include - -namespace Catch { - - class Section : NonCopyable { - public: - Section( SectionInfo const& info ); - ~Section(); - - // This indicates whether the section should be executed or not - operator bool() const; - - private: - SectionInfo m_info; - - std::string m_name; - Counts m_assertions; - bool m_sectionIncluded; - Timer m_timer; - }; - -} // end namespace Catch - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define INTERNAL_CATCH_SECTION( ... ) \ - if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) ) -#else - #define INTERNAL_CATCH_SECTION( name, desc ) \ - if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) ) -#endif - -// #included from: internal/catch_generators.hpp -#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED - -#include -#include -#include -#include - -namespace Catch { - -template -struct IGenerator { - virtual ~IGenerator() {} - virtual T getValue( std::size_t index ) const = 0; - virtual std::size_t size () const = 0; -}; - -template -class BetweenGenerator : public IGenerator { -public: - BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){} - - virtual T getValue( std::size_t index ) const { - return m_from+static_cast( index ); - } - - virtual std::size_t size() const { - return static_cast( 1+m_to-m_from ); - } - -private: - - T m_from; - T m_to; -}; - -template -class ValuesGenerator : public IGenerator { -public: - ValuesGenerator(){} - - void add( T value ) { - m_values.push_back( value ); - } - - virtual T getValue( std::size_t index ) const { - return m_values[index]; - } - - virtual std::size_t size() const { - return m_values.size(); - } - -private: - std::vector m_values; -}; - -template -class CompositeGenerator { -public: - CompositeGenerator() : m_totalSize( 0 ) {} - - // *** Move semantics, similar to auto_ptr *** - CompositeGenerator( CompositeGenerator& other ) - : m_fileInfo( other.m_fileInfo ), - m_totalSize( 0 ) - { - move( other ); - } - - CompositeGenerator& setFileInfo( const char* fileInfo ) { - m_fileInfo = fileInfo; - return *this; - } - - ~CompositeGenerator() { - deleteAll( m_composed ); - } - - operator T () const { - size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize ); - - typename std::vector*>::const_iterator it = m_composed.begin(); - typename std::vector*>::const_iterator itEnd = m_composed.end(); - for( size_t index = 0; it != itEnd; ++it ) - { - const IGenerator* generator = *it; - if( overallIndex >= index && overallIndex < index + generator->size() ) - { - return generator->getValue( overallIndex-index ); - } - index += generator->size(); - } - CATCH_INTERNAL_ERROR( "Indexed past end of generated range" ); - return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so - } - - void add( const IGenerator* generator ) { - m_totalSize += generator->size(); - m_composed.push_back( generator ); - } - - CompositeGenerator& then( CompositeGenerator& other ) { - move( other ); - return *this; - } - - CompositeGenerator& then( T value ) { - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( value ); - add( valuesGen ); - return *this; - } - -private: - - void move( CompositeGenerator& other ) { - std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) ); - m_totalSize += other.m_totalSize; - other.m_composed.clear(); - } - - std::vector*> m_composed; - std::string m_fileInfo; - size_t m_totalSize; -}; - -namespace Generators -{ - template - CompositeGenerator between( T from, T to ) { - CompositeGenerator generators; - generators.add( new BetweenGenerator( from, to ) ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2 ) { - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - generators.add( valuesGen ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2, T val3 ){ - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - valuesGen->add( val3 ); - generators.add( valuesGen ); - return generators; - } - - template - CompositeGenerator values( T val1, T val2, T val3, T val4 ) { - CompositeGenerator generators; - ValuesGenerator* valuesGen = new ValuesGenerator(); - valuesGen->add( val1 ); - valuesGen->add( val2 ); - valuesGen->add( val3 ); - valuesGen->add( val4 ); - generators.add( valuesGen ); - return generators; - } - -} // end namespace Generators - -using namespace Generators; - -} // end namespace Catch - -#define INTERNAL_CATCH_LINESTR2( line ) #line -#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line ) - -#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" ) - -// #included from: internal/catch_interfaces_exception.h -#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED - -#include -#include - -// #included from: catch_interfaces_registry_hub.h -#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED - -#include - -namespace Catch { - - class TestCase; - struct ITestCaseRegistry; - struct IExceptionTranslatorRegistry; - struct IExceptionTranslator; - struct IReporterRegistry; - struct IReporterFactory; - - struct IRegistryHub { - virtual ~IRegistryHub(); - - virtual IReporterRegistry const& getReporterRegistry() const = 0; - virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0; - virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0; - }; - - struct IMutableRegistryHub { - virtual ~IMutableRegistryHub(); - virtual void registerReporter( std::string const& name, Ptr const& factory ) = 0; - virtual void registerListener( Ptr const& factory ) = 0; - virtual void registerTest( TestCase const& testInfo ) = 0; - virtual void registerTranslator( const IExceptionTranslator* translator ) = 0; - }; - - IRegistryHub& getRegistryHub(); - IMutableRegistryHub& getMutableRegistryHub(); - void cleanUp(); - std::string translateActiveException(); - -} - -namespace Catch { - - typedef std::string(*exceptionTranslateFunction)(); - - struct IExceptionTranslator; - typedef std::vector ExceptionTranslators; - - struct IExceptionTranslator { - virtual ~IExceptionTranslator(); - virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0; - }; - - struct IExceptionTranslatorRegistry { - virtual ~IExceptionTranslatorRegistry(); - - virtual std::string translateActiveException() const = 0; - }; - - class ExceptionTranslatorRegistrar { - template - class ExceptionTranslator : public IExceptionTranslator { - public: - - ExceptionTranslator( std::string(*translateFunction)( T& ) ) - : m_translateFunction( translateFunction ) - {} - - virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE { - try { - if( it == itEnd ) - throw; - else - return (*it)->translate( it+1, itEnd ); - } - catch( T& ex ) { - return m_translateFunction( ex ); - } - } - - protected: - std::string(*m_translateFunction)( T& ); - }; - - public: - template - ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) { - getMutableRegistryHub().registerTranslator - ( new ExceptionTranslator( translateFunction ) ); - } - }; -} - -/////////////////////////////////////////////////////////////////////////////// -#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \ - static std::string translatorName( signature ); \ - namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); }\ - static std::string translatorName( signature ) - -#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature ) - -// #included from: internal/catch_approx.hpp -#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED - -#include -#include - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) -#include -#endif - -namespace Catch { -namespace Detail { - - class Approx { - public: - explicit Approx ( double value ) - : m_epsilon( std::numeric_limits::epsilon()*100 ), - m_margin( 0.0 ), - m_scale( 1.0 ), - m_value( value ) - {} - - Approx( Approx const& other ) - : m_epsilon( other.m_epsilon ), - m_margin( other.m_margin ), - m_scale( other.m_scale ), - m_value( other.m_value ) - {} - - static Approx custom() { - return Approx( 0 ); - } - - Approx operator()( double value ) { - Approx approx( value ); - approx.epsilon( m_epsilon ); - approx.margin( m_margin ); - approx.scale( m_scale ); - return approx; - } - -#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) - template ::value>::type> - friend bool operator == ( const T& lhs, Approx const& rhs ) { - // Thanks to Richard Harris for his help refining this formula - auto lhs_v = double(lhs); - bool relativeOK = std::fabs(lhs_v - rhs.m_value) < rhs.m_epsilon * (rhs.m_scale + (std::max)(std::fabs(lhs_v), std::fabs(rhs.m_value))); - if (relativeOK) { - return true; - } - return std::fabs(lhs_v - rhs.m_value) < rhs.m_margin; - } - - template ::value>::type> - friend bool operator == ( Approx const& lhs, const T& rhs ) { - return operator==( rhs, lhs ); - } - - template ::value>::type> - friend bool operator != ( T lhs, Approx const& rhs ) { - return !operator==( lhs, rhs ); - } - - template ::value>::type> - friend bool operator != ( Approx const& lhs, T rhs ) { - return !operator==( rhs, lhs ); - } - - template ::value>::type> - friend bool operator <= ( T lhs, Approx const& rhs ) - { - return double(lhs) < rhs.m_value || lhs == rhs; - } - - template ::value>::type> - friend bool operator <= ( Approx const& lhs, T rhs ) - { - return lhs.m_value < double(rhs) || lhs == rhs; - } - - template ::value>::type> - friend bool operator >= ( T lhs, Approx const& rhs ) - { - return double(lhs) > rhs.m_value || lhs == rhs; - } - - template ::value>::type> - friend bool operator >= ( Approx const& lhs, T rhs ) - { - return lhs.m_value > double(rhs) || lhs == rhs; - } -#else - friend bool operator == ( double lhs, Approx const& rhs ) { - // Thanks to Richard Harris for his help refining this formula - bool relativeOK = std::fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( std::fabs(lhs), std::fabs(rhs.m_value) ) ); - if (relativeOK) { - return true; - } - return std::fabs(lhs - rhs.m_value) < rhs.m_margin; - } - - friend bool operator == ( Approx const& lhs, double rhs ) { - return operator==( rhs, lhs ); - } - - friend bool operator != ( double lhs, Approx const& rhs ) { - return !operator==( lhs, rhs ); - } - - friend bool operator != ( Approx const& lhs, double rhs ) { - return !operator==( rhs, lhs ); - } - - friend bool operator <= ( double lhs, Approx const& rhs ) - { - return lhs < rhs.m_value || lhs == rhs; - } - - friend bool operator <= ( Approx const& lhs, double rhs ) - { - return lhs.m_value < rhs || lhs == rhs; - } - - friend bool operator >= ( double lhs, Approx const& rhs ) - { - return lhs > rhs.m_value || lhs == rhs; - } - - friend bool operator >= ( Approx const& lhs, double rhs ) - { - return lhs.m_value > rhs || lhs == rhs; - } -#endif - - Approx& epsilon( double newEpsilon ) { - m_epsilon = newEpsilon; - return *this; - } - - Approx& margin( double newMargin ) { - m_margin = newMargin; - return *this; - } - - Approx& scale( double newScale ) { - m_scale = newScale; - return *this; - } - - std::string toString() const { - std::ostringstream oss; - oss << "Approx( " << Catch::toString( m_value ) << " )"; - return oss.str(); - } - - private: - double m_epsilon; - double m_margin; - double m_scale; - double m_value; - }; -} - -template<> -inline std::string toString( Detail::Approx const& value ) { - return value.toString(); -} - -} // end namespace Catch - -// #included from: internal/catch_matchers_string.h -#define TWOBLUECUBES_CATCH_MATCHERS_STRING_H_INCLUDED - -namespace Catch { -namespace Matchers { - - namespace StdString { - - struct CasedString - { - CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity ); - std::string adjustString( std::string const& str ) const; - std::string caseSensitivitySuffix() const; - - CaseSensitive::Choice m_caseSensitivity; - std::string m_str; - }; - - struct StringMatcherBase : MatcherBase { - StringMatcherBase( std::string operation, CasedString const& comparator ); - virtual std::string describe() const CATCH_OVERRIDE; - - CasedString m_comparator; - std::string m_operation; - }; - - struct EqualsMatcher : StringMatcherBase { - EqualsMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - struct ContainsMatcher : StringMatcherBase { - ContainsMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - struct StartsWithMatcher : StringMatcherBase { - StartsWithMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - struct EndsWithMatcher : StringMatcherBase { - EndsWithMatcher( CasedString const& comparator ); - virtual bool match( std::string const& source ) const CATCH_OVERRIDE; - }; - - } // namespace StdString - - // The following functions create the actual matcher objects. - // This allows the types to be inferred - - StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ); - -} // namespace Matchers -} // namespace Catch - -// #included from: internal/catch_matchers_vector.h -#define TWOBLUECUBES_CATCH_MATCHERS_VECTOR_H_INCLUDED - -namespace Catch { -namespace Matchers { - - namespace Vector { - - template - struct ContainsElementMatcher : MatcherBase, T> { - - ContainsElementMatcher(T const &comparator) : m_comparator( comparator) {} - - bool match(std::vector const &v) const CATCH_OVERRIDE { - return std::find(v.begin(), v.end(), m_comparator) != v.end(); - } - - virtual std::string describe() const CATCH_OVERRIDE { - return "Contains: " + Catch::toString( m_comparator ); - } - - T const& m_comparator; - }; - - template - struct ContainsMatcher : MatcherBase, std::vector > { - - ContainsMatcher(std::vector const &comparator) : m_comparator( comparator ) {} - - bool match(std::vector const &v) const CATCH_OVERRIDE { - // !TBD: see note in EqualsMatcher - if (m_comparator.size() > v.size()) - return false; - for (size_t i = 0; i < m_comparator.size(); ++i) - if (std::find(v.begin(), v.end(), m_comparator[i]) == v.end()) - return false; - return true; - } - virtual std::string describe() const CATCH_OVERRIDE { - return "Contains: " + Catch::toString( m_comparator ); - } - - std::vector const& m_comparator; - }; - - template - struct EqualsMatcher : MatcherBase, std::vector > { - - EqualsMatcher(std::vector const &comparator) : m_comparator( comparator ) {} - - bool match(std::vector const &v) const CATCH_OVERRIDE { - // !TBD: This currently works if all elements can be compared using != - // - a more general approach would be via a compare template that defaults - // to using !=. but could be specialised for, e.g. std::vector etc - // - then just call that directly - if (m_comparator.size() != v.size()) - return false; - for (size_t i = 0; i < v.size(); ++i) - if (m_comparator[i] != v[i]) - return false; - return true; - } - virtual std::string describe() const CATCH_OVERRIDE { - return "Equals: " + Catch::toString( m_comparator ); - } - std::vector const& m_comparator; - }; - - } // namespace Vector - - // The following functions create the actual matcher objects. - // This allows the types to be inferred - - template - Vector::ContainsMatcher Contains( std::vector const& comparator ) { - return Vector::ContainsMatcher( comparator ); - } - - template - Vector::ContainsElementMatcher VectorContains( T const& comparator ) { - return Vector::ContainsElementMatcher( comparator ); - } - - template - Vector::EqualsMatcher Equals( std::vector const& comparator ) { - return Vector::EqualsMatcher( comparator ); - } - -} // namespace Matchers -} // namespace Catch - -// #included from: internal/catch_interfaces_tag_alias_registry.h -#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED - -// #included from: catch_tag_alias.h -#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED - -#include - -namespace Catch { - - struct TagAlias { - TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {} - - std::string tag; - SourceLineInfo lineInfo; - }; - - struct RegistrarForTagAliases { - RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); - }; - -} // end namespace Catch - -#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); } -// #included from: catch_option.hpp -#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED - -namespace Catch { - - // An optional type - template - class Option { - public: - Option() : nullableValue( CATCH_NULL ) {} - Option( T const& _value ) - : nullableValue( new( storage ) T( _value ) ) - {} - Option( Option const& _other ) - : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL ) - {} - - ~Option() { - reset(); - } - - Option& operator= ( Option const& _other ) { - if( &_other != this ) { - reset(); - if( _other ) - nullableValue = new( storage ) T( *_other ); - } - return *this; - } - Option& operator = ( T const& _value ) { - reset(); - nullableValue = new( storage ) T( _value ); - return *this; - } - - void reset() { - if( nullableValue ) - nullableValue->~T(); - nullableValue = CATCH_NULL; - } - - T& operator*() { return *nullableValue; } - T const& operator*() const { return *nullableValue; } - T* operator->() { return nullableValue; } - const T* operator->() const { return nullableValue; } - - T valueOr( T const& defaultValue ) const { - return nullableValue ? *nullableValue : defaultValue; - } - - bool some() const { return nullableValue != CATCH_NULL; } - bool none() const { return nullableValue == CATCH_NULL; } - - bool operator !() const { return nullableValue == CATCH_NULL; } - operator SafeBool::type() const { - return SafeBool::makeSafe( some() ); - } - - private: - T* nullableValue; - char storage[sizeof(T)]; - }; - -} // end namespace Catch - -namespace Catch { - - struct ITagAliasRegistry { - virtual ~ITagAliasRegistry(); - virtual Option find( std::string const& alias ) const = 0; - virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0; - - static ITagAliasRegistry const& get(); - }; - -} // end namespace Catch - -// These files are included here so the single_include script doesn't put them -// in the conditionally compiled sections -// #included from: internal/catch_test_case_info.h -#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED - -#include -#include - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -namespace Catch { - - struct ITestCase; - - struct TestCaseInfo { - enum SpecialProperties{ - None = 0, - IsHidden = 1 << 1, - ShouldFail = 1 << 2, - MayFail = 1 << 3, - Throws = 1 << 4, - NonPortable = 1 << 5 - }; - - TestCaseInfo( std::string const& _name, - std::string const& _className, - std::string const& _description, - std::set const& _tags, - SourceLineInfo const& _lineInfo ); - - TestCaseInfo( TestCaseInfo const& other ); - - friend void setTags( TestCaseInfo& testCaseInfo, std::set const& tags ); - - bool isHidden() const; - bool throws() const; - bool okToFail() const; - bool expectedToFail() const; - - std::string name; - std::string className; - std::string description; - std::set tags; - std::set lcaseTags; - std::string tagsAsString; - SourceLineInfo lineInfo; - SpecialProperties properties; - }; - - class TestCase : public TestCaseInfo { - public: - - TestCase( ITestCase* testCase, TestCaseInfo const& info ); - TestCase( TestCase const& other ); - - TestCase withName( std::string const& _newName ) const; - - void invoke() const; - - TestCaseInfo const& getTestCaseInfo() const; - - void swap( TestCase& other ); - bool operator == ( TestCase const& other ) const; - bool operator < ( TestCase const& other ) const; - TestCase& operator = ( TestCase const& other ); - - private: - Ptr test; - }; - - TestCase makeTestCase( ITestCase* testCase, - std::string const& className, - std::string const& name, - std::string const& description, - SourceLineInfo const& lineInfo ); -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - - -#ifdef __OBJC__ -// #included from: internal/catch_objc.hpp -#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED - -#import - -#include - -// NB. Any general catch headers included here must be included -// in catch.hpp first to make sure they are included by the single -// header for non obj-usage - -/////////////////////////////////////////////////////////////////////////////// -// This protocol is really only here for (self) documenting purposes, since -// all its methods are optional. -@protocol OcFixture - -@optional - --(void) setUp; --(void) tearDown; - -@end - -namespace Catch { - - class OcMethod : public SharedImpl { - - public: - OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {} - - virtual void invoke() const { - id obj = [[m_cls alloc] init]; - - performOptionalSelector( obj, @selector(setUp) ); - performOptionalSelector( obj, m_sel ); - performOptionalSelector( obj, @selector(tearDown) ); - - arcSafeRelease( obj ); - } - private: - virtual ~OcMethod() {} - - Class m_cls; - SEL m_sel; - }; - - namespace Detail{ - - inline std::string getAnnotation( Class cls, - std::string const& annotationName, - std::string const& testCaseName ) { - NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()]; - SEL sel = NSSelectorFromString( selStr ); - arcSafeRelease( selStr ); - id value = performOptionalSelector( cls, sel ); - if( value ) - return [(NSString*)value UTF8String]; - return ""; - } - } - - inline size_t registerTestMethods() { - size_t noTestMethods = 0; - int noClasses = objc_getClassList( CATCH_NULL, 0 ); - - Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses); - objc_getClassList( classes, noClasses ); - - for( int c = 0; c < noClasses; c++ ) { - Class cls = classes[c]; - { - u_int count; - Method* methods = class_copyMethodList( cls, &count ); - for( u_int m = 0; m < count ; m++ ) { - SEL selector = method_getName(methods[m]); - std::string methodName = sel_getName(selector); - if( startsWith( methodName, "Catch_TestCase_" ) ) { - std::string testCaseName = methodName.substr( 15 ); - std::string name = Detail::getAnnotation( cls, "Name", testCaseName ); - std::string desc = Detail::getAnnotation( cls, "Description", testCaseName ); - const char* className = class_getName( cls ); - - getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) ); - noTestMethods++; - } - } - free(methods); - } - } - return noTestMethods; - } - - namespace Matchers { - namespace Impl { - namespace NSStringMatchers { - - template - struct StringHolder : MatcherImpl{ - StringHolder( NSString* substr ) : m_substr( [substr copy] ){} - StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){} - StringHolder() { - arcSafeRelease( m_substr ); - } - - NSString* m_substr; - }; - - struct Equals : StringHolder { - Equals( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str isEqualToString:m_substr]; - } - - virtual std::string toString() const { - return "equals string: " + Catch::toString( m_substr ); - } - }; - - struct Contains : StringHolder { - Contains( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location != NSNotFound; - } - - virtual std::string toString() const { - return "contains string: " + Catch::toString( m_substr ); - } - }; - - struct StartsWith : StringHolder { - StartsWith( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location == 0; - } - - virtual std::string toString() const { - return "starts with: " + Catch::toString( m_substr ); - } - }; - struct EndsWith : StringHolder { - EndsWith( NSString* substr ) : StringHolder( substr ){} - - virtual bool match( ExpressionType const& str ) const { - return (str != nil || m_substr == nil ) && - [str rangeOfString:m_substr].location == [str length] - [m_substr length]; - } - - virtual std::string toString() const { - return "ends with: " + Catch::toString( m_substr ); - } - }; - - } // namespace NSStringMatchers - } // namespace Impl - - inline Impl::NSStringMatchers::Equals - Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); } - - inline Impl::NSStringMatchers::Contains - Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); } - - inline Impl::NSStringMatchers::StartsWith - StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); } - - inline Impl::NSStringMatchers::EndsWith - EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); } - - } // namespace Matchers - - using namespace Matchers; - -} // namespace Catch - -/////////////////////////////////////////////////////////////////////////////// -#define OC_TEST_CASE( name, desc )\ -+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \ -{\ -return @ name; \ -}\ -+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \ -{ \ -return @ desc; \ -} \ --(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test ) - -#endif - -#ifdef CATCH_IMPL - -// !TBD: Move the leak detector code into a separate header -#ifdef CATCH_CONFIG_WINDOWS_CRTDBG -#include -class LeakDetector { -public: - LeakDetector() { - int flag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); - flag |= _CRTDBG_LEAK_CHECK_DF; - flag |= _CRTDBG_ALLOC_MEM_DF; - _CrtSetDbgFlag(flag); - _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); - _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); - // Change this to leaking allocation's number to break there - _CrtSetBreakAlloc(-1); - } -}; -#else -class LeakDetector {}; -#endif - -LeakDetector leakDetector; - -// #included from: internal/catch_impl.hpp -#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED - -// Collect all the implementation files together here -// These are the equivalent of what would usually be cpp files - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wweak-vtables" -#endif - -// #included from: ../catch_session.hpp -#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED - -// #included from: internal/catch_commandline.hpp -#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED - -// #included from: catch_config.hpp -#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED - -// #included from: catch_test_spec_parser.hpp -#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -// #included from: catch_test_spec.hpp -#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wpadded" -#endif - -// #included from: catch_wildcard_pattern.hpp -#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED - -#include - -namespace Catch -{ - class WildcardPattern { - enum WildcardPosition { - NoWildcard = 0, - WildcardAtStart = 1, - WildcardAtEnd = 2, - WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd - }; - - public: - - WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity ) - : m_caseSensitivity( caseSensitivity ), - m_wildcard( NoWildcard ), - m_pattern( adjustCase( pattern ) ) - { - if( startsWith( m_pattern, '*' ) ) { - m_pattern = m_pattern.substr( 1 ); - m_wildcard = WildcardAtStart; - } - if( endsWith( m_pattern, '*' ) ) { - m_pattern = m_pattern.substr( 0, m_pattern.size()-1 ); - m_wildcard = static_cast( m_wildcard | WildcardAtEnd ); - } - } - virtual ~WildcardPattern(); - virtual bool matches( std::string const& str ) const { - switch( m_wildcard ) { - case NoWildcard: - return m_pattern == adjustCase( str ); - case WildcardAtStart: - return endsWith( adjustCase( str ), m_pattern ); - case WildcardAtEnd: - return startsWith( adjustCase( str ), m_pattern ); - case WildcardAtBothEnds: - return contains( adjustCase( str ), m_pattern ); - } - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunreachable-code" -#endif - throw std::logic_error( "Unknown enum" ); -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - } - private: - std::string adjustCase( std::string const& str ) const { - return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str; - } - CaseSensitive::Choice m_caseSensitivity; - WildcardPosition m_wildcard; - std::string m_pattern; - }; -} - -#include -#include - -namespace Catch { - - class TestSpec { - struct Pattern : SharedImpl<> { - virtual ~Pattern(); - virtual bool matches( TestCaseInfo const& testCase ) const = 0; - }; - class NamePattern : public Pattern { - public: - NamePattern( std::string const& name ) - : m_wildcardPattern( toLower( name ), CaseSensitive::No ) - {} - virtual ~NamePattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { - return m_wildcardPattern.matches( toLower( testCase.name ) ); - } - private: - WildcardPattern m_wildcardPattern; - }; - - class TagPattern : public Pattern { - public: - TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {} - virtual ~TagPattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { - return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end(); - } - private: - std::string m_tag; - }; - - class ExcludedPattern : public Pattern { - public: - ExcludedPattern( Ptr const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {} - virtual ~ExcludedPattern(); - virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); } - private: - Ptr m_underlyingPattern; - }; - - struct Filter { - std::vector > m_patterns; - - bool matches( TestCaseInfo const& testCase ) const { - // All patterns in a filter must match for the filter to be a match - for( std::vector >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) { - if( !(*it)->matches( testCase ) ) - return false; - } - return true; - } - }; - - public: - bool hasFilters() const { - return !m_filters.empty(); - } - bool matches( TestCaseInfo const& testCase ) const { - // A TestSpec matches if any filter matches - for( std::vector::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it ) - if( it->matches( testCase ) ) - return true; - return false; - } - - private: - std::vector m_filters; - - friend class TestSpecParser; - }; -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -namespace Catch { - - class TestSpecParser { - enum Mode{ None, Name, QuotedName, Tag, EscapedName }; - Mode m_mode; - bool m_exclusion; - std::size_t m_start, m_pos; - std::string m_arg; - std::vector m_escapeChars; - TestSpec::Filter m_currentFilter; - TestSpec m_testSpec; - ITagAliasRegistry const* m_tagAliases; - - public: - TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {} - - TestSpecParser& parse( std::string const& arg ) { - m_mode = None; - m_exclusion = false; - m_start = std::string::npos; - m_arg = m_tagAliases->expandAliases( arg ); - m_escapeChars.clear(); - for( m_pos = 0; m_pos < m_arg.size(); ++m_pos ) - visitChar( m_arg[m_pos] ); - if( m_mode == Name ) - addPattern(); - return *this; - } - TestSpec testSpec() { - addFilter(); - return m_testSpec; - } - private: - void visitChar( char c ) { - if( m_mode == None ) { - switch( c ) { - case ' ': return; - case '~': m_exclusion = true; return; - case '[': return startNewMode( Tag, ++m_pos ); - case '"': return startNewMode( QuotedName, ++m_pos ); - case '\\': return escape(); - default: startNewMode( Name, m_pos ); break; - } - } - if( m_mode == Name ) { - if( c == ',' ) { - addPattern(); - addFilter(); - } - else if( c == '[' ) { - if( subString() == "exclude:" ) - m_exclusion = true; - else - addPattern(); - startNewMode( Tag, ++m_pos ); - } - else if( c == '\\' ) - escape(); - } - else if( m_mode == EscapedName ) - m_mode = Name; - else if( m_mode == QuotedName && c == '"' ) - addPattern(); - else if( m_mode == Tag && c == ']' ) - addPattern(); - } - void startNewMode( Mode mode, std::size_t start ) { - m_mode = mode; - m_start = start; - } - void escape() { - if( m_mode == None ) - m_start = m_pos; - m_mode = EscapedName; - m_escapeChars.push_back( m_pos ); - } - std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); } - template - void addPattern() { - std::string token = subString(); - for( size_t i = 0; i < m_escapeChars.size(); ++i ) - token = token.substr( 0, m_escapeChars[i]-m_start-i ) + token.substr( m_escapeChars[i]-m_start-i+1 ); - m_escapeChars.clear(); - if( startsWith( token, "exclude:" ) ) { - m_exclusion = true; - token = token.substr( 8 ); - } - if( !token.empty() ) { - Ptr pattern = new T( token ); - if( m_exclusion ) - pattern = new TestSpec::ExcludedPattern( pattern ); - m_currentFilter.m_patterns.push_back( pattern ); - } - m_exclusion = false; - m_mode = None; - } - void addFilter() { - if( !m_currentFilter.m_patterns.empty() ) { - m_testSpec.m_filters.push_back( m_currentFilter ); - m_currentFilter = TestSpec::Filter(); - } - } - }; - inline TestSpec parseTestSpec( std::string const& arg ) { - return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec(); - } - -} // namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -// #included from: catch_interfaces_config.h -#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED - -#include -#include -#include - -namespace Catch { - - struct Verbosity { enum Level { - NoOutput = 0, - Quiet, - Normal - }; }; - - struct WarnAbout { enum What { - Nothing = 0x00, - NoAssertions = 0x01 - }; }; - - struct ShowDurations { enum OrNot { - DefaultForReporter, - Always, - Never - }; }; - struct RunTests { enum InWhatOrder { - InDeclarationOrder, - InLexicographicalOrder, - InRandomOrder - }; }; - struct UseColour { enum YesOrNo { - Auto, - Yes, - No - }; }; - - class TestSpec; - - struct IConfig : IShared { - - virtual ~IConfig(); - - virtual bool allowThrows() const = 0; - virtual std::ostream& stream() const = 0; - virtual std::string name() const = 0; - virtual bool includeSuccessfulResults() const = 0; - virtual bool shouldDebugBreak() const = 0; - virtual bool warnAboutMissingAssertions() const = 0; - virtual int abortAfter() const = 0; - virtual bool showInvisibles() const = 0; - virtual ShowDurations::OrNot showDurations() const = 0; - virtual TestSpec const& testSpec() const = 0; - virtual RunTests::InWhatOrder runOrder() const = 0; - virtual unsigned int rngSeed() const = 0; - virtual UseColour::YesOrNo useColour() const = 0; - virtual std::vector const& getSectionsToRun() const = 0; - - }; -} - -// #included from: catch_stream.h -#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED - -// #included from: catch_streambuf.h -#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED - -#include - -namespace Catch { - - class StreamBufBase : public std::streambuf { - public: - virtual ~StreamBufBase() CATCH_NOEXCEPT; - }; -} - -#include -#include -#include -#include - -namespace Catch { - - std::ostream& cout(); - std::ostream& cerr(); - - struct IStream { - virtual ~IStream() CATCH_NOEXCEPT; - virtual std::ostream& stream() const = 0; - }; - - class FileStream : public IStream { - mutable std::ofstream m_ofs; - public: - FileStream( std::string const& filename ); - virtual ~FileStream() CATCH_NOEXCEPT; - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; - - class CoutStream : public IStream { - mutable std::ostream m_os; - public: - CoutStream(); - virtual ~CoutStream() CATCH_NOEXCEPT; - - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; - - class DebugOutStream : public IStream { - CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf; - mutable std::ostream m_os; - public: - DebugOutStream(); - virtual ~DebugOutStream() CATCH_NOEXCEPT; - - public: // IStream - virtual std::ostream& stream() const CATCH_OVERRIDE; - }; -} - -#include -#include -#include -#include - -#ifndef CATCH_CONFIG_CONSOLE_WIDTH -#define CATCH_CONFIG_CONSOLE_WIDTH 80 -#endif - -namespace Catch { - - struct ConfigData { - - ConfigData() - : listTests( false ), - listTags( false ), - listReporters( false ), - listTestNamesOnly( false ), - showSuccessfulTests( false ), - shouldDebugBreak( false ), - noThrow( false ), - showHelp( false ), - showInvisibles( false ), - filenamesAsTags( false ), - abortAfter( -1 ), - rngSeed( 0 ), - verbosity( Verbosity::Normal ), - warnings( WarnAbout::Nothing ), - showDurations( ShowDurations::DefaultForReporter ), - runOrder( RunTests::InDeclarationOrder ), - useColour( UseColour::Auto ) - {} - - bool listTests; - bool listTags; - bool listReporters; - bool listTestNamesOnly; - - bool showSuccessfulTests; - bool shouldDebugBreak; - bool noThrow; - bool showHelp; - bool showInvisibles; - bool filenamesAsTags; - - int abortAfter; - unsigned int rngSeed; - - Verbosity::Level verbosity; - WarnAbout::What warnings; - ShowDurations::OrNot showDurations; - RunTests::InWhatOrder runOrder; - UseColour::YesOrNo useColour; - - std::string outputFilename; - std::string name; - std::string processName; - - std::vector reporterNames; - std::vector testsOrTags; - std::vector sectionsToRun; - }; - - class Config : public SharedImpl { - private: - Config( Config const& other ); - Config& operator = ( Config const& other ); - virtual void dummy(); - public: - - Config() - {} - - Config( ConfigData const& data ) - : m_data( data ), - m_stream( openStream() ) - { - if( !data.testsOrTags.empty() ) { - TestSpecParser parser( ITagAliasRegistry::get() ); - for( std::size_t i = 0; i < data.testsOrTags.size(); ++i ) - parser.parse( data.testsOrTags[i] ); - m_testSpec = parser.testSpec(); - } - } - - virtual ~Config() {} - - std::string const& getFilename() const { - return m_data.outputFilename ; - } - - bool listTests() const { return m_data.listTests; } - bool listTestNamesOnly() const { return m_data.listTestNamesOnly; } - bool listTags() const { return m_data.listTags; } - bool listReporters() const { return m_data.listReporters; } - - std::string getProcessName() const { return m_data.processName; } - - std::vector const& getReporterNames() const { return m_data.reporterNames; } - std::vector const& getSectionsToRun() const CATCH_OVERRIDE { return m_data.sectionsToRun; } - - virtual TestSpec const& testSpec() const CATCH_OVERRIDE { return m_testSpec; } - - bool showHelp() const { return m_data.showHelp; } - - // IConfig interface - virtual bool allowThrows() const CATCH_OVERRIDE { return !m_data.noThrow; } - virtual std::ostream& stream() const CATCH_OVERRIDE { return m_stream->stream(); } - virtual std::string name() const CATCH_OVERRIDE { return m_data.name.empty() ? m_data.processName : m_data.name; } - virtual bool includeSuccessfulResults() const CATCH_OVERRIDE { return m_data.showSuccessfulTests; } - virtual bool warnAboutMissingAssertions() const CATCH_OVERRIDE { return m_data.warnings & WarnAbout::NoAssertions; } - virtual ShowDurations::OrNot showDurations() const CATCH_OVERRIDE { return m_data.showDurations; } - virtual RunTests::InWhatOrder runOrder() const CATCH_OVERRIDE { return m_data.runOrder; } - virtual unsigned int rngSeed() const CATCH_OVERRIDE { return m_data.rngSeed; } - virtual UseColour::YesOrNo useColour() const CATCH_OVERRIDE { return m_data.useColour; } - virtual bool shouldDebugBreak() const CATCH_OVERRIDE { return m_data.shouldDebugBreak; } - virtual int abortAfter() const CATCH_OVERRIDE { return m_data.abortAfter; } - virtual bool showInvisibles() const CATCH_OVERRIDE { return m_data.showInvisibles; } - - private: - - IStream const* openStream() { - if( m_data.outputFilename.empty() ) - return new CoutStream(); - else if( m_data.outputFilename[0] == '%' ) { - if( m_data.outputFilename == "%debug" ) - return new DebugOutStream(); - else - throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename ); - } - else - return new FileStream( m_data.outputFilename ); - } - ConfigData m_data; - - CATCH_AUTO_PTR( IStream const ) m_stream; - TestSpec m_testSpec; - }; - -} // end namespace Catch - -// #included from: catch_clara.h -#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED - -// Use Catch's value for console width (store Clara's off to the side, if present) -#ifdef CLARA_CONFIG_CONSOLE_WIDTH -#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH -#undef CLARA_CONFIG_CONSOLE_WIDTH -#endif -#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH - -// Declare Clara inside the Catch namespace -#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch { -// #included from: ../external/clara.h - -// Version 0.0.2.4 - -// Only use header guard if we are not using an outer namespace -#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE) - -#ifndef STITCH_CLARA_OPEN_NAMESPACE -#define TWOBLUECUBES_CLARA_H_INCLUDED -#define STITCH_CLARA_OPEN_NAMESPACE -#define STITCH_CLARA_CLOSE_NAMESPACE -#else -#define STITCH_CLARA_CLOSE_NAMESPACE } -#endif - -#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE - -// ----------- #included from tbc_text_format.h ----------- - -// Only use header guard if we are not using an outer namespace -#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE) -#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -#define TBC_TEXT_FORMAT_H_INCLUDED -#endif - -#include -#include -#include -#include - -// Use optional outer namespace -#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE { -#endif - -namespace Tbc { - -#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH - const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - struct TextAttributes { - TextAttributes() - : initialIndent( std::string::npos ), - indent( 0 ), - width( consoleWidth-1 ), - tabChar( '\t' ) - {} - - TextAttributes& setInitialIndent( std::size_t _value ) { initialIndent = _value; return *this; } - TextAttributes& setIndent( std::size_t _value ) { indent = _value; return *this; } - TextAttributes& setWidth( std::size_t _value ) { width = _value; return *this; } - TextAttributes& setTabChar( char _value ) { tabChar = _value; return *this; } - - std::size_t initialIndent; // indent of first line, or npos - std::size_t indent; // indent of subsequent lines, or all if initialIndent is npos - std::size_t width; // maximum width of text, including indent. Longer text will wrap - char tabChar; // If this char is seen the indent is changed to current pos - }; - - class Text { - public: - Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() ) - : attr( _attr ) - { - std::string wrappableChars = " [({.,/|\\-"; - std::size_t indent = _attr.initialIndent != std::string::npos - ? _attr.initialIndent - : _attr.indent; - std::string remainder = _str; - - while( !remainder.empty() ) { - if( lines.size() >= 1000 ) { - lines.push_back( "... message truncated due to excessive size" ); - return; - } - std::size_t tabPos = std::string::npos; - std::size_t width = (std::min)( remainder.size(), _attr.width - indent ); - std::size_t pos = remainder.find_first_of( '\n' ); - if( pos <= width ) { - width = pos; - } - pos = remainder.find_last_of( _attr.tabChar, width ); - if( pos != std::string::npos ) { - tabPos = pos; - if( remainder[width] == '\n' ) - width--; - remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 ); - } - - if( width == remainder.size() ) { - spliceLine( indent, remainder, width ); - } - else if( remainder[width] == '\n' ) { - spliceLine( indent, remainder, width ); - if( width <= 1 || remainder.size() != 1 ) - remainder = remainder.substr( 1 ); - indent = _attr.indent; - } - else { - pos = remainder.find_last_of( wrappableChars, width ); - if( pos != std::string::npos && pos > 0 ) { - spliceLine( indent, remainder, pos ); - if( remainder[0] == ' ' ) - remainder = remainder.substr( 1 ); - } - else { - spliceLine( indent, remainder, width-1 ); - lines.back() += "-"; - } - if( lines.size() == 1 ) - indent = _attr.indent; - if( tabPos != std::string::npos ) - indent += tabPos; - } - } - } - - void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) { - lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) ); - _remainder = _remainder.substr( _pos ); - } - - typedef std::vector::const_iterator const_iterator; - - const_iterator begin() const { return lines.begin(); } - const_iterator end() const { return lines.end(); } - std::string const& last() const { return lines.back(); } - std::size_t size() const { return lines.size(); } - std::string const& operator[]( std::size_t _index ) const { return lines[_index]; } - std::string toString() const { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - - inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) { - for( Text::const_iterator it = _text.begin(), itEnd = _text.end(); - it != itEnd; ++it ) { - if( it != _text.begin() ) - _stream << "\n"; - _stream << *it; - } - return _stream; - } - - private: - std::string str; - TextAttributes attr; - std::vector lines; - }; - -} // end namespace Tbc - -#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE -} // end outer namespace -#endif - -#endif // TBC_TEXT_FORMAT_H_INCLUDED - -// ----------- end of #include from tbc_text_format.h ----------- -// ........... back in clara.h - -#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE - -// ----------- #included from clara_compilers.h ----------- - -#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED -#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED - -// Detect a number of compiler features - mostly C++11/14 conformance - by compiler -// The following features are defined: -// -// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported? -// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported? -// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods -// CLARA_CONFIG_CPP11_OVERRIDE : is override supported? -// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr) - -// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported? - -// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported? - -// In general each macro has a _NO_ form -// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature. -// Many features, at point of detection, define an _INTERNAL_ macro, so they -// can be combined, en-mass, with the _NO_ forms later. - -// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11 - -#ifdef __clang__ - -#if __has_feature(cxx_nullptr) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -#if __has_feature(cxx_noexcept) -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#endif - -#endif // __clang__ - -//////////////////////////////////////////////////////////////////////////////// -// GCC -#ifdef __GNUC__ - -#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -// - otherwise more recent versions define __cplusplus >= 201103L -// and will get picked up below - -#endif // __GNUC__ - -//////////////////////////////////////////////////////////////////////////////// -// Visual C++ -#ifdef _MSC_VER - -#if (_MSC_VER >= 1600) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015)) -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#endif - -#endif // _MSC_VER - -//////////////////////////////////////////////////////////////////////////////// -// C++ language feature support - -// catch all support for C++11 -#if defined(__cplusplus) && __cplusplus >= 201103L - -#define CLARA_CPP11_OR_GREATER - -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) -#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR -#endif - -#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT -#endif - -#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS -#endif - -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) -#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE -#endif -#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) -#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR -#endif - -#endif // __cplusplus >= 201103L - -// Now set the actual defines based on the above + anything the user has configured -#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_NULLPTR -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_NOEXCEPT -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_GENERATED_METHODS -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_OVERRIDE -#endif -#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11) -#define CLARA_CONFIG_CPP11_UNIQUE_PTR -#endif - -// noexcept support: -#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT) -#define CLARA_NOEXCEPT noexcept -# define CLARA_NOEXCEPT_IS(x) noexcept(x) -#else -#define CLARA_NOEXCEPT throw() -# define CLARA_NOEXCEPT_IS(x) -#endif - -// nullptr support -#ifdef CLARA_CONFIG_CPP11_NULLPTR -#define CLARA_NULL nullptr -#else -#define CLARA_NULL NULL -#endif - -// override support -#ifdef CLARA_CONFIG_CPP11_OVERRIDE -#define CLARA_OVERRIDE override -#else -#define CLARA_OVERRIDE -#endif - -// unique_ptr support -#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR -# define CLARA_AUTO_PTR( T ) std::unique_ptr -#else -# define CLARA_AUTO_PTR( T ) std::auto_ptr -#endif - -#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED - -// ----------- end of #include from clara_compilers.h ----------- -// ........... back in clara.h - -#include -#include -#include - -#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) -#define CLARA_PLATFORM_WINDOWS -#endif - -// Use optional outer namespace -#ifdef STITCH_CLARA_OPEN_NAMESPACE -STITCH_CLARA_OPEN_NAMESPACE -#endif - -namespace Clara { - - struct UnpositionalTag {}; - - extern UnpositionalTag _; - -#ifdef CLARA_CONFIG_MAIN - UnpositionalTag _; -#endif - - namespace Detail { - -#ifdef CLARA_CONSOLE_WIDTH - const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - using namespace Tbc; - - inline bool startsWith( std::string const& str, std::string const& prefix ) { - return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix; - } - - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - template struct RemoveConstRef{ typedef T type; }; - - template struct IsBool { static const bool value = false; }; - template<> struct IsBool { static const bool value = true; }; - - template - void convertInto( std::string const& _source, T& _dest ) { - std::stringstream ss; - ss << _source; - ss >> _dest; - if( ss.fail() ) - throw std::runtime_error( "Unable to convert " + _source + " to destination type" ); - } - inline void convertInto( std::string const& _source, std::string& _dest ) { - _dest = _source; - } - char toLowerCh(char c) { - return static_cast( ::tolower( c ) ); - } - inline void convertInto( std::string const& _source, bool& _dest ) { - std::string sourceLC = _source; - std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), toLowerCh ); - if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" ) - _dest = true; - else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" ) - _dest = false; - else - throw std::runtime_error( "Expected a boolean value but did not recognise:\n '" + _source + "'" ); - } - - template - struct IArgFunction { - virtual ~IArgFunction() {} -#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS - IArgFunction() = default; - IArgFunction( IArgFunction const& ) = default; -#endif - virtual void set( ConfigT& config, std::string const& value ) const = 0; - virtual bool takesArg() const = 0; - virtual IArgFunction* clone() const = 0; - }; - - template - class BoundArgFunction { - public: - BoundArgFunction() : functionObj( CLARA_NULL ) {} - BoundArgFunction( IArgFunction* _functionObj ) : functionObj( _functionObj ) {} - BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {} - BoundArgFunction& operator = ( BoundArgFunction const& other ) { - IArgFunction* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL; - delete functionObj; - functionObj = newFunctionObj; - return *this; - } - ~BoundArgFunction() { delete functionObj; } - - void set( ConfigT& config, std::string const& value ) const { - functionObj->set( config, value ); - } - bool takesArg() const { return functionObj->takesArg(); } - - bool isSet() const { - return functionObj != CLARA_NULL; - } - private: - IArgFunction* functionObj; - }; - - template - struct NullBinder : IArgFunction{ - virtual void set( C&, std::string const& ) const {} - virtual bool takesArg() const { return true; } - virtual IArgFunction* clone() const { return new NullBinder( *this ); } - }; - - template - struct BoundDataMember : IArgFunction{ - BoundDataMember( M C::* _member ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - convertInto( stringValue, p.*member ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundDataMember( *this ); } - M C::* member; - }; - template - struct BoundUnaryMethod : IArgFunction{ - BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - typename RemoveConstRef::type value; - convertInto( stringValue, value ); - (p.*member)( value ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundUnaryMethod( *this ); } - void (C::*member)( M ); - }; - template - struct BoundNullaryMethod : IArgFunction{ - BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {} - virtual void set( C& p, std::string const& stringValue ) const { - bool value; - convertInto( stringValue, value ); - if( value ) - (p.*member)(); - } - virtual bool takesArg() const { return false; } - virtual IArgFunction* clone() const { return new BoundNullaryMethod( *this ); } - void (C::*member)(); - }; - - template - struct BoundUnaryFunction : IArgFunction{ - BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {} - virtual void set( C& obj, std::string const& stringValue ) const { - bool value; - convertInto( stringValue, value ); - if( value ) - function( obj ); - } - virtual bool takesArg() const { return false; } - virtual IArgFunction* clone() const { return new BoundUnaryFunction( *this ); } - void (*function)( C& ); - }; - - template - struct BoundBinaryFunction : IArgFunction{ - BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {} - virtual void set( C& obj, std::string const& stringValue ) const { - typename RemoveConstRef::type value; - convertInto( stringValue, value ); - function( obj, value ); - } - virtual bool takesArg() const { return !IsBool::value; } - virtual IArgFunction* clone() const { return new BoundBinaryFunction( *this ); } - void (*function)( C&, T ); - }; - - } // namespace Detail - - inline std::vector argsToVector( int argc, char const* const* const argv ) { - std::vector args( static_cast( argc ) ); - for( std::size_t i = 0; i < static_cast( argc ); ++i ) - args[i] = argv[i]; - - return args; - } - - class Parser { - enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional }; - Mode mode; - std::size_t from; - bool inQuotes; - public: - - struct Token { - enum Type { Positional, ShortOpt, LongOpt }; - Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {} - Type type; - std::string data; - }; - - Parser() : mode( None ), from( 0 ), inQuotes( false ){} - - void parseIntoTokens( std::vector const& args, std::vector& tokens ) { - const std::string doubleDash = "--"; - for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i ) - parseIntoTokens( args[i], tokens); - } - - void parseIntoTokens( std::string const& arg, std::vector& tokens ) { - for( std::size_t i = 0; i <= arg.size(); ++i ) { - char c = arg[i]; - if( c == '"' ) - inQuotes = !inQuotes; - mode = handleMode( i, c, arg, tokens ); - } - } - Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector& tokens ) { - switch( mode ) { - case None: return handleNone( i, c ); - case MaybeShortOpt: return handleMaybeShortOpt( i, c ); - case ShortOpt: - case LongOpt: - case SlashOpt: return handleOpt( i, c, arg, tokens ); - case Positional: return handlePositional( i, c, arg, tokens ); - default: throw std::logic_error( "Unknown mode" ); - } - } - - Mode handleNone( std::size_t i, char c ) { - if( inQuotes ) { - from = i; - return Positional; - } - switch( c ) { - case '-': return MaybeShortOpt; -#ifdef CLARA_PLATFORM_WINDOWS - case '/': from = i+1; return SlashOpt; -#endif - default: from = i; return Positional; - } - } - Mode handleMaybeShortOpt( std::size_t i, char c ) { - switch( c ) { - case '-': from = i+1; return LongOpt; - default: from = i; return ShortOpt; - } - } - Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector& tokens ) { - if( std::string( ":=\0", 3 ).find( c ) == std::string::npos ) - return mode; - - std::string optName = arg.substr( from, i-from ); - if( mode == ShortOpt ) - for( std::size_t j = 0; j < optName.size(); ++j ) - tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) ); - else if( mode == SlashOpt && optName.size() == 1 ) - tokens.push_back( Token( Token::ShortOpt, optName ) ); - else - tokens.push_back( Token( Token::LongOpt, optName ) ); - return None; - } - Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector& tokens ) { - if( inQuotes || std::string( "\0", 1 ).find( c ) == std::string::npos ) - return mode; - - std::string data = arg.substr( from, i-from ); - tokens.push_back( Token( Token::Positional, data ) ); - return None; - } - }; - - template - struct CommonArgProperties { - CommonArgProperties() {} - CommonArgProperties( Detail::BoundArgFunction const& _boundField ) : boundField( _boundField ) {} - - Detail::BoundArgFunction boundField; - std::string description; - std::string detail; - std::string placeholder; // Only value if boundField takes an arg - - bool takesArg() const { - return !placeholder.empty(); - } - void validate() const { - if( !boundField.isSet() ) - throw std::logic_error( "option not bound" ); - } - }; - struct OptionArgProperties { - std::vector shortNames; - std::string longName; - - bool hasShortName( std::string const& shortName ) const { - return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end(); - } - bool hasLongName( std::string const& _longName ) const { - return _longName == longName; - } - }; - struct PositionalArgProperties { - PositionalArgProperties() : position( -1 ) {} - int position; // -1 means non-positional (floating) - - bool isFixedPositional() const { - return position != -1; - } - }; - - template - class CommandLine { - - struct Arg : CommonArgProperties, OptionArgProperties, PositionalArgProperties { - Arg() {} - Arg( Detail::BoundArgFunction const& _boundField ) : CommonArgProperties( _boundField ) {} - - using CommonArgProperties::placeholder; // !TBD - - std::string dbgName() const { - if( !longName.empty() ) - return "--" + longName; - if( !shortNames.empty() ) - return "-" + shortNames[0]; - return "positional args"; - } - std::string commands() const { - std::ostringstream oss; - bool first = true; - std::vector::const_iterator it = shortNames.begin(), itEnd = shortNames.end(); - for(; it != itEnd; ++it ) { - if( first ) - first = false; - else - oss << ", "; - oss << "-" << *it; - } - if( !longName.empty() ) { - if( !first ) - oss << ", "; - oss << "--" << longName; - } - if( !placeholder.empty() ) - oss << " <" << placeholder << ">"; - return oss.str(); - } - }; - - typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr; - - friend void addOptName( Arg& arg, std::string const& optName ) - { - if( optName.empty() ) - return; - if( Detail::startsWith( optName, "--" ) ) { - if( !arg.longName.empty() ) - throw std::logic_error( "Only one long opt may be specified. '" - + arg.longName - + "' already specified, now attempting to add '" - + optName + "'" ); - arg.longName = optName.substr( 2 ); - } - else if( Detail::startsWith( optName, "-" ) ) - arg.shortNames.push_back( optName.substr( 1 ) ); - else - throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" ); - } - friend void setPositionalArg( Arg& arg, int position ) - { - arg.position = position; - } - - class ArgBuilder { - public: - ArgBuilder( Arg* arg ) : m_arg( arg ) {} - - // Bind a non-boolean data member (requires placeholder string) - template - void bind( M C::* field, std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundDataMember( field ); - m_arg->placeholder = placeholder; - } - // Bind a boolean data member (no placeholder required) - template - void bind( bool C::* field ) { - m_arg->boundField = new Detail::BoundDataMember( field ); - } - - // Bind a method taking a single, non-boolean argument (requires a placeholder string) - template - void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundUnaryMethod( unaryMethod ); - m_arg->placeholder = placeholder; - } - - // Bind a method taking a single, boolean argument (no placeholder string required) - template - void bind( void (C::* unaryMethod)( bool ) ) { - m_arg->boundField = new Detail::BoundUnaryMethod( unaryMethod ); - } - - // Bind a method that takes no arguments (will be called if opt is present) - template - void bind( void (C::* nullaryMethod)() ) { - m_arg->boundField = new Detail::BoundNullaryMethod( nullaryMethod ); - } - - // Bind a free function taking a single argument - the object to operate on (no placeholder string required) - template - void bind( void (* unaryFunction)( C& ) ) { - m_arg->boundField = new Detail::BoundUnaryFunction( unaryFunction ); - } - - // Bind a free function taking a single argument - the object to operate on (requires a placeholder string) - template - void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) { - m_arg->boundField = new Detail::BoundBinaryFunction( binaryFunction ); - m_arg->placeholder = placeholder; - } - - ArgBuilder& describe( std::string const& description ) { - m_arg->description = description; - return *this; - } - ArgBuilder& detail( std::string const& detail ) { - m_arg->detail = detail; - return *this; - } - - protected: - Arg* m_arg; - }; - - class OptBuilder : public ArgBuilder { - public: - OptBuilder( Arg* arg ) : ArgBuilder( arg ) {} - OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {} - - OptBuilder& operator[]( std::string const& optName ) { - addOptName( *ArgBuilder::m_arg, optName ); - return *this; - } - }; - - public: - - CommandLine() - : m_boundProcessName( new Detail::NullBinder() ), - m_highestSpecifiedArgPosition( 0 ), - m_throwOnUnrecognisedTokens( false ) - {} - CommandLine( CommandLine const& other ) - : m_boundProcessName( other.m_boundProcessName ), - m_options ( other.m_options ), - m_positionalArgs( other.m_positionalArgs ), - m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ), - m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens ) - { - if( other.m_floatingArg.get() ) - m_floatingArg.reset( new Arg( *other.m_floatingArg ) ); - } - - CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) { - m_throwOnUnrecognisedTokens = shouldThrow; - return *this; - } - - OptBuilder operator[]( std::string const& optName ) { - m_options.push_back( Arg() ); - addOptName( m_options.back(), optName ); - OptBuilder builder( &m_options.back() ); - return builder; - } - - ArgBuilder operator[]( int position ) { - m_positionalArgs.insert( std::make_pair( position, Arg() ) ); - if( position > m_highestSpecifiedArgPosition ) - m_highestSpecifiedArgPosition = position; - setPositionalArg( m_positionalArgs[position], position ); - ArgBuilder builder( &m_positionalArgs[position] ); - return builder; - } - - // Invoke this with the _ instance - ArgBuilder operator[]( UnpositionalTag ) { - if( m_floatingArg.get() ) - throw std::logic_error( "Only one unpositional argument can be added" ); - m_floatingArg.reset( new Arg() ); - ArgBuilder builder( m_floatingArg.get() ); - return builder; - } - - template - void bindProcessName( M C::* field ) { - m_boundProcessName = new Detail::BoundDataMember( field ); - } - template - void bindProcessName( void (C::*_unaryMethod)( M ) ) { - m_boundProcessName = new Detail::BoundUnaryMethod( _unaryMethod ); - } - - void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const { - typename std::vector::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it; - std::size_t maxWidth = 0; - for( it = itBegin; it != itEnd; ++it ) - maxWidth = (std::max)( maxWidth, it->commands().size() ); - - for( it = itBegin; it != itEnd; ++it ) { - Detail::Text usage( it->commands(), Detail::TextAttributes() - .setWidth( maxWidth+indent ) - .setIndent( indent ) ); - Detail::Text desc( it->description, Detail::TextAttributes() - .setWidth( width - maxWidth - 3 ) ); - - for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) { - std::string usageCol = i < usage.size() ? usage[i] : ""; - os << usageCol; - - if( i < desc.size() && !desc[i].empty() ) - os << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' ) - << desc[i]; - os << "\n"; - } - } - } - std::string optUsage() const { - std::ostringstream oss; - optUsage( oss ); - return oss.str(); - } - - void argSynopsis( std::ostream& os ) const { - for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) { - if( i > 1 ) - os << " "; - typename std::map::const_iterator it = m_positionalArgs.find( i ); - if( it != m_positionalArgs.end() ) - os << "<" << it->second.placeholder << ">"; - else if( m_floatingArg.get() ) - os << "<" << m_floatingArg->placeholder << ">"; - else - throw std::logic_error( "non consecutive positional arguments with no floating args" ); - } - // !TBD No indication of mandatory args - if( m_floatingArg.get() ) { - if( m_highestSpecifiedArgPosition > 1 ) - os << " "; - os << "[<" << m_floatingArg->placeholder << "> ...]"; - } - } - std::string argSynopsis() const { - std::ostringstream oss; - argSynopsis( oss ); - return oss.str(); - } - - void usage( std::ostream& os, std::string const& procName ) const { - validate(); - os << "usage:\n " << procName << " "; - argSynopsis( os ); - if( !m_options.empty() ) { - os << " [options]\n\nwhere options are: \n"; - optUsage( os, 2 ); - } - os << "\n"; - } - std::string usage( std::string const& procName ) const { - std::ostringstream oss; - usage( oss, procName ); - return oss.str(); - } - - ConfigT parse( std::vector const& args ) const { - ConfigT config; - parseInto( args, config ); - return config; - } - - std::vector parseInto( std::vector const& args, ConfigT& config ) const { - std::string processName = args[0]; - std::size_t lastSlash = processName.find_last_of( "/\\" ); - if( lastSlash != std::string::npos ) - processName = processName.substr( lastSlash+1 ); - m_boundProcessName.set( config, processName ); - std::vector tokens; - Parser parser; - parser.parseIntoTokens( args, tokens ); - return populate( tokens, config ); - } - - std::vector populate( std::vector const& tokens, ConfigT& config ) const { - validate(); - std::vector unusedTokens = populateOptions( tokens, config ); - unusedTokens = populateFixedArgs( unusedTokens, config ); - unusedTokens = populateFloatingArgs( unusedTokens, config ); - return unusedTokens; - } - - std::vector populateOptions( std::vector const& tokens, ConfigT& config ) const { - std::vector unusedTokens; - std::vector errors; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - typename std::vector::const_iterator it = m_options.begin(), itEnd = m_options.end(); - for(; it != itEnd; ++it ) { - Arg const& arg = *it; - - try { - if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) || - ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) { - if( arg.takesArg() ) { - if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional ) - errors.push_back( "Expected argument to option: " + token.data ); - else - arg.boundField.set( config, tokens[++i].data ); - } - else { - arg.boundField.set( config, "true" ); - } - break; - } - } - catch( std::exception& ex ) { - errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" ); - } - } - if( it == itEnd ) { - if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens ) - unusedTokens.push_back( token ); - else if( errors.empty() && m_throwOnUnrecognisedTokens ) - errors.push_back( "unrecognised option: " + token.data ); - } - } - if( !errors.empty() ) { - std::ostringstream oss; - for( std::vector::const_iterator it = errors.begin(), itEnd = errors.end(); - it != itEnd; - ++it ) { - if( it != errors.begin() ) - oss << "\n"; - oss << *it; - } - throw std::runtime_error( oss.str() ); - } - return unusedTokens; - } - std::vector populateFixedArgs( std::vector const& tokens, ConfigT& config ) const { - std::vector unusedTokens; - int position = 1; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - typename std::map::const_iterator it = m_positionalArgs.find( position ); - if( it != m_positionalArgs.end() ) - it->second.boundField.set( config, token.data ); - else - unusedTokens.push_back( token ); - if( token.type == Parser::Token::Positional ) - position++; - } - return unusedTokens; - } - std::vector populateFloatingArgs( std::vector const& tokens, ConfigT& config ) const { - if( !m_floatingArg.get() ) - return tokens; - std::vector unusedTokens; - for( std::size_t i = 0; i < tokens.size(); ++i ) { - Parser::Token const& token = tokens[i]; - if( token.type == Parser::Token::Positional ) - m_floatingArg->boundField.set( config, token.data ); - else - unusedTokens.push_back( token ); - } - return unusedTokens; - } - - void validate() const - { - if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() ) - throw std::logic_error( "No options or arguments specified" ); - - for( typename std::vector::const_iterator it = m_options.begin(), - itEnd = m_options.end(); - it != itEnd; ++it ) - it->validate(); - } - - private: - Detail::BoundArgFunction m_boundProcessName; - std::vector m_options; - std::map m_positionalArgs; - ArgAutoPtr m_floatingArg; - int m_highestSpecifiedArgPosition; - bool m_throwOnUnrecognisedTokens; - }; - -} // end namespace Clara - -STITCH_CLARA_CLOSE_NAMESPACE -#undef STITCH_CLARA_OPEN_NAMESPACE -#undef STITCH_CLARA_CLOSE_NAMESPACE - -#endif // TWOBLUECUBES_CLARA_H_INCLUDED -#undef STITCH_CLARA_OPEN_NAMESPACE - -// Restore Clara's value for console width, if present -#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH -#endif - -#include -#include - -namespace Catch { - - inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; } - inline void abortAfterX( ConfigData& config, int x ) { - if( x < 1 ) - throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" ); - config.abortAfter = x; - } - inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); } - inline void addSectionToRun( ConfigData& config, std::string const& sectionName ) { config.sectionsToRun.push_back( sectionName ); } - inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); } - - inline void addWarning( ConfigData& config, std::string const& _warning ) { - if( _warning == "NoAssertions" ) - config.warnings = static_cast( config.warnings | WarnAbout::NoAssertions ); - else - throw std::runtime_error( "Unrecognised warning: '" + _warning + '\'' ); - } - inline void setOrder( ConfigData& config, std::string const& order ) { - if( startsWith( "declared", order ) ) - config.runOrder = RunTests::InDeclarationOrder; - else if( startsWith( "lexical", order ) ) - config.runOrder = RunTests::InLexicographicalOrder; - else if( startsWith( "random", order ) ) - config.runOrder = RunTests::InRandomOrder; - else - throw std::runtime_error( "Unrecognised ordering: '" + order + '\'' ); - } - inline void setRngSeed( ConfigData& config, std::string const& seed ) { - if( seed == "time" ) { - config.rngSeed = static_cast( std::time(0) ); - } - else { - std::stringstream ss; - ss << seed; - ss >> config.rngSeed; - if( ss.fail() ) - throw std::runtime_error( "Argument to --rng-seed should be the word 'time' or a number" ); - } - } - inline void setVerbosity( ConfigData& config, int level ) { - // !TBD: accept strings? - config.verbosity = static_cast( level ); - } - inline void setShowDurations( ConfigData& config, bool _showDurations ) { - config.showDurations = _showDurations - ? ShowDurations::Always - : ShowDurations::Never; - } - inline void setUseColour( ConfigData& config, std::string const& value ) { - std::string mode = toLower( value ); - - if( mode == "yes" ) - config.useColour = UseColour::Yes; - else if( mode == "no" ) - config.useColour = UseColour::No; - else if( mode == "auto" ) - config.useColour = UseColour::Auto; - else - throw std::runtime_error( "colour mode must be one of: auto, yes or no" ); - } - inline void forceColour( ConfigData& config ) { - config.useColour = UseColour::Yes; - } - inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) { - std::ifstream f( _filename.c_str() ); - if( !f.is_open() ) - throw std::domain_error( "Unable to load input file: " + _filename ); - - std::string line; - while( std::getline( f, line ) ) { - line = trim(line); - if( !line.empty() && !startsWith( line, '#' ) ) { - if( !startsWith( line, '"' ) ) - line = '"' + line + '"'; - addTestOrTags( config, line + ',' ); - } - } - } - - inline Clara::CommandLine makeCommandLineParser() { - - using namespace Clara; - CommandLine cli; - - cli.bindProcessName( &ConfigData::processName ); - - cli["-?"]["-h"]["--help"] - .describe( "display usage information" ) - .bind( &ConfigData::showHelp ); - - cli["-l"]["--list-tests"] - .describe( "list all/matching test cases" ) - .bind( &ConfigData::listTests ); - - cli["-t"]["--list-tags"] - .describe( "list all/matching tags" ) - .bind( &ConfigData::listTags ); - - cli["-s"]["--success"] - .describe( "include successful tests in output" ) - .bind( &ConfigData::showSuccessfulTests ); - - cli["-b"]["--break"] - .describe( "break into debugger on failure" ) - .bind( &ConfigData::shouldDebugBreak ); - - cli["-e"]["--nothrow"] - .describe( "skip exception tests" ) - .bind( &ConfigData::noThrow ); - - cli["-i"]["--invisibles"] - .describe( "show invisibles (tabs, newlines)" ) - .bind( &ConfigData::showInvisibles ); - - cli["-o"]["--out"] - .describe( "output filename" ) - .bind( &ConfigData::outputFilename, "filename" ); - - cli["-r"]["--reporter"] -// .placeholder( "name[:filename]" ) - .describe( "reporter to use (defaults to console)" ) - .bind( &addReporterName, "name" ); - - cli["-n"]["--name"] - .describe( "suite name" ) - .bind( &ConfigData::name, "name" ); - - cli["-a"]["--abort"] - .describe( "abort at first failure" ) - .bind( &abortAfterFirst ); - - cli["-x"]["--abortx"] - .describe( "abort after x failures" ) - .bind( &abortAfterX, "no. failures" ); - - cli["-w"]["--warn"] - .describe( "enable warnings" ) - .bind( &addWarning, "warning name" ); - -// - needs updating if reinstated -// cli.into( &setVerbosity ) -// .describe( "level of verbosity (0=no output)" ) -// .shortOpt( "v") -// .longOpt( "verbosity" ) -// .placeholder( "level" ); - - cli[_] - .describe( "which test or tests to use" ) - .bind( &addTestOrTags, "test name, pattern or tags" ); - - cli["-d"]["--durations"] - .describe( "show test durations" ) - .bind( &setShowDurations, "yes|no" ); - - cli["-f"]["--input-file"] - .describe( "load test names to run from a file" ) - .bind( &loadTestNamesFromFile, "filename" ); - - cli["-#"]["--filenames-as-tags"] - .describe( "adds a tag for the filename" ) - .bind( &ConfigData::filenamesAsTags ); - - cli["-c"]["--section"] - .describe( "specify section to run" ) - .bind( &addSectionToRun, "section name" ); - - // Less common commands which don't have a short form - cli["--list-test-names-only"] - .describe( "list all/matching test cases names only" ) - .bind( &ConfigData::listTestNamesOnly ); - - cli["--list-reporters"] - .describe( "list all reporters" ) - .bind( &ConfigData::listReporters ); - - cli["--order"] - .describe( "test case order (defaults to decl)" ) - .bind( &setOrder, "decl|lex|rand" ); - - cli["--rng-seed"] - .describe( "set a specific seed for random numbers" ) - .bind( &setRngSeed, "'time'|number" ); - - cli["--force-colour"] - .describe( "force colourised output (deprecated)" ) - .bind( &forceColour ); - - cli["--use-colour"] - .describe( "should output be colourised" ) - .bind( &setUseColour, "yes|no" ); - - return cli; - } - -} // end namespace Catch - -// #included from: internal/catch_list.hpp -#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED - -// #included from: catch_text.h -#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED - -#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH - -#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch -// #included from: ../external/tbc_text_format.h -// Only use header guard if we are not using an outer namespace -#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED -# ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -# define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -# endif -# else -# define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED -# endif -#endif -#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -#include -#include -#include - -// Use optional outer namespace -#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE { -#endif - -namespace Tbc { - -#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH - const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH; -#else - const unsigned int consoleWidth = 80; -#endif - - struct TextAttributes { - TextAttributes() - : initialIndent( std::string::npos ), - indent( 0 ), - width( consoleWidth-1 ) - {} - - TextAttributes& setInitialIndent( std::size_t _value ) { initialIndent = _value; return *this; } - TextAttributes& setIndent( std::size_t _value ) { indent = _value; return *this; } - TextAttributes& setWidth( std::size_t _value ) { width = _value; return *this; } - - std::size_t initialIndent; // indent of first line, or npos - std::size_t indent; // indent of subsequent lines, or all if initialIndent is npos - std::size_t width; // maximum width of text, including indent. Longer text will wrap - }; - - class Text { - public: - Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() ) - : attr( _attr ) - { - const std::string wrappableBeforeChars = "[({<\t"; - const std::string wrappableAfterChars = "])}>-,./|\\"; - const std::string wrappableInsteadOfChars = " \n\r"; - std::string indent = _attr.initialIndent != std::string::npos - ? std::string( _attr.initialIndent, ' ' ) - : std::string( _attr.indent, ' ' ); - - typedef std::string::const_iterator iterator; - iterator it = _str.begin(); - const iterator strEnd = _str.end(); - - while( it != strEnd ) { - - if( lines.size() >= 1000 ) { - lines.push_back( "... message truncated due to excessive size" ); - return; - } - - std::string suffix; - std::size_t width = (std::min)( static_cast( strEnd-it ), _attr.width-static_cast( indent.size() ) ); - iterator itEnd = it+width; - iterator itNext = _str.end(); - - iterator itNewLine = std::find( it, itEnd, '\n' ); - if( itNewLine != itEnd ) - itEnd = itNewLine; - - if( itEnd != strEnd ) { - bool foundWrapPoint = false; - iterator findIt = itEnd; - do { - if( wrappableAfterChars.find( *findIt ) != std::string::npos && findIt != itEnd ) { - itEnd = findIt+1; - itNext = findIt+1; - foundWrapPoint = true; - } - else if( findIt > it && wrappableBeforeChars.find( *findIt ) != std::string::npos ) { - itEnd = findIt; - itNext = findIt; - foundWrapPoint = true; - } - else if( wrappableInsteadOfChars.find( *findIt ) != std::string::npos ) { - itNext = findIt+1; - itEnd = findIt; - foundWrapPoint = true; - } - if( findIt == it ) - break; - else - --findIt; - } - while( !foundWrapPoint ); - - if( !foundWrapPoint ) { - // No good wrap char, so we'll break mid word and add a hyphen - --itEnd; - itNext = itEnd; - suffix = "-"; - } - else { - while( itEnd > it && wrappableInsteadOfChars.find( *(itEnd-1) ) != std::string::npos ) - --itEnd; - } - } - lines.push_back( indent + std::string( it, itEnd ) + suffix ); - - if( indent.size() != _attr.indent ) - indent = std::string( _attr.indent, ' ' ); - it = itNext; - } - } - - typedef std::vector::const_iterator const_iterator; - - const_iterator begin() const { return lines.begin(); } - const_iterator end() const { return lines.end(); } - std::string const& last() const { return lines.back(); } - std::size_t size() const { return lines.size(); } - std::string const& operator[]( std::size_t _index ) const { return lines[_index]; } - std::string toString() const { - std::ostringstream oss; - oss << *this; - return oss.str(); - } - - inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) { - for( Text::const_iterator it = _text.begin(), itEnd = _text.end(); - it != itEnd; ++it ) { - if( it != _text.begin() ) - _stream << "\n"; - _stream << *it; - } - return _stream; - } - - private: - std::string str; - TextAttributes attr; - std::vector lines; - }; - -} // end namespace Tbc - -#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE -} // end outer namespace -#endif - -#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED -#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE - -namespace Catch { - using Tbc::Text; - using Tbc::TextAttributes; -} - -// #included from: catch_console_colour.hpp -#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED - -namespace Catch { - - struct Colour { - enum Code { - None = 0, - - White, - Red, - Green, - Blue, - Cyan, - Yellow, - Grey, - - Bright = 0x10, - - BrightRed = Bright | Red, - BrightGreen = Bright | Green, - LightGrey = Bright | Grey, - BrightWhite = Bright | White, - - // By intention - FileName = LightGrey, - Warning = Yellow, - ResultError = BrightRed, - ResultSuccess = BrightGreen, - ResultExpectedFailure = Warning, - - Error = BrightRed, - Success = Green, - - OriginalExpression = Cyan, - ReconstructedExpression = Yellow, - - SecondaryText = LightGrey, - Headers = White - }; - - // Use constructed object for RAII guard - Colour( Code _colourCode ); - Colour( Colour const& other ); - ~Colour(); - - // Use static method for one-shot changes - static void use( Code _colourCode ); - - private: - bool m_moved; - }; - - inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; } - -} // end namespace Catch - -// #included from: catch_interfaces_reporter.h -#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED - -#include -#include -#include - -namespace Catch -{ - struct ReporterConfig { - explicit ReporterConfig( Ptr const& _fullConfig ) - : m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {} - - ReporterConfig( Ptr const& _fullConfig, std::ostream& _stream ) - : m_stream( &_stream ), m_fullConfig( _fullConfig ) {} - - std::ostream& stream() const { return *m_stream; } - Ptr fullConfig() const { return m_fullConfig; } - - private: - std::ostream* m_stream; - Ptr m_fullConfig; - }; - - struct ReporterPreferences { - ReporterPreferences() - : shouldRedirectStdOut( false ) - {} - - bool shouldRedirectStdOut; - }; - - template - struct LazyStat : Option { - LazyStat() : used( false ) {} - LazyStat& operator=( T const& _value ) { - Option::operator=( _value ); - used = false; - return *this; - } - void reset() { - Option::reset(); - used = false; - } - bool used; - }; - - struct TestRunInfo { - TestRunInfo( std::string const& _name ) : name( _name ) {} - std::string name; - }; - struct GroupInfo { - GroupInfo( std::string const& _name, - std::size_t _groupIndex, - std::size_t _groupsCount ) - : name( _name ), - groupIndex( _groupIndex ), - groupsCounts( _groupsCount ) - {} - - std::string name; - std::size_t groupIndex; - std::size_t groupsCounts; - }; - - struct AssertionStats { - AssertionStats( AssertionResult const& _assertionResult, - std::vector const& _infoMessages, - Totals const& _totals ) - : assertionResult( _assertionResult ), - infoMessages( _infoMessages ), - totals( _totals ) - { - if( assertionResult.hasMessage() ) { - // Copy message into messages list. - // !TBD This should have been done earlier, somewhere - MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() ); - builder << assertionResult.getMessage(); - builder.m_info.message = builder.m_stream.str(); - - infoMessages.push_back( builder.m_info ); - } - } - virtual ~AssertionStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - AssertionStats( AssertionStats const& ) = default; - AssertionStats( AssertionStats && ) = default; - AssertionStats& operator = ( AssertionStats const& ) = default; - AssertionStats& operator = ( AssertionStats && ) = default; -# endif - - AssertionResult assertionResult; - std::vector infoMessages; - Totals totals; - }; - - struct SectionStats { - SectionStats( SectionInfo const& _sectionInfo, - Counts const& _assertions, - double _durationInSeconds, - bool _missingAssertions ) - : sectionInfo( _sectionInfo ), - assertions( _assertions ), - durationInSeconds( _durationInSeconds ), - missingAssertions( _missingAssertions ) - {} - virtual ~SectionStats(); -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - SectionStats( SectionStats const& ) = default; - SectionStats( SectionStats && ) = default; - SectionStats& operator = ( SectionStats const& ) = default; - SectionStats& operator = ( SectionStats && ) = default; -# endif - - SectionInfo sectionInfo; - Counts assertions; - double durationInSeconds; - bool missingAssertions; - }; - - struct TestCaseStats { - TestCaseStats( TestCaseInfo const& _testInfo, - Totals const& _totals, - std::string const& _stdOut, - std::string const& _stdErr, - bool _aborting ) - : testInfo( _testInfo ), - totals( _totals ), - stdOut( _stdOut ), - stdErr( _stdErr ), - aborting( _aborting ) - {} - virtual ~TestCaseStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestCaseStats( TestCaseStats const& ) = default; - TestCaseStats( TestCaseStats && ) = default; - TestCaseStats& operator = ( TestCaseStats const& ) = default; - TestCaseStats& operator = ( TestCaseStats && ) = default; -# endif - - TestCaseInfo testInfo; - Totals totals; - std::string stdOut; - std::string stdErr; - bool aborting; - }; - - struct TestGroupStats { - TestGroupStats( GroupInfo const& _groupInfo, - Totals const& _totals, - bool _aborting ) - : groupInfo( _groupInfo ), - totals( _totals ), - aborting( _aborting ) - {} - TestGroupStats( GroupInfo const& _groupInfo ) - : groupInfo( _groupInfo ), - aborting( false ) - {} - virtual ~TestGroupStats(); - -# ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestGroupStats( TestGroupStats const& ) = default; - TestGroupStats( TestGroupStats && ) = default; - TestGroupStats& operator = ( TestGroupStats const& ) = default; - TestGroupStats& operator = ( TestGroupStats && ) = default; -# endif - - GroupInfo groupInfo; - Totals totals; - bool aborting; - }; - - struct TestRunStats { - TestRunStats( TestRunInfo const& _runInfo, - Totals const& _totals, - bool _aborting ) - : runInfo( _runInfo ), - totals( _totals ), - aborting( _aborting ) - {} - virtual ~TestRunStats(); - -# ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS - TestRunStats( TestRunStats const& _other ) - : runInfo( _other.runInfo ), - totals( _other.totals ), - aborting( _other.aborting ) - {} -# else - TestRunStats( TestRunStats const& ) = default; - TestRunStats( TestRunStats && ) = default; - TestRunStats& operator = ( TestRunStats const& ) = default; - TestRunStats& operator = ( TestRunStats && ) = default; -# endif - - TestRunInfo runInfo; - Totals totals; - bool aborting; - }; - - class MultipleReporters; - - struct IStreamingReporter : IShared { - virtual ~IStreamingReporter(); - - // Implementing class must also provide the following static method: - // static std::string getDescription(); - - virtual ReporterPreferences getPreferences() const = 0; - - virtual void noMatchingTestCases( std::string const& spec ) = 0; - - virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0; - virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0; - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0; - virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0; - - virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0; - - // The return value indicates if the messages buffer should be cleared: - virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0; - - virtual void sectionEnded( SectionStats const& sectionStats ) = 0; - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0; - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0; - virtual void testRunEnded( TestRunStats const& testRunStats ) = 0; - - virtual void skipTest( TestCaseInfo const& testInfo ) = 0; - - virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; } - }; - - struct IReporterFactory : IShared { - virtual ~IReporterFactory(); - virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0; - virtual std::string getDescription() const = 0; - }; - - struct IReporterRegistry { - typedef std::map > FactoryMap; - typedef std::vector > Listeners; - - virtual ~IReporterRegistry(); - virtual IStreamingReporter* create( std::string const& name, Ptr const& config ) const = 0; - virtual FactoryMap const& getFactories() const = 0; - virtual Listeners const& getListeners() const = 0; - }; - - Ptr addReporter( Ptr const& existingReporter, Ptr const& additionalReporter ); - -} - -#include -#include - -namespace Catch { - - inline std::size_t listTests( Config const& config ) { - - TestSpec testSpec = config.testSpec(); - if( config.testSpec().hasFilters() ) - Catch::cout() << "Matching test cases:\n"; - else { - Catch::cout() << "All available test cases:\n"; - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - } - - std::size_t matchedTests = 0; - TextAttributes nameAttr, tagsAttr; - nameAttr.setInitialIndent( 2 ).setIndent( 4 ); - tagsAttr.setIndent( 6 ); - - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - matchedTests++; - TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); - Colour::Code colour = testCaseInfo.isHidden() - ? Colour::SecondaryText - : Colour::None; - Colour colourGuard( colour ); - - Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl; - if( !testCaseInfo.tags.empty() ) - Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl; - } - - if( !config.testSpec().hasFilters() ) - Catch::cout() << pluralise( matchedTests, "test case" ) << '\n' << std::endl; - else - Catch::cout() << pluralise( matchedTests, "matching test case" ) << '\n' << std::endl; - return matchedTests; - } - - inline std::size_t listTestsNamesOnly( Config const& config ) { - TestSpec testSpec = config.testSpec(); - if( !config.testSpec().hasFilters() ) - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - std::size_t matchedTests = 0; - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - matchedTests++; - TestCaseInfo const& testCaseInfo = it->getTestCaseInfo(); - if( startsWith( testCaseInfo.name, '#' ) ) - Catch::cout() << '"' << testCaseInfo.name << '"' << std::endl; - else - Catch::cout() << testCaseInfo.name << std::endl; - } - return matchedTests; - } - - struct TagInfo { - TagInfo() : count ( 0 ) {} - void add( std::string const& spelling ) { - ++count; - spellings.insert( spelling ); - } - std::string all() const { - std::string out; - for( std::set::const_iterator it = spellings.begin(), itEnd = spellings.end(); - it != itEnd; - ++it ) - out += "[" + *it + "]"; - return out; - } - std::set spellings; - std::size_t count; - }; - - inline std::size_t listTags( Config const& config ) { - TestSpec testSpec = config.testSpec(); - if( config.testSpec().hasFilters() ) - Catch::cout() << "Tags for matching test cases:\n"; - else { - Catch::cout() << "All available tags:\n"; - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec(); - } - - std::map tagCounts; - - std::vector matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config ); - for( std::vector::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end(); - it != itEnd; - ++it ) { - for( std::set::const_iterator tagIt = it->getTestCaseInfo().tags.begin(), - tagItEnd = it->getTestCaseInfo().tags.end(); - tagIt != tagItEnd; - ++tagIt ) { - std::string tagName = *tagIt; - std::string lcaseTagName = toLower( tagName ); - std::map::iterator countIt = tagCounts.find( lcaseTagName ); - if( countIt == tagCounts.end() ) - countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first; - countIt->second.add( tagName ); - } - } - - for( std::map::const_iterator countIt = tagCounts.begin(), - countItEnd = tagCounts.end(); - countIt != countItEnd; - ++countIt ) { - std::ostringstream oss; - oss << " " << std::setw(2) << countIt->second.count << " "; - Text wrapper( countIt->second.all(), TextAttributes() - .setInitialIndent( 0 ) - .setIndent( oss.str().size() ) - .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) ); - Catch::cout() << oss.str() << wrapper << '\n'; - } - Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl; - return tagCounts.size(); - } - - inline std::size_t listReporters( Config const& /*config*/ ) { - Catch::cout() << "Available reporters:\n"; - IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories(); - IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it; - std::size_t maxNameLen = 0; - for(it = itBegin; it != itEnd; ++it ) - maxNameLen = (std::max)( maxNameLen, it->first.size() ); - - for(it = itBegin; it != itEnd; ++it ) { - Text wrapper( it->second->getDescription(), TextAttributes() - .setInitialIndent( 0 ) - .setIndent( 7+maxNameLen ) - .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) ); - Catch::cout() << " " - << it->first - << ':' - << std::string( maxNameLen - it->first.size() + 2, ' ' ) - << wrapper << '\n'; - } - Catch::cout() << std::endl; - return factories.size(); - } - - inline Option list( Config const& config ) { - Option listedCount; - if( config.listTests() ) - listedCount = listedCount.valueOr(0) + listTests( config ); - if( config.listTestNamesOnly() ) - listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config ); - if( config.listTags() ) - listedCount = listedCount.valueOr(0) + listTags( config ); - if( config.listReporters() ) - listedCount = listedCount.valueOr(0) + listReporters( config ); - return listedCount; - } - -} // end namespace Catch - -// #included from: internal/catch_run_context.hpp -#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED - -// #included from: catch_test_case_tracker.hpp -#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED - -#include -#include -#include -#include -#include -#include - -namespace Catch { -namespace TestCaseTracking { - - struct NameAndLocation { - std::string name; - SourceLineInfo location; - - NameAndLocation( std::string const& _name, SourceLineInfo const& _location ) - : name( _name ), - location( _location ) - {} - }; - - struct ITracker : SharedImpl<> { - virtual ~ITracker(); - - // static queries - virtual NameAndLocation const& nameAndLocation() const = 0; - - // dynamic queries - virtual bool isComplete() const = 0; // Successfully completed or failed - virtual bool isSuccessfullyCompleted() const = 0; - virtual bool isOpen() const = 0; // Started but not complete - virtual bool hasChildren() const = 0; - - virtual ITracker& parent() = 0; - - // actions - virtual void close() = 0; // Successfully complete - virtual void fail() = 0; - virtual void markAsNeedingAnotherRun() = 0; - - virtual void addChild( Ptr const& child ) = 0; - virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) = 0; - virtual void openChild() = 0; - - // Debug/ checking - virtual bool isSectionTracker() const = 0; - virtual bool isIndexTracker() const = 0; - }; - - class TrackerContext { - - enum RunState { - NotStarted, - Executing, - CompletedCycle - }; - - Ptr m_rootTracker; - ITracker* m_currentTracker; - RunState m_runState; - - public: - - static TrackerContext& instance() { - static TrackerContext s_instance; - return s_instance; - } - - TrackerContext() - : m_currentTracker( CATCH_NULL ), - m_runState( NotStarted ) - {} - - ITracker& startRun(); - - void endRun() { - m_rootTracker.reset(); - m_currentTracker = CATCH_NULL; - m_runState = NotStarted; - } - - void startCycle() { - m_currentTracker = m_rootTracker.get(); - m_runState = Executing; - } - void completeCycle() { - m_runState = CompletedCycle; - } - - bool completedCycle() const { - return m_runState == CompletedCycle; - } - ITracker& currentTracker() { - return *m_currentTracker; - } - void setCurrentTracker( ITracker* tracker ) { - m_currentTracker = tracker; - } - }; - - class TrackerBase : public ITracker { - protected: - enum CycleState { - NotStarted, - Executing, - ExecutingChildren, - NeedsAnotherRun, - CompletedSuccessfully, - Failed - }; - class TrackerHasName { - NameAndLocation m_nameAndLocation; - public: - TrackerHasName( NameAndLocation const& nameAndLocation ) : m_nameAndLocation( nameAndLocation ) {} - bool operator ()( Ptr const& tracker ) { - return - tracker->nameAndLocation().name == m_nameAndLocation.name && - tracker->nameAndLocation().location == m_nameAndLocation.location; - } - }; - typedef std::vector > Children; - NameAndLocation m_nameAndLocation; - TrackerContext& m_ctx; - ITracker* m_parent; - Children m_children; - CycleState m_runState; - public: - TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ) - : m_nameAndLocation( nameAndLocation ), - m_ctx( ctx ), - m_parent( parent ), - m_runState( NotStarted ) - {} - virtual ~TrackerBase(); - - virtual NameAndLocation const& nameAndLocation() const CATCH_OVERRIDE { - return m_nameAndLocation; - } - virtual bool isComplete() const CATCH_OVERRIDE { - return m_runState == CompletedSuccessfully || m_runState == Failed; - } - virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE { - return m_runState == CompletedSuccessfully; - } - virtual bool isOpen() const CATCH_OVERRIDE { - return m_runState != NotStarted && !isComplete(); - } - virtual bool hasChildren() const CATCH_OVERRIDE { - return !m_children.empty(); - } - - virtual void addChild( Ptr const& child ) CATCH_OVERRIDE { - m_children.push_back( child ); - } - - virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) CATCH_OVERRIDE { - Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( nameAndLocation ) ); - return( it != m_children.end() ) - ? it->get() - : CATCH_NULL; - } - virtual ITracker& parent() CATCH_OVERRIDE { - assert( m_parent ); // Should always be non-null except for root - return *m_parent; - } - - virtual void openChild() CATCH_OVERRIDE { - if( m_runState != ExecutingChildren ) { - m_runState = ExecutingChildren; - if( m_parent ) - m_parent->openChild(); - } - } - - virtual bool isSectionTracker() const CATCH_OVERRIDE { return false; } - virtual bool isIndexTracker() const CATCH_OVERRIDE { return false; } - - void open() { - m_runState = Executing; - moveToThis(); - if( m_parent ) - m_parent->openChild(); - } - - virtual void close() CATCH_OVERRIDE { - - // Close any still open children (e.g. generators) - while( &m_ctx.currentTracker() != this ) - m_ctx.currentTracker().close(); - - switch( m_runState ) { - case NotStarted: - case CompletedSuccessfully: - case Failed: - throw std::logic_error( "Illogical state" ); - - case NeedsAnotherRun: - break;; - - case Executing: - m_runState = CompletedSuccessfully; - break; - case ExecutingChildren: - if( m_children.empty() || m_children.back()->isComplete() ) - m_runState = CompletedSuccessfully; - break; - - default: - throw std::logic_error( "Unexpected state" ); - } - moveToParent(); - m_ctx.completeCycle(); - } - virtual void fail() CATCH_OVERRIDE { - m_runState = Failed; - if( m_parent ) - m_parent->markAsNeedingAnotherRun(); - moveToParent(); - m_ctx.completeCycle(); - } - virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE { - m_runState = NeedsAnotherRun; - } - private: - void moveToParent() { - assert( m_parent ); - m_ctx.setCurrentTracker( m_parent ); - } - void moveToThis() { - m_ctx.setCurrentTracker( this ); - } - }; - - class SectionTracker : public TrackerBase { - std::vector m_filters; - public: - SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent ) - : TrackerBase( nameAndLocation, ctx, parent ) - { - if( parent ) { - while( !parent->isSectionTracker() ) - parent = &parent->parent(); - - SectionTracker& parentSection = static_cast( *parent ); - addNextFilters( parentSection.m_filters ); - } - } - virtual ~SectionTracker(); - - virtual bool isSectionTracker() const CATCH_OVERRIDE { return true; } - - static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) { - SectionTracker* section = CATCH_NULL; - - ITracker& currentTracker = ctx.currentTracker(); - if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) { - assert( childTracker ); - assert( childTracker->isSectionTracker() ); - section = static_cast( childTracker ); - } - else { - section = new SectionTracker( nameAndLocation, ctx, ¤tTracker ); - currentTracker.addChild( section ); - } - if( !ctx.completedCycle() ) - section->tryOpen(); - return *section; - } - - void tryOpen() { - if( !isComplete() && (m_filters.empty() || m_filters[0].empty() || m_filters[0] == m_nameAndLocation.name ) ) - open(); - } - - void addInitialFilters( std::vector const& filters ) { - if( !filters.empty() ) { - m_filters.push_back(""); // Root - should never be consulted - m_filters.push_back(""); // Test Case - not a section filter - std::copy( filters.begin(), filters.end(), std::back_inserter( m_filters ) ); - } - } - void addNextFilters( std::vector const& filters ) { - if( filters.size() > 1 ) - std::copy( filters.begin()+1, filters.end(), std::back_inserter( m_filters ) ); - } - }; - - class IndexTracker : public TrackerBase { - int m_size; - int m_index; - public: - IndexTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent, int size ) - : TrackerBase( nameAndLocation, ctx, parent ), - m_size( size ), - m_index( -1 ) - {} - virtual ~IndexTracker(); - - virtual bool isIndexTracker() const CATCH_OVERRIDE { return true; } - - static IndexTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation, int size ) { - IndexTracker* tracker = CATCH_NULL; - - ITracker& currentTracker = ctx.currentTracker(); - if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) { - assert( childTracker ); - assert( childTracker->isIndexTracker() ); - tracker = static_cast( childTracker ); - } - else { - tracker = new IndexTracker( nameAndLocation, ctx, ¤tTracker, size ); - currentTracker.addChild( tracker ); - } - - if( !ctx.completedCycle() && !tracker->isComplete() ) { - if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun ) - tracker->moveNext(); - tracker->open(); - } - - return *tracker; - } - - int index() const { return m_index; } - - void moveNext() { - m_index++; - m_children.clear(); - } - - virtual void close() CATCH_OVERRIDE { - TrackerBase::close(); - if( m_runState == CompletedSuccessfully && m_index < m_size-1 ) - m_runState = Executing; - } - }; - - inline ITracker& TrackerContext::startRun() { - m_rootTracker = new SectionTracker( NameAndLocation( "{root}", CATCH_INTERNAL_LINEINFO ), *this, CATCH_NULL ); - m_currentTracker = CATCH_NULL; - m_runState = Executing; - return *m_rootTracker; - } - -} // namespace TestCaseTracking - -using TestCaseTracking::ITracker; -using TestCaseTracking::TrackerContext; -using TestCaseTracking::SectionTracker; -using TestCaseTracking::IndexTracker; - -} // namespace Catch - -// #included from: catch_fatal_condition.hpp -#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED - -namespace Catch { - - // Report the error condition - inline void reportFatal( std::string const& message ) { - IContext& context = Catch::getCurrentContext(); - IResultCapture* resultCapture = context.getResultCapture(); - resultCapture->handleFatalErrorCondition( message ); - } - -} // namespace Catch - -#if defined ( CATCH_PLATFORM_WINDOWS ) ///////////////////////////////////////// -// #included from: catch_windows_h_proxy.h - -#define TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED - -#ifdef CATCH_DEFINES_NOMINMAX -# define NOMINMAX -#endif -#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -#endif - -#ifdef __AFXDLL -#include -#else -#include -#endif - -#ifdef CATCH_DEFINES_NOMINMAX -# undef NOMINMAX -#endif -#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN -# undef WIN32_LEAN_AND_MEAN -#endif - - -# if !defined ( CATCH_CONFIG_WINDOWS_SEH ) - -namespace Catch { - struct FatalConditionHandler { - void reset() {} - }; -} - -# else // CATCH_CONFIG_WINDOWS_SEH is defined - -namespace Catch { - - struct SignalDefs { DWORD id; const char* name; }; - extern SignalDefs signalDefs[]; - // There is no 1-1 mapping between signals and windows exceptions. - // Windows can easily distinguish between SO and SigSegV, - // but SigInt, SigTerm, etc are handled differently. - SignalDefs signalDefs[] = { - { EXCEPTION_ILLEGAL_INSTRUCTION, "SIGILL - Illegal instruction signal" }, - { EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow" }, - { EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal" }, - { EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error" }, - }; - - struct FatalConditionHandler { - - static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) { - for (int i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) { - if (ExceptionInfo->ExceptionRecord->ExceptionCode == signalDefs[i].id) { - reset(); - reportFatal(signalDefs[i].name); - } - } - // If its not an exception we care about, pass it along. - // This stops us from eating debugger breaks etc. - return EXCEPTION_CONTINUE_SEARCH; - } - - FatalConditionHandler() { - isSet = true; - // 32k seems enough for Catch to handle stack overflow, - // but the value was found experimentally, so there is no strong guarantee - guaranteeSize = 32 * 1024; - exceptionHandlerHandle = CATCH_NULL; - // Register as first handler in current chain - exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException); - // Pass in guarantee size to be filled - SetThreadStackGuarantee(&guaranteeSize); - } - - static void reset() { - if (isSet) { - // Unregister handler and restore the old guarantee - RemoveVectoredExceptionHandler(exceptionHandlerHandle); - SetThreadStackGuarantee(&guaranteeSize); - exceptionHandlerHandle = CATCH_NULL; - isSet = false; - } - } - - ~FatalConditionHandler() { - reset(); - } - private: - static bool isSet; - static ULONG guaranteeSize; - static PVOID exceptionHandlerHandle; - }; - - bool FatalConditionHandler::isSet = false; - ULONG FatalConditionHandler::guaranteeSize = 0; - PVOID FatalConditionHandler::exceptionHandlerHandle = CATCH_NULL; - -} // namespace Catch - -# endif // CATCH_CONFIG_WINDOWS_SEH - -#else // Not Windows - assumed to be POSIX compatible ////////////////////////// - -# if !defined(CATCH_CONFIG_POSIX_SIGNALS) - -namespace Catch { - struct FatalConditionHandler { - void reset() {} - }; -} - -# else // CATCH_CONFIG_POSIX_SIGNALS is defined - -#include - -namespace Catch { - - struct SignalDefs { - int id; - const char* name; - }; - extern SignalDefs signalDefs[]; - SignalDefs signalDefs[] = { - { SIGINT, "SIGINT - Terminal interrupt signal" }, - { SIGILL, "SIGILL - Illegal instruction signal" }, - { SIGFPE, "SIGFPE - Floating point error signal" }, - { SIGSEGV, "SIGSEGV - Segmentation violation signal" }, - { SIGTERM, "SIGTERM - Termination request signal" }, - { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" } - }; - - struct FatalConditionHandler { - - static bool isSet; - static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)]; - static stack_t oldSigStack; - static char altStackMem[SIGSTKSZ]; - - static void handleSignal( int sig ) { - std::string name = ""; - for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) { - SignalDefs &def = signalDefs[i]; - if (sig == def.id) { - name = def.name; - break; - } - } - reset(); - reportFatal(name); - raise( sig ); - } - - FatalConditionHandler() { - isSet = true; - stack_t sigStack; - sigStack.ss_sp = altStackMem; - sigStack.ss_size = SIGSTKSZ; - sigStack.ss_flags = 0; - sigaltstack(&sigStack, &oldSigStack); - struct sigaction sa = { 0 }; - - sa.sa_handler = handleSignal; - sa.sa_flags = SA_ONSTACK; - for (std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i) { - sigaction(signalDefs[i].id, &sa, &oldSigActions[i]); - } - } - - ~FatalConditionHandler() { - reset(); - } - static void reset() { - if( isSet ) { - // Set signals back to previous values -- hopefully nobody overwrote them in the meantime - for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) { - sigaction(signalDefs[i].id, &oldSigActions[i], CATCH_NULL); - } - // Return the old stack - sigaltstack(&oldSigStack, CATCH_NULL); - isSet = false; - } - } - }; - - bool FatalConditionHandler::isSet = false; - struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {}; - stack_t FatalConditionHandler::oldSigStack = {}; - char FatalConditionHandler::altStackMem[SIGSTKSZ] = {}; - -} // namespace Catch - -# endif // CATCH_CONFIG_POSIX_SIGNALS - -#endif // not Windows - -#include -#include - -namespace Catch { - - class StreamRedirect { - - public: - StreamRedirect( std::ostream& stream, std::string& targetString ) - : m_stream( stream ), - m_prevBuf( stream.rdbuf() ), - m_targetString( targetString ) - { - stream.rdbuf( m_oss.rdbuf() ); - } - - ~StreamRedirect() { - m_targetString += m_oss.str(); - m_stream.rdbuf( m_prevBuf ); - } - - private: - std::ostream& m_stream; - std::streambuf* m_prevBuf; - std::ostringstream m_oss; - std::string& m_targetString; - }; - - /////////////////////////////////////////////////////////////////////////// - - class RunContext : public IResultCapture, public IRunner { - - RunContext( RunContext const& ); - void operator =( RunContext const& ); - - public: - - explicit RunContext( Ptr const& _config, Ptr const& reporter ) - : m_runInfo( _config->name() ), - m_context( getCurrentMutableContext() ), - m_activeTestCase( CATCH_NULL ), - m_config( _config ), - m_reporter( reporter ) - { - m_context.setRunner( this ); - m_context.setConfig( m_config ); - m_context.setResultCapture( this ); - m_reporter->testRunStarting( m_runInfo ); - } - - virtual ~RunContext() { - m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) ); - } - - void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) { - m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) ); - } - void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) { - m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) ); - } - - Totals runTest( TestCase const& testCase ) { - Totals prevTotals = m_totals; - - std::string redirectedCout; - std::string redirectedCerr; - - TestCaseInfo testInfo = testCase.getTestCaseInfo(); - - m_reporter->testCaseStarting( testInfo ); - - m_activeTestCase = &testCase; - - do { - ITracker& rootTracker = m_trackerContext.startRun(); - assert( rootTracker.isSectionTracker() ); - static_cast( rootTracker ).addInitialFilters( m_config->getSectionsToRun() ); - do { - m_trackerContext.startCycle(); - m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( testInfo.name, testInfo.lineInfo ) ); - runCurrentTest( redirectedCout, redirectedCerr ); - } - while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() ); - } - // !TBD: deprecated - this will be replaced by indexed trackers - while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() ); - - Totals deltaTotals = m_totals.delta( prevTotals ); - if( testInfo.expectedToFail() && deltaTotals.testCases.passed > 0 ) { - deltaTotals.assertions.failed++; - deltaTotals.testCases.passed--; - deltaTotals.testCases.failed++; - } - m_totals.testCases += deltaTotals.testCases; - m_reporter->testCaseEnded( TestCaseStats( testInfo, - deltaTotals, - redirectedCout, - redirectedCerr, - aborting() ) ); - - m_activeTestCase = CATCH_NULL; - m_testCaseTracker = CATCH_NULL; - - return deltaTotals; - } - - Ptr config() const { - return m_config; - } - - private: // IResultCapture - - virtual void assertionEnded( AssertionResult const& result ) { - if( result.getResultType() == ResultWas::Ok ) { - m_totals.assertions.passed++; - } - else if( !result.isOk() ) { - m_totals.assertions.failed++; - } - - if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) ) - m_messages.clear(); - - // Reset working state - m_lastAssertionInfo = AssertionInfo( std::string(), m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition ); - m_lastResult = result; - } - - virtual bool sectionStarted ( - SectionInfo const& sectionInfo, - Counts& assertions - ) - { - ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( sectionInfo.name, sectionInfo.lineInfo ) ); - if( !sectionTracker.isOpen() ) - return false; - m_activeSections.push_back( §ionTracker ); - - m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo; - - m_reporter->sectionStarting( sectionInfo ); - - assertions = m_totals.assertions; - - return true; - } - bool testForMissingAssertions( Counts& assertions ) { - if( assertions.total() != 0 ) - return false; - if( !m_config->warnAboutMissingAssertions() ) - return false; - if( m_trackerContext.currentTracker().hasChildren() ) - return false; - m_totals.assertions.failed++; - assertions.failed++; - return true; - } - - virtual void sectionEnded( SectionEndInfo const& endInfo ) { - Counts assertions = m_totals.assertions - endInfo.prevAssertions; - bool missingAssertions = testForMissingAssertions( assertions ); - - if( !m_activeSections.empty() ) { - m_activeSections.back()->close(); - m_activeSections.pop_back(); - } - - m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) ); - m_messages.clear(); - } - - virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) { - if( m_unfinishedSections.empty() ) - m_activeSections.back()->fail(); - else - m_activeSections.back()->close(); - m_activeSections.pop_back(); - - m_unfinishedSections.push_back( endInfo ); - } - - virtual void pushScopedMessage( MessageInfo const& message ) { - m_messages.push_back( message ); - } - - virtual void popScopedMessage( MessageInfo const& message ) { - m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() ); - } - - virtual std::string getCurrentTestName() const { - return m_activeTestCase - ? m_activeTestCase->getTestCaseInfo().name - : std::string(); - } - - virtual const AssertionResult* getLastResult() const { - return &m_lastResult; - } - - virtual void handleFatalErrorCondition( std::string const& message ) { - ResultBuilder resultBuilder = makeUnexpectedResultBuilder(); - resultBuilder.setResultType( ResultWas::FatalErrorCondition ); - resultBuilder << message; - resultBuilder.captureExpression(); - - handleUnfinishedSections(); - - // Recreate section for test case (as we will lose the one that was in scope) - TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); - SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description ); - - Counts assertions; - assertions.failed = 1; - SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false ); - m_reporter->sectionEnded( testCaseSectionStats ); - - TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo(); - - Totals deltaTotals; - deltaTotals.testCases.failed = 1; - m_reporter->testCaseEnded( TestCaseStats( testInfo, - deltaTotals, - std::string(), - std::string(), - false ) ); - m_totals.testCases.failed++; - testGroupEnded( std::string(), m_totals, 1, 1 ); - m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) ); - } - - public: - // !TBD We need to do this another way! - bool aborting() const { - return m_totals.assertions.failed == static_cast( m_config->abortAfter() ); - } - - private: - - void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) { - TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo(); - SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description ); - m_reporter->sectionStarting( testCaseSection ); - Counts prevAssertions = m_totals.assertions; - double duration = 0; - try { - m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, std::string(), ResultDisposition::Normal ); - - seedRng( *m_config ); - - Timer timer; - timer.start(); - if( m_reporter->getPreferences().shouldRedirectStdOut ) { - StreamRedirect coutRedir( Catch::cout(), redirectedCout ); - StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr ); - invokeActiveTestCase(); - } - else { - invokeActiveTestCase(); - } - duration = timer.getElapsedSeconds(); - } - catch( TestFailureException& ) { - // This just means the test was aborted due to failure - } - catch(...) { - makeUnexpectedResultBuilder().useActiveException(); - } - m_testCaseTracker->close(); - handleUnfinishedSections(); - m_messages.clear(); - - Counts assertions = m_totals.assertions - prevAssertions; - bool missingAssertions = testForMissingAssertions( assertions ); - - if( testCaseInfo.okToFail() ) { - std::swap( assertions.failedButOk, assertions.failed ); - m_totals.assertions.failed -= assertions.failedButOk; - m_totals.assertions.failedButOk += assertions.failedButOk; - } - - SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions ); - m_reporter->sectionEnded( testCaseSectionStats ); - } - - void invokeActiveTestCase() { - FatalConditionHandler fatalConditionHandler; // Handle signals - m_activeTestCase->invoke(); - fatalConditionHandler.reset(); - } - - private: - - ResultBuilder makeUnexpectedResultBuilder() const { - return ResultBuilder( m_lastAssertionInfo.macroName.c_str(), - m_lastAssertionInfo.lineInfo, - m_lastAssertionInfo.capturedExpression.c_str(), - m_lastAssertionInfo.resultDisposition ); - } - - void handleUnfinishedSections() { - // If sections ended prematurely due to an exception we stored their - // infos here so we can tear them down outside the unwind process. - for( std::vector::const_reverse_iterator it = m_unfinishedSections.rbegin(), - itEnd = m_unfinishedSections.rend(); - it != itEnd; - ++it ) - sectionEnded( *it ); - m_unfinishedSections.clear(); - } - - TestRunInfo m_runInfo; - IMutableContext& m_context; - TestCase const* m_activeTestCase; - ITracker* m_testCaseTracker; - ITracker* m_currentSectionTracker; - AssertionResult m_lastResult; - - Ptr m_config; - Totals m_totals; - Ptr m_reporter; - std::vector m_messages; - AssertionInfo m_lastAssertionInfo; - std::vector m_unfinishedSections; - std::vector m_activeSections; - TrackerContext m_trackerContext; - }; - - IResultCapture& getResultCapture() { - if( IResultCapture* capture = getCurrentContext().getResultCapture() ) - return *capture; - else - throw std::logic_error( "No result capture instance" ); - } - -} // end namespace Catch - -// #included from: internal/catch_version.h -#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED - -namespace Catch { - - // Versioning information - struct Version { - Version( unsigned int _majorVersion, - unsigned int _minorVersion, - unsigned int _patchNumber, - std::string const& _branchName, - unsigned int _buildNumber ); - - unsigned int const majorVersion; - unsigned int const minorVersion; - unsigned int const patchNumber; - - // buildNumber is only used if branchName is not null - std::string const branchName; - unsigned int const buildNumber; - - friend std::ostream& operator << ( std::ostream& os, Version const& version ); - - private: - void operator=( Version const& ); - }; - - extern Version libraryVersion; -} - -#include -#include -#include - -namespace Catch { - - Ptr createReporter( std::string const& reporterName, Ptr const& config ) { - Ptr reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() ); - if( !reporter ) { - std::ostringstream oss; - oss << "No reporter registered with name: '" << reporterName << "'"; - throw std::domain_error( oss.str() ); - } - return reporter; - } - - Ptr makeReporter( Ptr const& config ) { - std::vector reporters = config->getReporterNames(); - if( reporters.empty() ) - reporters.push_back( "console" ); - - Ptr reporter; - for( std::vector::const_iterator it = reporters.begin(), itEnd = reporters.end(); - it != itEnd; - ++it ) - reporter = addReporter( reporter, createReporter( *it, config ) ); - return reporter; - } - Ptr addListeners( Ptr const& config, Ptr reporters ) { - IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners(); - for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end(); - it != itEnd; - ++it ) - reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) ); - return reporters; - } - - Totals runTests( Ptr const& config ) { - - Ptr iconfig = config.get(); - - Ptr reporter = makeReporter( config ); - reporter = addListeners( iconfig, reporter ); - - RunContext context( iconfig, reporter ); - - Totals totals; - - context.testGroupStarting( config->name(), 1, 1 ); - - TestSpec testSpec = config->testSpec(); - if( !testSpec.hasFilters() ) - testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests - - std::vector const& allTestCases = getAllTestCasesSorted( *iconfig ); - for( std::vector::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end(); - it != itEnd; - ++it ) { - if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) ) - totals += context.runTest( *it ); - else - reporter->skipTest( *it ); - } - - context.testGroupEnded( iconfig->name(), totals, 1, 1 ); - return totals; - } - - void applyFilenamesAsTags( IConfig const& config ) { - std::vector const& tests = getAllTestCasesSorted( config ); - for(std::size_t i = 0; i < tests.size(); ++i ) { - TestCase& test = const_cast( tests[i] ); - std::set tags = test.tags; - - std::string filename = test.lineInfo.file; - std::string::size_type lastSlash = filename.find_last_of( "\\/" ); - if( lastSlash != std::string::npos ) - filename = filename.substr( lastSlash+1 ); - - std::string::size_type lastDot = filename.find_last_of( "." ); - if( lastDot != std::string::npos ) - filename = filename.substr( 0, lastDot ); - - tags.insert( "#" + filename ); - setTags( test, tags ); - } - } - - class Session : NonCopyable { - static bool alreadyInstantiated; - - public: - - struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; }; - - Session() - : m_cli( makeCommandLineParser() ) { - if( alreadyInstantiated ) { - std::string msg = "Only one instance of Catch::Session can ever be used"; - Catch::cerr() << msg << std::endl; - throw std::logic_error( msg ); - } - alreadyInstantiated = true; - } - ~Session() { - Catch::cleanUp(); - } - - void showHelp( std::string const& processName ) { - Catch::cout() << "\nCatch v" << libraryVersion << "\n"; - - m_cli.usage( Catch::cout(), processName ); - Catch::cout() << "For more detail usage please see the project docs\n" << std::endl; - } - - int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) { - try { - m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail ); - m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData ); - if( m_configData.showHelp ) - showHelp( m_configData.processName ); - m_config.reset(); - } - catch( std::exception& ex ) { - { - Colour colourGuard( Colour::Red ); - Catch::cerr() - << "\nError(s) in input:\n" - << Text( ex.what(), TextAttributes().setIndent(2) ) - << "\n\n"; - } - m_cli.usage( Catch::cout(), m_configData.processName ); - return (std::numeric_limits::max)(); - } - return 0; - } - - void useConfigData( ConfigData const& _configData ) { - m_configData = _configData; - m_config.reset(); - } - - int run( int argc, char const* const* const argv ) { - - int returnCode = applyCommandLine( argc, argv ); - if( returnCode == 0 ) - returnCode = run(); - return returnCode; - } - - int run() { - if( m_configData.showHelp ) - return 0; - - try - { - config(); // Force config to be constructed - - seedRng( *m_config ); - - if( m_configData.filenamesAsTags ) - applyFilenamesAsTags( *m_config ); - - // Handle list request - if( Option listed = list( config() ) ) - return static_cast( *listed ); - - return static_cast( runTests( m_config ).assertions.failed ); - } - catch( std::exception& ex ) { - Catch::cerr() << ex.what() << std::endl; - return (std::numeric_limits::max)(); - } - } - - Clara::CommandLine const& cli() const { - return m_cli; - } - std::vector const& unusedTokens() const { - return m_unusedTokens; - } - ConfigData& configData() { - return m_configData; - } - Config& config() { - if( !m_config ) - m_config = new Config( m_configData ); - return *m_config; - } - private: - Clara::CommandLine m_cli; - std::vector m_unusedTokens; - ConfigData m_configData; - Ptr m_config; - }; - - bool Session::alreadyInstantiated = false; - -} // end namespace Catch - -// #included from: catch_registry_hub.hpp -#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED - -// #included from: catch_test_case_registry_impl.hpp -#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED - -#include -#include -#include -#include - -namespace Catch { - - struct RandomNumberGenerator { - typedef std::ptrdiff_t result_type; - - result_type operator()( result_type n ) const { return std::rand() % n; } - -#ifdef CATCH_CONFIG_CPP11_SHUFFLE - static constexpr result_type min() { return 0; } - static constexpr result_type max() { return 1000000; } - result_type operator()() const { return std::rand() % max(); } -#endif - template - static void shuffle( V& vector ) { - RandomNumberGenerator rng; -#ifdef CATCH_CONFIG_CPP11_SHUFFLE - std::shuffle( vector.begin(), vector.end(), rng ); -#else - std::random_shuffle( vector.begin(), vector.end(), rng ); -#endif - } - }; - - inline std::vector sortTests( IConfig const& config, std::vector const& unsortedTestCases ) { - - std::vector sorted = unsortedTestCases; - - switch( config.runOrder() ) { - case RunTests::InLexicographicalOrder: - std::sort( sorted.begin(), sorted.end() ); - break; - case RunTests::InRandomOrder: - { - seedRng( config ); - RandomNumberGenerator::shuffle( sorted ); - } - break; - case RunTests::InDeclarationOrder: - // already in declaration order - break; - } - return sorted; - } - bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) { - return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() ); - } - - void enforceNoDuplicateTestCases( std::vector const& functions ) { - std::set seenFunctions; - for( std::vector::const_iterator it = functions.begin(), itEnd = functions.end(); - it != itEnd; - ++it ) { - std::pair::const_iterator, bool> prev = seenFunctions.insert( *it ); - if( !prev.second ) { - std::ostringstream ss; - - ss << Colour( Colour::Red ) - << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n" - << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << '\n' - << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl; - - throw std::runtime_error(ss.str()); - } - } - } - - std::vector filterTests( std::vector const& testCases, TestSpec const& testSpec, IConfig const& config ) { - std::vector filtered; - filtered.reserve( testCases.size() ); - for( std::vector::const_iterator it = testCases.begin(), itEnd = testCases.end(); - it != itEnd; - ++it ) - if( matchTest( *it, testSpec, config ) ) - filtered.push_back( *it ); - return filtered; - } - std::vector const& getAllTestCasesSorted( IConfig const& config ) { - return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config ); - } - - class TestRegistry : public ITestCaseRegistry { - public: - TestRegistry() - : m_currentSortOrder( RunTests::InDeclarationOrder ), - m_unnamedCount( 0 ) - {} - virtual ~TestRegistry(); - - virtual void registerTest( TestCase const& testCase ) { - std::string name = testCase.getTestCaseInfo().name; - if( name.empty() ) { - std::ostringstream oss; - oss << "Anonymous test case " << ++m_unnamedCount; - return registerTest( testCase.withName( oss.str() ) ); - } - m_functions.push_back( testCase ); - } - - virtual std::vector const& getAllTests() const { - return m_functions; - } - virtual std::vector const& getAllTestsSorted( IConfig const& config ) const { - if( m_sortedFunctions.empty() ) - enforceNoDuplicateTestCases( m_functions ); - - if( m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) { - m_sortedFunctions = sortTests( config, m_functions ); - m_currentSortOrder = config.runOrder(); - } - return m_sortedFunctions; - } - - private: - std::vector m_functions; - mutable RunTests::InWhatOrder m_currentSortOrder; - mutable std::vector m_sortedFunctions; - size_t m_unnamedCount; - std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised - }; - - /////////////////////////////////////////////////////////////////////////// - - class FreeFunctionTestCase : public SharedImpl { - public: - - FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {} - - virtual void invoke() const { - m_fun(); - } - - private: - virtual ~FreeFunctionTestCase(); - - TestFunction m_fun; - }; - - inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) { - std::string className = classOrQualifiedMethodName; - if( startsWith( className, '&' ) ) - { - std::size_t lastColons = className.rfind( "::" ); - std::size_t penultimateColons = className.rfind( "::", lastColons-1 ); - if( penultimateColons == std::string::npos ) - penultimateColons = 1; - className = className.substr( penultimateColons, lastColons-penultimateColons ); - } - return className; - } - - void registerTestCase - ( ITestCase* testCase, - char const* classOrQualifiedMethodName, - NameAndDesc const& nameAndDesc, - SourceLineInfo const& lineInfo ) { - - getMutableRegistryHub().registerTest - ( makeTestCase - ( testCase, - extractClassName( classOrQualifiedMethodName ), - nameAndDesc.name, - nameAndDesc.description, - lineInfo ) ); - } - void registerTestCaseFunction - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ) { - registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo ); - } - - /////////////////////////////////////////////////////////////////////////// - - AutoReg::AutoReg - ( TestFunction function, - SourceLineInfo const& lineInfo, - NameAndDesc const& nameAndDesc ) { - registerTestCaseFunction( function, lineInfo, nameAndDesc ); - } - - AutoReg::~AutoReg() {} - -} // end namespace Catch - -// #included from: catch_reporter_registry.hpp -#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED - -#include - -namespace Catch { - - class ReporterRegistry : public IReporterRegistry { - - public: - - virtual ~ReporterRegistry() CATCH_OVERRIDE {} - - virtual IStreamingReporter* create( std::string const& name, Ptr const& config ) const CATCH_OVERRIDE { - FactoryMap::const_iterator it = m_factories.find( name ); - if( it == m_factories.end() ) - return CATCH_NULL; - return it->second->create( ReporterConfig( config ) ); - } - - void registerReporter( std::string const& name, Ptr const& factory ) { - m_factories.insert( std::make_pair( name, factory ) ); - } - void registerListener( Ptr const& factory ) { - m_listeners.push_back( factory ); - } - - virtual FactoryMap const& getFactories() const CATCH_OVERRIDE { - return m_factories; - } - virtual Listeners const& getListeners() const CATCH_OVERRIDE { - return m_listeners; - } - - private: - FactoryMap m_factories; - Listeners m_listeners; - }; -} - -// #included from: catch_exception_translator_registry.hpp -#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED - -#ifdef __OBJC__ -#import "Foundation/Foundation.h" -#endif - -namespace Catch { - - class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry { - public: - ~ExceptionTranslatorRegistry() { - deleteAll( m_translators ); - } - - virtual void registerTranslator( const IExceptionTranslator* translator ) { - m_translators.push_back( translator ); - } - - virtual std::string translateActiveException() const { - try { -#ifdef __OBJC__ - // In Objective-C try objective-c exceptions first - @try { - return tryTranslators(); - } - @catch (NSException *exception) { - return Catch::toString( [exception description] ); - } -#else - return tryTranslators(); -#endif - } - catch( TestFailureException& ) { - throw; - } - catch( std::exception& ex ) { - return ex.what(); - } - catch( std::string& msg ) { - return msg; - } - catch( const char* msg ) { - return msg; - } - catch(...) { - return "Unknown exception"; - } - } - - std::string tryTranslators() const { - if( m_translators.empty() ) - throw; - else - return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() ); - } - - private: - std::vector m_translators; - }; -} - -namespace Catch { - - namespace { - - class RegistryHub : public IRegistryHub, public IMutableRegistryHub { - - RegistryHub( RegistryHub const& ); - void operator=( RegistryHub const& ); - - public: // IRegistryHub - RegistryHub() { - } - virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE { - return m_reporterRegistry; - } - virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE { - return m_testCaseRegistry; - } - virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE { - return m_exceptionTranslatorRegistry; - } - - public: // IMutableRegistryHub - virtual void registerReporter( std::string const& name, Ptr const& factory ) CATCH_OVERRIDE { - m_reporterRegistry.registerReporter( name, factory ); - } - virtual void registerListener( Ptr const& factory ) CATCH_OVERRIDE { - m_reporterRegistry.registerListener( factory ); - } - virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE { - m_testCaseRegistry.registerTest( testInfo ); - } - virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE { - m_exceptionTranslatorRegistry.registerTranslator( translator ); - } - - private: - TestRegistry m_testCaseRegistry; - ReporterRegistry m_reporterRegistry; - ExceptionTranslatorRegistry m_exceptionTranslatorRegistry; - }; - - // Single, global, instance - inline RegistryHub*& getTheRegistryHub() { - static RegistryHub* theRegistryHub = CATCH_NULL; - if( !theRegistryHub ) - theRegistryHub = new RegistryHub(); - return theRegistryHub; - } - } - - IRegistryHub& getRegistryHub() { - return *getTheRegistryHub(); - } - IMutableRegistryHub& getMutableRegistryHub() { - return *getTheRegistryHub(); - } - void cleanUp() { - delete getTheRegistryHub(); - getTheRegistryHub() = CATCH_NULL; - cleanUpContext(); - } - std::string translateActiveException() { - return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException(); - } - -} // end namespace Catch - -// #included from: catch_notimplemented_exception.hpp -#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED - -#include - -namespace Catch { - - NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo ) - : m_lineInfo( lineInfo ) { - std::ostringstream oss; - oss << lineInfo << ": function "; - oss << "not implemented"; - m_what = oss.str(); - } - - const char* NotImplementedException::what() const CATCH_NOEXCEPT { - return m_what.c_str(); - } - -} // end namespace Catch - -// #included from: catch_context_impl.hpp -#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED - -// #included from: catch_stream.hpp -#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED - -#include -#include -#include - -namespace Catch { - - template - class StreamBufImpl : public StreamBufBase { - char data[bufferSize]; - WriterF m_writer; - - public: - StreamBufImpl() { - setp( data, data + sizeof(data) ); - } - - ~StreamBufImpl() CATCH_NOEXCEPT { - sync(); - } - - private: - int overflow( int c ) { - sync(); - - if( c != EOF ) { - if( pbase() == epptr() ) - m_writer( std::string( 1, static_cast( c ) ) ); - else - sputc( static_cast( c ) ); - } - return 0; - } - - int sync() { - if( pbase() != pptr() ) { - m_writer( std::string( pbase(), static_cast( pptr() - pbase() ) ) ); - setp( pbase(), epptr() ); - } - return 0; - } - }; - - /////////////////////////////////////////////////////////////////////////// - - FileStream::FileStream( std::string const& filename ) { - m_ofs.open( filename.c_str() ); - if( m_ofs.fail() ) { - std::ostringstream oss; - oss << "Unable to open file: '" << filename << '\''; - throw std::domain_error( oss.str() ); - } - } - - std::ostream& FileStream::stream() const { - return m_ofs; - } - - struct OutputDebugWriter { - - void operator()( std::string const&str ) { - writeToDebugConsole( str ); - } - }; - - DebugOutStream::DebugOutStream() - : m_streamBuf( new StreamBufImpl() ), - m_os( m_streamBuf.get() ) - {} - - std::ostream& DebugOutStream::stream() const { - return m_os; - } - - // Store the streambuf from cout up-front because - // cout may get redirected when running tests - CoutStream::CoutStream() - : m_os( Catch::cout().rdbuf() ) - {} - - std::ostream& CoutStream::stream() const { - return m_os; - } - -#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions - std::ostream& cout() { - return std::cout; - } - std::ostream& cerr() { - return std::cerr; - } -#endif -} - -namespace Catch { - - class Context : public IMutableContext { - - Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {} - Context( Context const& ); - void operator=( Context const& ); - - public: - virtual ~Context() { - deleteAllValues( m_generatorsByTestName ); - } - - public: // IContext - virtual IResultCapture* getResultCapture() { - return m_resultCapture; - } - virtual IRunner* getRunner() { - return m_runner; - } - virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) { - return getGeneratorsForCurrentTest() - .getGeneratorInfo( fileInfo, totalSize ) - .getCurrentIndex(); - } - virtual bool advanceGeneratorsForCurrentTest() { - IGeneratorsForTest* generators = findGeneratorsForCurrentTest(); - return generators && generators->moveNext(); - } - - virtual Ptr getConfig() const { - return m_config; - } - - public: // IMutableContext - virtual void setResultCapture( IResultCapture* resultCapture ) { - m_resultCapture = resultCapture; - } - virtual void setRunner( IRunner* runner ) { - m_runner = runner; - } - virtual void setConfig( Ptr const& config ) { - m_config = config; - } - - friend IMutableContext& getCurrentMutableContext(); - - private: - IGeneratorsForTest* findGeneratorsForCurrentTest() { - std::string testName = getResultCapture()->getCurrentTestName(); - - std::map::const_iterator it = - m_generatorsByTestName.find( testName ); - return it != m_generatorsByTestName.end() - ? it->second - : CATCH_NULL; - } - - IGeneratorsForTest& getGeneratorsForCurrentTest() { - IGeneratorsForTest* generators = findGeneratorsForCurrentTest(); - if( !generators ) { - std::string testName = getResultCapture()->getCurrentTestName(); - generators = createGeneratorsForTest(); - m_generatorsByTestName.insert( std::make_pair( testName, generators ) ); - } - return *generators; - } - - private: - Ptr m_config; - IRunner* m_runner; - IResultCapture* m_resultCapture; - std::map m_generatorsByTestName; - }; - - namespace { - Context* currentContext = CATCH_NULL; - } - IMutableContext& getCurrentMutableContext() { - if( !currentContext ) - currentContext = new Context(); - return *currentContext; - } - IContext& getCurrentContext() { - return getCurrentMutableContext(); - } - - void cleanUpContext() { - delete currentContext; - currentContext = CATCH_NULL; - } -} - -// #included from: catch_console_colour_impl.hpp -#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED - -namespace Catch { - namespace { - - struct IColourImpl { - virtual ~IColourImpl() {} - virtual void use( Colour::Code _colourCode ) = 0; - }; - - struct NoColourImpl : IColourImpl { - void use( Colour::Code ) {} - - static IColourImpl* instance() { - static NoColourImpl s_instance; - return &s_instance; - } - }; - - } // anon namespace -} // namespace Catch - -#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI ) -# ifdef CATCH_PLATFORM_WINDOWS -# define CATCH_CONFIG_COLOUR_WINDOWS -# else -# define CATCH_CONFIG_COLOUR_ANSI -# endif -#endif - -#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) ///////////////////////////////////////// - -namespace Catch { -namespace { - - class Win32ColourImpl : public IColourImpl { - public: - Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) ) - { - CONSOLE_SCREEN_BUFFER_INFO csbiInfo; - GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo ); - originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY ); - originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY ); - } - - virtual void use( Colour::Code _colourCode ) { - switch( _colourCode ) { - case Colour::None: return setTextAttribute( originalForegroundAttributes ); - case Colour::White: return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); - case Colour::Red: return setTextAttribute( FOREGROUND_RED ); - case Colour::Green: return setTextAttribute( FOREGROUND_GREEN ); - case Colour::Blue: return setTextAttribute( FOREGROUND_BLUE ); - case Colour::Cyan: return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN ); - case Colour::Yellow: return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN ); - case Colour::Grey: return setTextAttribute( 0 ); - - case Colour::LightGrey: return setTextAttribute( FOREGROUND_INTENSITY ); - case Colour::BrightRed: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED ); - case Colour::BrightGreen: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN ); - case Colour::BrightWhite: return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE ); - - case Colour::Bright: throw std::logic_error( "not a colour" ); - } - } - - private: - void setTextAttribute( WORD _textAttribute ) { - SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes ); - } - HANDLE stdoutHandle; - WORD originalForegroundAttributes; - WORD originalBackgroundAttributes; - }; - - IColourImpl* platformColourInstance() { - static Win32ColourImpl s_instance; - - Ptr config = getCurrentContext().getConfig(); - UseColour::YesOrNo colourMode = config - ? config->useColour() - : UseColour::Auto; - if( colourMode == UseColour::Auto ) - colourMode = !isDebuggerActive() - ? UseColour::Yes - : UseColour::No; - return colourMode == UseColour::Yes - ? &s_instance - : NoColourImpl::instance(); - } - -} // end anon namespace -} // end namespace Catch - -#elif defined( CATCH_CONFIG_COLOUR_ANSI ) ////////////////////////////////////// - -#include - -namespace Catch { -namespace { - - // use POSIX/ ANSI console terminal codes - // Thanks to Adam Strzelecki for original contribution - // (http://github.com/nanoant) - // https://github.com/philsquared/Catch/pull/131 - class PosixColourImpl : public IColourImpl { - public: - virtual void use( Colour::Code _colourCode ) { - switch( _colourCode ) { - case Colour::None: - case Colour::White: return setColour( "[0m" ); - case Colour::Red: return setColour( "[0;31m" ); - case Colour::Green: return setColour( "[0;32m" ); - case Colour::Blue: return setColour( "[0;34m" ); - case Colour::Cyan: return setColour( "[0;36m" ); - case Colour::Yellow: return setColour( "[0;33m" ); - case Colour::Grey: return setColour( "[1;30m" ); - - case Colour::LightGrey: return setColour( "[0;37m" ); - case Colour::BrightRed: return setColour( "[1;31m" ); - case Colour::BrightGreen: return setColour( "[1;32m" ); - case Colour::BrightWhite: return setColour( "[1;37m" ); - - case Colour::Bright: throw std::logic_error( "not a colour" ); - } - } - static IColourImpl* instance() { - static PosixColourImpl s_instance; - return &s_instance; - } - - private: - void setColour( const char* _escapeCode ) { - Catch::cout() << '\033' << _escapeCode; - } - }; - - IColourImpl* platformColourInstance() { - Ptr config = getCurrentContext().getConfig(); - UseColour::YesOrNo colourMode = config - ? config->useColour() - : UseColour::Auto; - if( colourMode == UseColour::Auto ) - colourMode = (!isDebuggerActive() && isatty(STDOUT_FILENO) ) - ? UseColour::Yes - : UseColour::No; - return colourMode == UseColour::Yes - ? PosixColourImpl::instance() - : NoColourImpl::instance(); - } - -} // end anon namespace -} // end namespace Catch - -#else // not Windows or ANSI /////////////////////////////////////////////// - -namespace Catch { - - static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); } - -} // end namespace Catch - -#endif // Windows/ ANSI/ None - -namespace Catch { - - Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); } - Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast( _other ).m_moved = true; } - Colour::~Colour(){ if( !m_moved ) use( None ); } - - void Colour::use( Code _colourCode ) { - static IColourImpl* impl = platformColourInstance(); - impl->use( _colourCode ); - } - -} // end namespace Catch - -// #included from: catch_generators_impl.hpp -#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED - -#include -#include -#include - -namespace Catch { - - struct GeneratorInfo : IGeneratorInfo { - - GeneratorInfo( std::size_t size ) - : m_size( size ), - m_currentIndex( 0 ) - {} - - bool moveNext() { - if( ++m_currentIndex == m_size ) { - m_currentIndex = 0; - return false; - } - return true; - } - - std::size_t getCurrentIndex() const { - return m_currentIndex; - } - - std::size_t m_size; - std::size_t m_currentIndex; - }; - - /////////////////////////////////////////////////////////////////////////// - - class GeneratorsForTest : public IGeneratorsForTest { - - public: - ~GeneratorsForTest() { - deleteAll( m_generatorsInOrder ); - } - - IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) { - std::map::const_iterator it = m_generatorsByName.find( fileInfo ); - if( it == m_generatorsByName.end() ) { - IGeneratorInfo* info = new GeneratorInfo( size ); - m_generatorsByName.insert( std::make_pair( fileInfo, info ) ); - m_generatorsInOrder.push_back( info ); - return *info; - } - return *it->second; - } - - bool moveNext() { - std::vector::const_iterator it = m_generatorsInOrder.begin(); - std::vector::const_iterator itEnd = m_generatorsInOrder.end(); - for(; it != itEnd; ++it ) { - if( (*it)->moveNext() ) - return true; - } - return false; - } - - private: - std::map m_generatorsByName; - std::vector m_generatorsInOrder; - }; - - IGeneratorsForTest* createGeneratorsForTest() - { - return new GeneratorsForTest(); - } - -} // end namespace Catch - -// #included from: catch_assertionresult.hpp -#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED - -namespace Catch { - - AssertionInfo::AssertionInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - std::string const& _capturedExpression, - ResultDisposition::Flags _resultDisposition ) - : macroName( _macroName ), - lineInfo( _lineInfo ), - capturedExpression( _capturedExpression ), - resultDisposition( _resultDisposition ) - {} - - AssertionResult::AssertionResult() {} - - AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data ) - : m_info( info ), - m_resultData( data ) - {} - - AssertionResult::~AssertionResult() {} - - // Result was a success - bool AssertionResult::succeeded() const { - return Catch::isOk( m_resultData.resultType ); - } - - // Result was a success, or failure is suppressed - bool AssertionResult::isOk() const { - return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition ); - } - - ResultWas::OfType AssertionResult::getResultType() const { - return m_resultData.resultType; - } - - bool AssertionResult::hasExpression() const { - return !m_info.capturedExpression.empty(); - } - - bool AssertionResult::hasMessage() const { - return !m_resultData.message.empty(); - } - - std::string AssertionResult::getExpression() const { - if( isFalseTest( m_info.resultDisposition ) ) - return '!' + m_info.capturedExpression; - else - return m_info.capturedExpression; - } - std::string AssertionResult::getExpressionInMacro() const { - if( m_info.macroName.empty() ) - return m_info.capturedExpression; - else - return m_info.macroName + "( " + m_info.capturedExpression + " )"; - } - - bool AssertionResult::hasExpandedExpression() const { - return hasExpression() && getExpandedExpression() != getExpression(); - } - - std::string AssertionResult::getExpandedExpression() const { - return m_resultData.reconstructExpression(); - } - - std::string AssertionResult::getMessage() const { - return m_resultData.message; - } - SourceLineInfo AssertionResult::getSourceInfo() const { - return m_info.lineInfo; - } - - std::string AssertionResult::getTestMacroName() const { - return m_info.macroName; - } - - void AssertionResult::discardDecomposedExpression() const { - m_resultData.decomposedExpression = CATCH_NULL; - } - - void AssertionResult::expandDecomposedExpression() const { - m_resultData.reconstructExpression(); - } - -} // end namespace Catch - -// #included from: catch_test_case_info.hpp -#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED - -#include - -namespace Catch { - - inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) { - if( startsWith( tag, '.' ) || - tag == "hide" || - tag == "!hide" ) - return TestCaseInfo::IsHidden; - else if( tag == "!throws" ) - return TestCaseInfo::Throws; - else if( tag == "!shouldfail" ) - return TestCaseInfo::ShouldFail; - else if( tag == "!mayfail" ) - return TestCaseInfo::MayFail; - else if( tag == "!nonportable" ) - return TestCaseInfo::NonPortable; - else - return TestCaseInfo::None; - } - inline bool isReservedTag( std::string const& tag ) { - return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !std::isalnum( tag[0] ); - } - inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) { - if( isReservedTag( tag ) ) { - { - Colour colourGuard( Colour::Red ); - Catch::cerr() - << "Tag name [" << tag << "] not allowed.\n" - << "Tag names starting with non alpha-numeric characters are reserved\n"; - } - { - Colour colourGuard( Colour::FileName ); - Catch::cerr() << _lineInfo << std::endl; - } - exit(1); - } - } - - TestCase makeTestCase( ITestCase* _testCase, - std::string const& _className, - std::string const& _name, - std::string const& _descOrTags, - SourceLineInfo const& _lineInfo ) - { - bool isHidden( startsWith( _name, "./" ) ); // Legacy support - - // Parse out tags - std::set tags; - std::string desc, tag; - bool inTag = false; - for( std::size_t i = 0; i < _descOrTags.size(); ++i ) { - char c = _descOrTags[i]; - if( !inTag ) { - if( c == '[' ) - inTag = true; - else - desc += c; - } - else { - if( c == ']' ) { - TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag ); - if( prop == TestCaseInfo::IsHidden ) - isHidden = true; - else if( prop == TestCaseInfo::None ) - enforceNotReservedTag( tag, _lineInfo ); - - tags.insert( tag ); - tag.clear(); - inTag = false; - } - else - tag += c; - } - } - if( isHidden ) { - tags.insert( "hide" ); - tags.insert( "." ); - } - - TestCaseInfo info( _name, _className, desc, tags, _lineInfo ); - return TestCase( _testCase, info ); - } - - void setTags( TestCaseInfo& testCaseInfo, std::set const& tags ) - { - testCaseInfo.tags = tags; - testCaseInfo.lcaseTags.clear(); - - std::ostringstream oss; - for( std::set::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) { - oss << '[' << *it << ']'; - std::string lcaseTag = toLower( *it ); - testCaseInfo.properties = static_cast( testCaseInfo.properties | parseSpecialTag( lcaseTag ) ); - testCaseInfo.lcaseTags.insert( lcaseTag ); - } - testCaseInfo.tagsAsString = oss.str(); - } - - TestCaseInfo::TestCaseInfo( std::string const& _name, - std::string const& _className, - std::string const& _description, - std::set const& _tags, - SourceLineInfo const& _lineInfo ) - : name( _name ), - className( _className ), - description( _description ), - lineInfo( _lineInfo ), - properties( None ) - { - setTags( *this, _tags ); - } - - TestCaseInfo::TestCaseInfo( TestCaseInfo const& other ) - : name( other.name ), - className( other.className ), - description( other.description ), - tags( other.tags ), - lcaseTags( other.lcaseTags ), - tagsAsString( other.tagsAsString ), - lineInfo( other.lineInfo ), - properties( other.properties ) - {} - - bool TestCaseInfo::isHidden() const { - return ( properties & IsHidden ) != 0; - } - bool TestCaseInfo::throws() const { - return ( properties & Throws ) != 0; - } - bool TestCaseInfo::okToFail() const { - return ( properties & (ShouldFail | MayFail ) ) != 0; - } - bool TestCaseInfo::expectedToFail() const { - return ( properties & (ShouldFail ) ) != 0; - } - - TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {} - - TestCase::TestCase( TestCase const& other ) - : TestCaseInfo( other ), - test( other.test ) - {} - - TestCase TestCase::withName( std::string const& _newName ) const { - TestCase other( *this ); - other.name = _newName; - return other; - } - - void TestCase::swap( TestCase& other ) { - test.swap( other.test ); - name.swap( other.name ); - className.swap( other.className ); - description.swap( other.description ); - tags.swap( other.tags ); - lcaseTags.swap( other.lcaseTags ); - tagsAsString.swap( other.tagsAsString ); - std::swap( TestCaseInfo::properties, static_cast( other ).properties ); - std::swap( lineInfo, other.lineInfo ); - } - - void TestCase::invoke() const { - test->invoke(); - } - - bool TestCase::operator == ( TestCase const& other ) const { - return test.get() == other.test.get() && - name == other.name && - className == other.className; - } - - bool TestCase::operator < ( TestCase const& other ) const { - return name < other.name; - } - TestCase& TestCase::operator = ( TestCase const& other ) { - TestCase temp( other ); - swap( temp ); - return *this; - } - - TestCaseInfo const& TestCase::getTestCaseInfo() const - { - return *this; - } - -} // end namespace Catch - -// #included from: catch_version.hpp -#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED - -namespace Catch { - - Version::Version - ( unsigned int _majorVersion, - unsigned int _minorVersion, - unsigned int _patchNumber, - std::string const& _branchName, - unsigned int _buildNumber ) - : majorVersion( _majorVersion ), - minorVersion( _minorVersion ), - patchNumber( _patchNumber ), - branchName( _branchName ), - buildNumber( _buildNumber ) - {} - - std::ostream& operator << ( std::ostream& os, Version const& version ) { - os << version.majorVersion << '.' - << version.minorVersion << '.' - << version.patchNumber; - - if( !version.branchName.empty() ) { - os << '-' << version.branchName - << '.' << version.buildNumber; - } - return os; - } - - Version libraryVersion( 1, 8, 1, "", 0 ); - -} - -// #included from: catch_message.hpp -#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED - -namespace Catch { - - MessageInfo::MessageInfo( std::string const& _macroName, - SourceLineInfo const& _lineInfo, - ResultWas::OfType _type ) - : macroName( _macroName ), - lineInfo( _lineInfo ), - type( _type ), - sequence( ++globalCount ) - {} - - // This may need protecting if threading support is added - unsigned int MessageInfo::globalCount = 0; - - //////////////////////////////////////////////////////////////////////////// - - ScopedMessage::ScopedMessage( MessageBuilder const& builder ) - : m_info( builder.m_info ) - { - m_info.message = builder.m_stream.str(); - getResultCapture().pushScopedMessage( m_info ); - } - ScopedMessage::ScopedMessage( ScopedMessage const& other ) - : m_info( other.m_info ) - {} - - ScopedMessage::~ScopedMessage() { - getResultCapture().popScopedMessage( m_info ); - } - -} // end namespace Catch - -// #included from: catch_legacy_reporter_adapter.hpp -#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED - -// #included from: catch_legacy_reporter_adapter.h -#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED - -namespace Catch -{ - // Deprecated - struct IReporter : IShared { - virtual ~IReporter(); - - virtual bool shouldRedirectStdout() const = 0; - - virtual void StartTesting() = 0; - virtual void EndTesting( Totals const& totals ) = 0; - virtual void StartGroup( std::string const& groupName ) = 0; - virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0; - virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0; - virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0; - virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0; - virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0; - virtual void NoAssertionsInSection( std::string const& sectionName ) = 0; - virtual void NoAssertionsInTestCase( std::string const& testName ) = 0; - virtual void Aborted() = 0; - virtual void Result( AssertionResult const& result ) = 0; - }; - - class LegacyReporterAdapter : public SharedImpl - { - public: - LegacyReporterAdapter( Ptr const& legacyReporter ); - virtual ~LegacyReporterAdapter(); - - virtual ReporterPreferences getPreferences() const; - virtual void noMatchingTestCases( std::string const& ); - virtual void testRunStarting( TestRunInfo const& ); - virtual void testGroupStarting( GroupInfo const& groupInfo ); - virtual void testCaseStarting( TestCaseInfo const& testInfo ); - virtual void sectionStarting( SectionInfo const& sectionInfo ); - virtual void assertionStarting( AssertionInfo const& ); - virtual bool assertionEnded( AssertionStats const& assertionStats ); - virtual void sectionEnded( SectionStats const& sectionStats ); - virtual void testCaseEnded( TestCaseStats const& testCaseStats ); - virtual void testGroupEnded( TestGroupStats const& testGroupStats ); - virtual void testRunEnded( TestRunStats const& testRunStats ); - virtual void skipTest( TestCaseInfo const& ); - - private: - Ptr m_legacyReporter; - }; -} - -namespace Catch -{ - LegacyReporterAdapter::LegacyReporterAdapter( Ptr const& legacyReporter ) - : m_legacyReporter( legacyReporter ) - {} - LegacyReporterAdapter::~LegacyReporterAdapter() {} - - ReporterPreferences LegacyReporterAdapter::getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout(); - return prefs; - } - - void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {} - void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) { - m_legacyReporter->StartTesting(); - } - void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) { - m_legacyReporter->StartGroup( groupInfo.name ); - } - void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) { - m_legacyReporter->StartTestCase( testInfo ); - } - void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) { - m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description ); - } - void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) { - // Not on legacy interface - } - - bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) { - if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) { - for( std::vector::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); - it != itEnd; - ++it ) { - if( it->type == ResultWas::Info ) { - ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal ); - rb << it->message; - rb.setResultType( ResultWas::Info ); - AssertionResult result = rb.build(); - m_legacyReporter->Result( result ); - } - } - } - m_legacyReporter->Result( assertionStats.assertionResult ); - return true; - } - void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) { - if( sectionStats.missingAssertions ) - m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name ); - m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions ); - } - void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) { - m_legacyReporter->EndTestCase - ( testCaseStats.testInfo, - testCaseStats.totals, - testCaseStats.stdOut, - testCaseStats.stdErr ); - } - void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) { - if( testGroupStats.aborting ) - m_legacyReporter->Aborted(); - m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals ); - } - void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) { - m_legacyReporter->EndTesting( testRunStats.totals ); - } - void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) { - } -} - -// #included from: catch_timer.hpp - -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wc++11-long-long" -#endif - -#ifdef CATCH_PLATFORM_WINDOWS - -#else - -#include - -#endif - -namespace Catch { - - namespace { -#ifdef CATCH_PLATFORM_WINDOWS - uint64_t getCurrentTicks() { - static uint64_t hz=0, hzo=0; - if (!hz) { - QueryPerformanceFrequency( reinterpret_cast( &hz ) ); - QueryPerformanceCounter( reinterpret_cast( &hzo ) ); - } - uint64_t t; - QueryPerformanceCounter( reinterpret_cast( &t ) ); - return ((t-hzo)*1000000)/hz; - } -#else - uint64_t getCurrentTicks() { - timeval t; - gettimeofday(&t,CATCH_NULL); - return static_cast( t.tv_sec ) * 1000000ull + static_cast( t.tv_usec ); - } -#endif - } - - void Timer::start() { - m_ticks = getCurrentTicks(); - } - unsigned int Timer::getElapsedMicroseconds() const { - return static_cast(getCurrentTicks() - m_ticks); - } - unsigned int Timer::getElapsedMilliseconds() const { - return static_cast(getElapsedMicroseconds()/1000); - } - double Timer::getElapsedSeconds() const { - return getElapsedMicroseconds()/1000000.0; - } - -} // namespace Catch - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif -// #included from: catch_common.hpp -#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED - -#include -#include - -namespace Catch { - - bool startsWith( std::string const& s, std::string const& prefix ) { - return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin()); - } - bool startsWith( std::string const& s, char prefix ) { - return !s.empty() && s[0] == prefix; - } - bool endsWith( std::string const& s, std::string const& suffix ) { - return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin()); - } - bool endsWith( std::string const& s, char suffix ) { - return !s.empty() && s[s.size()-1] == suffix; - } - bool contains( std::string const& s, std::string const& infix ) { - return s.find( infix ) != std::string::npos; - } - char toLowerCh(char c) { - return static_cast( std::tolower( c ) ); - } - void toLowerInPlace( std::string& s ) { - std::transform( s.begin(), s.end(), s.begin(), toLowerCh ); - } - std::string toLower( std::string const& s ) { - std::string lc = s; - toLowerInPlace( lc ); - return lc; - } - std::string trim( std::string const& str ) { - static char const* whitespaceChars = "\n\r\t "; - std::string::size_type start = str.find_first_not_of( whitespaceChars ); - std::string::size_type end = str.find_last_not_of( whitespaceChars ); - - return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string(); - } - - bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) { - bool replaced = false; - std::size_t i = str.find( replaceThis ); - while( i != std::string::npos ) { - replaced = true; - str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() ); - if( i < str.size()-withThis.size() ) - i = str.find( replaceThis, i+withThis.size() ); - else - i = std::string::npos; - } - return replaced; - } - - pluralise::pluralise( std::size_t count, std::string const& label ) - : m_count( count ), - m_label( label ) - {} - - std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) { - os << pluraliser.m_count << ' ' << pluraliser.m_label; - if( pluraliser.m_count != 1 ) - os << 's'; - return os; - } - - SourceLineInfo::SourceLineInfo() : file(""), line( 0 ){} - SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line ) - : file( _file ), - line( _line ) - {} - bool SourceLineInfo::empty() const { - return file[0] == '\0'; - } - bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const { - return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0); - } - bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const { - return line < other.line || ( line == other.line && (std::strcmp(file, other.file) < 0)); - } - - void seedRng( IConfig const& config ) { - if( config.rngSeed() != 0 ) - std::srand( config.rngSeed() ); - } - unsigned int rngSeed() { - return getCurrentContext().getConfig()->rngSeed(); - } - - std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) { -#ifndef __GNUG__ - os << info.file << '(' << info.line << ')'; -#else - os << info.file << ':' << info.line; -#endif - return os; - } - - void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) { - std::ostringstream oss; - oss << locationInfo << ": Internal Catch error: '" << message << '\''; - if( alwaysTrue() ) - throw std::logic_error( oss.str() ); - } -} - -// #included from: catch_section.hpp -#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED - -namespace Catch { - - SectionInfo::SectionInfo - ( SourceLineInfo const& _lineInfo, - std::string const& _name, - std::string const& _description ) - : name( _name ), - description( _description ), - lineInfo( _lineInfo ) - {} - - Section::Section( SectionInfo const& info ) - : m_info( info ), - m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) ) - { - m_timer.start(); - } - - Section::~Section() { - if( m_sectionIncluded ) { - SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() ); - if( std::uncaught_exception() ) - getResultCapture().sectionEndedEarly( endInfo ); - else - getResultCapture().sectionEnded( endInfo ); - } - } - - // This indicates whether the section should be executed or not - Section::operator bool() const { - return m_sectionIncluded; - } - -} // end namespace Catch - -// #included from: catch_debugger.hpp -#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED - -#ifdef CATCH_PLATFORM_MAC - - #include - #include - #include - #include - #include - - namespace Catch{ - - // The following function is taken directly from the following technical note: - // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html - - // Returns true if the current process is being debugged (either - // running under the debugger or has a debugger attached post facto). - bool isDebuggerActive(){ - - int mib[4]; - struct kinfo_proc info; - size_t size; - - // Initialize the flags so that, if sysctl fails for some bizarre - // reason, we get a predictable result. - - info.kp_proc.p_flag = 0; - - // Initialize mib, which tells sysctl the info we want, in this case - // we're looking for information about a specific process ID. - - mib[0] = CTL_KERN; - mib[1] = KERN_PROC; - mib[2] = KERN_PROC_PID; - mib[3] = getpid(); - - // Call sysctl. - - size = sizeof(info); - if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) { - Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl; - return false; - } - - // We're being debugged if the P_TRACED flag is set. - - return ( (info.kp_proc.p_flag & P_TRACED) != 0 ); - } - } // namespace Catch - -#elif defined(CATCH_PLATFORM_LINUX) - #include - #include - - namespace Catch{ - // The standard POSIX way of detecting a debugger is to attempt to - // ptrace() the process, but this needs to be done from a child and not - // this process itself to still allow attaching to this process later - // if wanted, so is rather heavy. Under Linux we have the PID of the - // "debugger" (which doesn't need to be gdb, of course, it could also - // be strace, for example) in /proc/$PID/status, so just get it from - // there instead. - bool isDebuggerActive(){ - std::ifstream in("/proc/self/status"); - for( std::string line; std::getline(in, line); ) { - static const int PREFIX_LEN = 11; - if( line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0 ) { - // We're traced if the PID is not 0 and no other PID starts - // with 0 digit, so it's enough to check for just a single - // character. - return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0'; - } - } - - return false; - } - } // namespace Catch -#elif defined(_MSC_VER) - extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); - namespace Catch { - bool isDebuggerActive() { - return IsDebuggerPresent() != 0; - } - } -#elif defined(__MINGW32__) - extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); - namespace Catch { - bool isDebuggerActive() { - return IsDebuggerPresent() != 0; - } - } -#else - namespace Catch { - inline bool isDebuggerActive() { return false; } - } -#endif // Platform - -#ifdef CATCH_PLATFORM_WINDOWS - - namespace Catch { - void writeToDebugConsole( std::string const& text ) { - ::OutputDebugStringA( text.c_str() ); - } - } -#else - namespace Catch { - void writeToDebugConsole( std::string const& text ) { - // !TBD: Need a version for Mac/ XCode and other IDEs - Catch::cout() << text; - } - } -#endif // Platform - -// #included from: catch_tostring.hpp -#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED - -namespace Catch { - -namespace Detail { - - const std::string unprintableString = "{?}"; - - namespace { - const int hexThreshold = 255; - - struct Endianness { - enum Arch { Big, Little }; - - static Arch which() { - union _{ - int asInt; - char asChar[sizeof (int)]; - } u; - - u.asInt = 1; - return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little; - } - }; - } - - std::string rawMemoryToString( const void *object, std::size_t size ) - { - // Reverse order for little endian architectures - int i = 0, end = static_cast( size ), inc = 1; - if( Endianness::which() == Endianness::Little ) { - i = end-1; - end = inc = -1; - } - - unsigned char const *bytes = static_cast(object); - std::ostringstream os; - os << "0x" << std::setfill('0') << std::hex; - for( ; i != end; i += inc ) - os << std::setw(2) << static_cast(bytes[i]); - return os.str(); - } -} - -std::string toString( std::string const& value ) { - std::string s = value; - if( getCurrentContext().getConfig()->showInvisibles() ) { - for(size_t i = 0; i < s.size(); ++i ) { - std::string subs; - switch( s[i] ) { - case '\n': subs = "\\n"; break; - case '\t': subs = "\\t"; break; - default: break; - } - if( !subs.empty() ) { - s = s.substr( 0, i ) + subs + s.substr( i+1 ); - ++i; - } - } - } - return '"' + s + '"'; -} -std::string toString( std::wstring const& value ) { - - std::string s; - s.reserve( value.size() ); - for(size_t i = 0; i < value.size(); ++i ) - s += value[i] <= 0xff ? static_cast( value[i] ) : '?'; - return Catch::toString( s ); -} - -std::string toString( const char* const value ) { - return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" ); -} - -std::string toString( char* const value ) { - return Catch::toString( static_cast( value ) ); -} - -std::string toString( const wchar_t* const value ) -{ - return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" ); -} - -std::string toString( wchar_t* const value ) -{ - return Catch::toString( static_cast( value ) ); -} - -std::string toString( int value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} - -std::string toString( unsigned long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} - -std::string toString( unsigned int value ) { - return Catch::toString( static_cast( value ) ); -} - -template -std::string fpToString( T value, int precision ) { - std::ostringstream oss; - oss << std::setprecision( precision ) - << std::fixed - << value; - std::string d = oss.str(); - std::size_t i = d.find_last_not_of( '0' ); - if( i != std::string::npos && i != d.size()-1 ) { - if( d[i] == '.' ) - i++; - d = d.substr( 0, i+1 ); - } - return d; -} - -std::string toString( const double value ) { - return fpToString( value, 10 ); -} -std::string toString( const float value ) { - return fpToString( value, 5 ) + 'f'; -} - -std::string toString( bool value ) { - return value ? "true" : "false"; -} - -std::string toString( char value ) { - if ( value == '\r' ) - return "'\\r'"; - if ( value == '\f' ) - return "'\\f'"; - if ( value == '\n' ) - return "'\\n'"; - if ( value == '\t' ) - return "'\\t'"; - if ( '\0' <= value && value < ' ' ) - return toString( static_cast( value ) ); - char chstr[] = "' '"; - chstr[1] = value; - return chstr; -} - -std::string toString( signed char value ) { - return toString( static_cast( value ) ); -} - -std::string toString( unsigned char value ) { - return toString( static_cast( value ) ); -} - -#ifdef CATCH_CONFIG_CPP11_LONG_LONG -std::string toString( long long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} -std::string toString( unsigned long long value ) { - std::ostringstream oss; - oss << value; - if( value > Detail::hexThreshold ) - oss << " (0x" << std::hex << value << ')'; - return oss.str(); -} -#endif - -#ifdef CATCH_CONFIG_CPP11_NULLPTR -std::string toString( std::nullptr_t ) { - return "nullptr"; -} -#endif - -#ifdef __OBJC__ - std::string toString( NSString const * const& nsstring ) { - if( !nsstring ) - return "nil"; - return "@" + toString([nsstring UTF8String]); - } - std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) { - if( !nsstring ) - return "nil"; - return "@" + toString([nsstring UTF8String]); - } - std::string toString( NSObject* const& nsObject ) { - return toString( [nsObject description] ); - } -#endif - -} // end namespace Catch - -// #included from: catch_result_builder.hpp -#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED - -namespace Catch { - - std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) { - return secondArg.empty() || secondArg == "\"\"" - ? capturedExpression - : capturedExpression + ", " + secondArg; - } - ResultBuilder::ResultBuilder( char const* macroName, - SourceLineInfo const& lineInfo, - char const* capturedExpression, - ResultDisposition::Flags resultDisposition, - char const* secondArg ) - : m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ), - m_shouldDebugBreak( false ), - m_shouldThrow( false ) - {} - - ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) { - m_data.resultType = result; - return *this; - } - ResultBuilder& ResultBuilder::setResultType( bool result ) { - m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed; - return *this; - } - - void ResultBuilder::endExpression( DecomposedExpression const& expr ) { - AssertionResult result = build( expr ); - handleResult( result ); - } - - void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) { - m_assertionInfo.resultDisposition = resultDisposition; - m_stream.oss << Catch::translateActiveException(); - captureResult( ResultWas::ThrewException ); - } - - void ResultBuilder::captureResult( ResultWas::OfType resultType ) { - setResultType( resultType ); - captureExpression(); - } - - void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) { - if( expectedMessage.empty() ) - captureExpectedException( Matchers::Impl::MatchAllOf() ); - else - captureExpectedException( Matchers::Equals( expectedMessage ) ); - } - - void ResultBuilder::captureExpectedException( Matchers::Impl::MatcherBase const& matcher ) { - - assert( !isFalseTest( m_assertionInfo.resultDisposition ) ); - AssertionResultData data = m_data; - data.resultType = ResultWas::Ok; - data.reconstructedExpression = m_assertionInfo.capturedExpression; - - std::string actualMessage = Catch::translateActiveException(); - if( !matcher.match( actualMessage ) ) { - data.resultType = ResultWas::ExpressionFailed; - data.reconstructedExpression = actualMessage; - } - AssertionResult result( m_assertionInfo, data ); - handleResult( result ); - } - - void ResultBuilder::captureExpression() { - AssertionResult result = build(); - handleResult( result ); - } - - void ResultBuilder::handleResult( AssertionResult const& result ) - { - getResultCapture().assertionEnded( result ); - - if( !result.isOk() ) { - if( getCurrentContext().getConfig()->shouldDebugBreak() ) - m_shouldDebugBreak = true; - if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) ) - m_shouldThrow = true; - } - } - - void ResultBuilder::react() { -#if defined(CATCH_CONFIG_FAST_COMPILE) - if (m_shouldDebugBreak) { - /////////////////////////////////////////////////////////////////// - // To inspect the state during test, you need to go one level up the callstack - // To go back to the test and change execution, jump over the throw statement - /////////////////////////////////////////////////////////////////// - CATCH_BREAK_INTO_DEBUGGER(); - } -#endif - if( m_shouldThrow ) - throw Catch::TestFailureException(); - } - - bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; } - bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); } - - AssertionResult ResultBuilder::build() const - { - return build( *this ); - } - - // CAVEAT: The returned AssertionResult stores a pointer to the argument expr, - // a temporary DecomposedExpression, which in turn holds references to - // operands, possibly temporary as well. - // It should immediately be passed to handleResult; if the expression - // needs to be reported, its string expansion must be composed before - // the temporaries are destroyed. - AssertionResult ResultBuilder::build( DecomposedExpression const& expr ) const - { - assert( m_data.resultType != ResultWas::Unknown ); - AssertionResultData data = m_data; - - // Flip bool results if FalseTest flag is set - if( isFalseTest( m_assertionInfo.resultDisposition ) ) { - data.negate( expr.isBinaryExpression() ); - } - - data.message = m_stream.oss.str(); - data.decomposedExpression = &expr; // for lazy reconstruction - return AssertionResult( m_assertionInfo, data ); - } - - void ResultBuilder::reconstructExpression( std::string& dest ) const { - dest = m_assertionInfo.capturedExpression; - } - -} // end namespace Catch - -// #included from: catch_tag_alias_registry.hpp -#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED - -// #included from: catch_tag_alias_registry.h -#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED - -#include - -namespace Catch { - - class TagAliasRegistry : public ITagAliasRegistry { - public: - virtual ~TagAliasRegistry(); - virtual Option find( std::string const& alias ) const; - virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const; - void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ); - static TagAliasRegistry& get(); - - private: - std::map m_registry; - }; - -} // end namespace Catch - -namespace Catch { - - TagAliasRegistry::~TagAliasRegistry() {} - - Option TagAliasRegistry::find( std::string const& alias ) const { - std::map::const_iterator it = m_registry.find( alias ); - if( it != m_registry.end() ) - return it->second; - else - return Option(); - } - - std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const { - std::string expandedTestSpec = unexpandedTestSpec; - for( std::map::const_iterator it = m_registry.begin(), itEnd = m_registry.end(); - it != itEnd; - ++it ) { - std::size_t pos = expandedTestSpec.find( it->first ); - if( pos != std::string::npos ) { - expandedTestSpec = expandedTestSpec.substr( 0, pos ) + - it->second.tag + - expandedTestSpec.substr( pos + it->first.size() ); - } - } - return expandedTestSpec; - } - - void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) { - - if( !startsWith( alias, "[@" ) || !endsWith( alias, ']' ) ) { - std::ostringstream oss; - oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo; - throw std::domain_error( oss.str().c_str() ); - } - if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) { - std::ostringstream oss; - oss << "error: tag alias, \"" << alias << "\" already registered.\n" - << "\tFirst seen at " << find(alias)->lineInfo << '\n' - << "\tRedefined at " << lineInfo; - throw std::domain_error( oss.str().c_str() ); - } - } - - TagAliasRegistry& TagAliasRegistry::get() { - static TagAliasRegistry instance; - return instance; - - } - - ITagAliasRegistry::~ITagAliasRegistry() {} - ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); } - - RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) { - try { - TagAliasRegistry::get().add( alias, tag, lineInfo ); - } - catch( std::exception& ex ) { - Colour colourGuard( Colour::Red ); - Catch::cerr() << ex.what() << std::endl; - exit(1); - } - } - -} // end namespace Catch - -// #included from: catch_matchers_string.hpp - -namespace Catch { -namespace Matchers { - - namespace StdString { - - CasedString::CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity ) - : m_caseSensitivity( caseSensitivity ), - m_str( adjustString( str ) ) - {} - std::string CasedString::adjustString( std::string const& str ) const { - return m_caseSensitivity == CaseSensitive::No - ? toLower( str ) - : str; - } - std::string CasedString::caseSensitivitySuffix() const { - return m_caseSensitivity == CaseSensitive::No - ? " (case insensitive)" - : std::string(); - } - - StringMatcherBase::StringMatcherBase( std::string operation, CasedString const& comparator ) - : m_comparator( comparator ), - m_operation( operation ) { - } - - std::string StringMatcherBase::describe() const { - std::string description; - description.reserve(5 + m_operation.size() + m_comparator.m_str.size() + - m_comparator.caseSensitivitySuffix().size()); - description += m_operation; - description += ": \""; - description += m_comparator.m_str; - description += "\""; - description += m_comparator.caseSensitivitySuffix(); - return description; - } - - EqualsMatcher::EqualsMatcher( CasedString const& comparator ) : StringMatcherBase( "equals", comparator ) {} - - bool EqualsMatcher::match( std::string const& source ) const { - return m_comparator.adjustString( source ) == m_comparator.m_str; - } - - ContainsMatcher::ContainsMatcher( CasedString const& comparator ) : StringMatcherBase( "contains", comparator ) {} - - bool ContainsMatcher::match( std::string const& source ) const { - return contains( m_comparator.adjustString( source ), m_comparator.m_str ); - } - - StartsWithMatcher::StartsWithMatcher( CasedString const& comparator ) : StringMatcherBase( "starts with", comparator ) {} - - bool StartsWithMatcher::match( std::string const& source ) const { - return startsWith( m_comparator.adjustString( source ), m_comparator.m_str ); - } - - EndsWithMatcher::EndsWithMatcher( CasedString const& comparator ) : StringMatcherBase( "ends with", comparator ) {} - - bool EndsWithMatcher::match( std::string const& source ) const { - return endsWith( m_comparator.adjustString( source ), m_comparator.m_str ); - } - - } // namespace StdString - - StdString::EqualsMatcher Equals( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::EqualsMatcher( StdString::CasedString( str, caseSensitivity) ); - } - StdString::ContainsMatcher Contains( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::ContainsMatcher( StdString::CasedString( str, caseSensitivity) ); - } - StdString::EndsWithMatcher EndsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::EndsWithMatcher( StdString::CasedString( str, caseSensitivity) ); - } - StdString::StartsWithMatcher StartsWith( std::string const& str, CaseSensitive::Choice caseSensitivity ) { - return StdString::StartsWithMatcher( StdString::CasedString( str, caseSensitivity) ); - } - -} // namespace Matchers -} // namespace Catch -// #included from: ../reporters/catch_reporter_multi.hpp -#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED - -namespace Catch { - -class MultipleReporters : public SharedImpl { - typedef std::vector > Reporters; - Reporters m_reporters; - -public: - void add( Ptr const& reporter ) { - m_reporters.push_back( reporter ); - } - -public: // IStreamingReporter - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporters[0]->getPreferences(); - } - - virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->noMatchingTestCases( spec ); - } - - virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testRunStarting( testRunInfo ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testGroupStarting( groupInfo ); - } - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testCaseStarting( testInfo ); - } - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->sectionStarting( sectionInfo ); - } - - virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->assertionStarting( assertionInfo ); - } - - // The return value indicates if the messages buffer should be cleared: - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - bool clearBuffer = false; - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - clearBuffer |= (*it)->assertionEnded( assertionStats ); - return clearBuffer; - } - - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->sectionEnded( sectionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testCaseEnded( testCaseStats ); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testGroupEnded( testGroupStats ); - } - - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->testRunEnded( testRunStats ); - } - - virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end(); - it != itEnd; - ++it ) - (*it)->skipTest( testInfo ); - } - - virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE { - return this; - } - -}; - -Ptr addReporter( Ptr const& existingReporter, Ptr const& additionalReporter ) { - Ptr resultingReporter; - - if( existingReporter ) { - MultipleReporters* multi = existingReporter->tryAsMulti(); - if( !multi ) { - multi = new MultipleReporters; - resultingReporter = Ptr( multi ); - if( existingReporter ) - multi->add( existingReporter ); - } - else - resultingReporter = existingReporter; - multi->add( additionalReporter ); - } - else - resultingReporter = additionalReporter; - - return resultingReporter; -} - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_xml.hpp -#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED - -// #included from: catch_reporter_bases.hpp -#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED - -#include -#include - -namespace Catch { - - struct StreamingReporterBase : SharedImpl { - - StreamingReporterBase( ReporterConfig const& _config ) - : m_config( _config.fullConfig() ), - stream( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = false; - } - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporterPrefs; - } - - virtual ~StreamingReporterBase() CATCH_OVERRIDE; - - virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {} - - virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE { - currentTestRunInfo = _testRunInfo; - } - virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE { - currentGroupInfo = _groupInfo; - } - - virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE { - currentTestCaseInfo = _testInfo; - } - virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE { - m_sectionStack.push_back( _sectionInfo ); - } - - virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE { - m_sectionStack.pop_back(); - } - virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE { - currentTestCaseInfo.reset(); - } - virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE { - currentGroupInfo.reset(); - } - virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE { - currentTestCaseInfo.reset(); - currentGroupInfo.reset(); - currentTestRunInfo.reset(); - } - - virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE { - // Don't do anything with this by default. - // It can optionally be overridden in the derived class. - } - - Ptr m_config; - std::ostream& stream; - - LazyStat currentTestRunInfo; - LazyStat currentGroupInfo; - LazyStat currentTestCaseInfo; - - std::vector m_sectionStack; - ReporterPreferences m_reporterPrefs; - }; - - struct CumulativeReporterBase : SharedImpl { - template - struct Node : SharedImpl<> { - explicit Node( T const& _value ) : value( _value ) {} - virtual ~Node() {} - - typedef std::vector > ChildNodes; - T value; - ChildNodes children; - }; - struct SectionNode : SharedImpl<> { - explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {} - virtual ~SectionNode(); - - bool operator == ( SectionNode const& other ) const { - return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo; - } - bool operator == ( Ptr const& other ) const { - return operator==( *other ); - } - - SectionStats stats; - typedef std::vector > ChildSections; - typedef std::vector Assertions; - ChildSections childSections; - Assertions assertions; - std::string stdOut; - std::string stdErr; - }; - - struct BySectionInfo { - BySectionInfo( SectionInfo const& other ) : m_other( other ) {} - BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {} - bool operator() ( Ptr const& node ) const { - return node->stats.sectionInfo.lineInfo == m_other.lineInfo; - } - private: - void operator=( BySectionInfo const& ); - SectionInfo const& m_other; - }; - - typedef Node TestCaseNode; - typedef Node TestGroupNode; - typedef Node TestRunNode; - - CumulativeReporterBase( ReporterConfig const& _config ) - : m_config( _config.fullConfig() ), - stream( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = false; - } - ~CumulativeReporterBase(); - - virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE { - return m_reporterPrefs; - } - - virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {} - virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {} - - virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {} - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - SectionStats incompleteStats( sectionInfo, Counts(), 0, false ); - Ptr node; - if( m_sectionStack.empty() ) { - if( !m_rootSection ) - m_rootSection = new SectionNode( incompleteStats ); - node = m_rootSection; - } - else { - SectionNode& parentNode = *m_sectionStack.back(); - SectionNode::ChildSections::const_iterator it = - std::find_if( parentNode.childSections.begin(), - parentNode.childSections.end(), - BySectionInfo( sectionInfo ) ); - if( it == parentNode.childSections.end() ) { - node = new SectionNode( incompleteStats ); - parentNode.childSections.push_back( node ); - } - else - node = *it; - } - m_sectionStack.push_back( node ); - m_deepestSection = node; - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {} - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - assert( !m_sectionStack.empty() ); - SectionNode& sectionNode = *m_sectionStack.back(); - sectionNode.assertions.push_back( assertionStats ); - // AssertionResult holds a pointer to a temporary DecomposedExpression, - // which getExpandedExpression() calls to build the expression string. - // Our section stack copy of the assertionResult will likely outlive the - // temporary, so it must be expanded or discarded now to avoid calling - // a destroyed object later. - prepareExpandedExpression( sectionNode.assertions.back().assertionResult ); - return true; - } - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - assert( !m_sectionStack.empty() ); - SectionNode& node = *m_sectionStack.back(); - node.stats = sectionStats; - m_sectionStack.pop_back(); - } - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - Ptr node = new TestCaseNode( testCaseStats ); - assert( m_sectionStack.size() == 0 ); - node->children.push_back( m_rootSection ); - m_testCases.push_back( node ); - m_rootSection.reset(); - - assert( m_deepestSection ); - m_deepestSection->stdOut = testCaseStats.stdOut; - m_deepestSection->stdErr = testCaseStats.stdErr; - } - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - Ptr node = new TestGroupNode( testGroupStats ); - node->children.swap( m_testCases ); - m_testGroups.push_back( node ); - } - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - Ptr node = new TestRunNode( testRunStats ); - node->children.swap( m_testGroups ); - m_testRuns.push_back( node ); - testRunEndedCumulative(); - } - virtual void testRunEndedCumulative() = 0; - - virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {} - - virtual void prepareExpandedExpression( AssertionResult& result ) const { - if( result.isOk() ) - result.discardDecomposedExpression(); - else - result.expandDecomposedExpression(); - } - - Ptr m_config; - std::ostream& stream; - std::vector m_assertions; - std::vector > > m_sections; - std::vector > m_testCases; - std::vector > m_testGroups; - - std::vector > m_testRuns; - - Ptr m_rootSection; - Ptr m_deepestSection; - std::vector > m_sectionStack; - ReporterPreferences m_reporterPrefs; - - }; - - template - char const* getLineOfChars() { - static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0}; - if( !*line ) { - std::memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 ); - line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0; - } - return line; - } - - struct TestEventListenerBase : StreamingReporterBase { - TestEventListenerBase( ReporterConfig const& _config ) - : StreamingReporterBase( _config ) - {} - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {} - virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE { - return false; - } - }; - -} // end namespace Catch - -// #included from: ../internal/catch_reporter_registrars.hpp -#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED - -namespace Catch { - - template - class LegacyReporterRegistrar { - - class ReporterFactory : public IReporterFactory { - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new LegacyReporterAdapter( new T( config ) ); - } - - virtual std::string getDescription() const { - return T::getDescription(); - } - }; - - public: - - LegacyReporterRegistrar( std::string const& name ) { - getMutableRegistryHub().registerReporter( name, new ReporterFactory() ); - } - }; - - template - class ReporterRegistrar { - - class ReporterFactory : public SharedImpl { - - // *** Please Note ***: - // - If you end up here looking at a compiler error because it's trying to register - // your custom reporter class be aware that the native reporter interface has changed - // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via - // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter. - // However please consider updating to the new interface as the old one is now - // deprecated and will probably be removed quite soon! - // Please contact me via github if you have any questions at all about this. - // In fact, ideally, please contact me anyway to let me know you've hit this - as I have - // no idea who is actually using custom reporters at all (possibly no-one!). - // The new interface is designed to minimise exposure to interface changes in the future. - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new T( config ); - } - - virtual std::string getDescription() const { - return T::getDescription(); - } - }; - - public: - - ReporterRegistrar( std::string const& name ) { - getMutableRegistryHub().registerReporter( name, new ReporterFactory() ); - } - }; - - template - class ListenerRegistrar { - - class ListenerFactory : public SharedImpl { - - virtual IStreamingReporter* create( ReporterConfig const& config ) const { - return new T( config ); - } - virtual std::string getDescription() const { - return std::string(); - } - }; - - public: - - ListenerRegistrar() { - getMutableRegistryHub().registerListener( new ListenerFactory() ); - } - }; -} - -#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \ - namespace{ Catch::LegacyReporterRegistrar catch_internal_RegistrarFor##reporterType( name ); } - -#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \ - namespace{ Catch::ReporterRegistrar catch_internal_RegistrarFor##reporterType( name ); } - -#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \ - namespace{ Catch::ListenerRegistrar catch_internal_RegistrarFor##listenerType; } - -// #included from: ../internal/catch_xmlwriter.hpp -#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED - -#include -#include -#include -#include - -namespace Catch { - - class XmlEncode { - public: - enum ForWhat { ForTextNodes, ForAttributes }; - - XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes ) - : m_str( str ), - m_forWhat( forWhat ) - {} - - void encodeTo( std::ostream& os ) const { - - // Apostrophe escaping not necessary if we always use " to write attributes - // (see: http://www.w3.org/TR/xml/#syntax) - - for( std::size_t i = 0; i < m_str.size(); ++ i ) { - char c = m_str[i]; - switch( c ) { - case '<': os << "<"; break; - case '&': os << "&"; break; - - case '>': - // See: http://www.w3.org/TR/xml/#syntax - if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' ) - os << ">"; - else - os << c; - break; - - case '\"': - if( m_forWhat == ForAttributes ) - os << """; - else - os << c; - break; - - default: - // Escape control chars - based on contribution by @espenalb in PR #465 and - // by @mrpi PR #588 - if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) { - // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0 - os << "\\x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) - << static_cast( c ); - } - else - os << c; - } - } - } - - friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) { - xmlEncode.encodeTo( os ); - return os; - } - - private: - std::string m_str; - ForWhat m_forWhat; - }; - - class XmlWriter { - public: - - class ScopedElement { - public: - ScopedElement( XmlWriter* writer ) - : m_writer( writer ) - {} - - ScopedElement( ScopedElement const& other ) - : m_writer( other.m_writer ){ - other.m_writer = CATCH_NULL; - } - - ~ScopedElement() { - if( m_writer ) - m_writer->endElement(); - } - - ScopedElement& writeText( std::string const& text, bool indent = true ) { - m_writer->writeText( text, indent ); - return *this; - } - - template - ScopedElement& writeAttribute( std::string const& name, T const& attribute ) { - m_writer->writeAttribute( name, attribute ); - return *this; - } - - private: - mutable XmlWriter* m_writer; - }; - - XmlWriter() - : m_tagIsOpen( false ), - m_needsNewline( false ), - m_os( Catch::cout() ) - { - writeDeclaration(); - } - - XmlWriter( std::ostream& os ) - : m_tagIsOpen( false ), - m_needsNewline( false ), - m_os( os ) - { - writeDeclaration(); - } - - ~XmlWriter() { - while( !m_tags.empty() ) - endElement(); - } - - XmlWriter& startElement( std::string const& name ) { - ensureTagClosed(); - newlineIfNecessary(); - m_os << m_indent << '<' << name; - m_tags.push_back( name ); - m_indent += " "; - m_tagIsOpen = true; - return *this; - } - - ScopedElement scopedElement( std::string const& name ) { - ScopedElement scoped( this ); - startElement( name ); - return scoped; - } - - XmlWriter& endElement() { - newlineIfNecessary(); - m_indent = m_indent.substr( 0, m_indent.size()-2 ); - if( m_tagIsOpen ) { - m_os << "/>"; - m_tagIsOpen = false; - } - else { - m_os << m_indent << ""; - } - m_os << std::endl; - m_tags.pop_back(); - return *this; - } - - XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) { - if( !name.empty() && !attribute.empty() ) - m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"'; - return *this; - } - - XmlWriter& writeAttribute( std::string const& name, bool attribute ) { - m_os << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"'; - return *this; - } - - template - XmlWriter& writeAttribute( std::string const& name, T const& attribute ) { - std::ostringstream oss; - oss << attribute; - return writeAttribute( name, oss.str() ); - } - - XmlWriter& writeText( std::string const& text, bool indent = true ) { - if( !text.empty() ){ - bool tagWasOpen = m_tagIsOpen; - ensureTagClosed(); - if( tagWasOpen && indent ) - m_os << m_indent; - m_os << XmlEncode( text ); - m_needsNewline = true; - } - return *this; - } - - XmlWriter& writeComment( std::string const& text ) { - ensureTagClosed(); - m_os << m_indent << ""; - m_needsNewline = true; - return *this; - } - - void writeStylesheetRef( std::string const& url ) { - m_os << "\n"; - } - - XmlWriter& writeBlankLine() { - ensureTagClosed(); - m_os << '\n'; - return *this; - } - - void ensureTagClosed() { - if( m_tagIsOpen ) { - m_os << ">" << std::endl; - m_tagIsOpen = false; - } - } - - private: - XmlWriter( XmlWriter const& ); - void operator=( XmlWriter const& ); - - void writeDeclaration() { - m_os << "\n"; - } - - void newlineIfNecessary() { - if( m_needsNewline ) { - m_os << std::endl; - m_needsNewline = false; - } - } - - bool m_tagIsOpen; - bool m_needsNewline; - std::vector m_tags; - std::string m_indent; - std::ostream& m_os; - }; - -} -// #included from: catch_reenable_warnings.h - -#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED - -#ifdef __clang__ -# ifdef __ICC // icpc defines the __clang__ macro -# pragma warning(pop) -# else -# pragma clang diagnostic pop -# endif -#elif defined __GNUC__ -# pragma GCC diagnostic pop -#endif - - -namespace Catch { - class XmlReporter : public StreamingReporterBase { - public: - XmlReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - m_xml(_config.stream()), - m_sectionDepth( 0 ) - { - m_reporterPrefs.shouldRedirectStdOut = true; - } - - virtual ~XmlReporter() CATCH_OVERRIDE; - - static std::string getDescription() { - return "Reports test results as an XML document"; - } - - virtual std::string getStylesheetRef() const { - return std::string(); - } - - void writeSourceInfo( SourceLineInfo const& sourceInfo ) { - m_xml - .writeAttribute( "filename", sourceInfo.file ) - .writeAttribute( "line", sourceInfo.line ); - } - - public: // StreamingReporterBase - - virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE { - StreamingReporterBase::noMatchingTestCases( s ); - } - - virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testRunStarting( testInfo ); - std::string stylesheetRef = getStylesheetRef(); - if( !stylesheetRef.empty() ) - m_xml.writeStylesheetRef( stylesheetRef ); - m_xml.startElement( "Catch" ); - if( !m_config->name().empty() ) - m_xml.writeAttribute( "name", m_config->name() ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupStarting( groupInfo ); - m_xml.startElement( "Group" ) - .writeAttribute( "name", groupInfo.name ); - } - - virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseStarting(testInfo); - m_xml.startElement( "TestCase" ) - .writeAttribute( "name", trim( testInfo.name ) ) - .writeAttribute( "description", testInfo.description ) - .writeAttribute( "tags", testInfo.tagsAsString ); - - writeSourceInfo( testInfo.lineInfo ); - - if ( m_config->showDurations() == ShowDurations::Always ) - m_testCaseTimer.start(); - m_xml.ensureTagClosed(); - } - - virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE { - StreamingReporterBase::sectionStarting( sectionInfo ); - if( m_sectionDepth++ > 0 ) { - m_xml.startElement( "Section" ) - .writeAttribute( "name", trim( sectionInfo.name ) ) - .writeAttribute( "description", sectionInfo.description ); - writeSourceInfo( sectionInfo.lineInfo ); - m_xml.ensureTagClosed(); - } - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { } - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - const AssertionResult& assertionResult = assertionStats.assertionResult; - - // Print any info messages in tags. - if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) { - for( std::vector::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end(); - it != itEnd; - ++it ) { - if( it->type == ResultWas::Info ) { - m_xml.scopedElement( "Info" ) - .writeText( it->message ); - } else if ( it->type == ResultWas::Warning ) { - m_xml.scopedElement( "Warning" ) - .writeText( it->message ); - } - } - } - - // Drop out if result was successful but we're not printing them. - if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) ) - return true; - - // Print the expression if there is one. - if( assertionResult.hasExpression() ) { - m_xml.startElement( "Expression" ) - .writeAttribute( "success", assertionResult.succeeded() ) - .writeAttribute( "type", assertionResult.getTestMacroName() ); - - writeSourceInfo( assertionResult.getSourceInfo() ); - - m_xml.scopedElement( "Original" ) - .writeText( assertionResult.getExpression() ); - m_xml.scopedElement( "Expanded" ) - .writeText( assertionResult.getExpandedExpression() ); - } - - // And... Print a result applicable to each result type. - switch( assertionResult.getResultType() ) { - case ResultWas::ThrewException: - m_xml.startElement( "Exception" ); - writeSourceInfo( assertionResult.getSourceInfo() ); - m_xml.writeText( assertionResult.getMessage() ); - m_xml.endElement(); - break; - case ResultWas::FatalErrorCondition: - m_xml.startElement( "FatalErrorCondition" ); - writeSourceInfo( assertionResult.getSourceInfo() ); - m_xml.writeText( assertionResult.getMessage() ); - m_xml.endElement(); - break; - case ResultWas::Info: - m_xml.scopedElement( "Info" ) - .writeText( assertionResult.getMessage() ); - break; - case ResultWas::Warning: - // Warning will already have been written - break; - case ResultWas::ExplicitFailure: - m_xml.startElement( "Failure" ); - writeSourceInfo( assertionResult.getSourceInfo() ); - m_xml.writeText( assertionResult.getMessage() ); - m_xml.endElement(); - break; - default: - break; - } - - if( assertionResult.hasExpression() ) - m_xml.endElement(); - - return true; - } - - virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE { - StreamingReporterBase::sectionEnded( sectionStats ); - if( --m_sectionDepth > 0 ) { - XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" ); - e.writeAttribute( "successes", sectionStats.assertions.passed ); - e.writeAttribute( "failures", sectionStats.assertions.failed ); - e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk ); - - if ( m_config->showDurations() == ShowDurations::Always ) - e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds ); - - m_xml.endElement(); - } - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseEnded( testCaseStats ); - XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" ); - e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() ); - - if ( m_config->showDurations() == ShowDurations::Always ) - e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() ); - - if( !testCaseStats.stdOut.empty() ) - m_xml.scopedElement( "StdOut" ).writeText( trim( testCaseStats.stdOut ), false ); - if( !testCaseStats.stdErr.empty() ) - m_xml.scopedElement( "StdErr" ).writeText( trim( testCaseStats.stdErr ), false ); - - m_xml.endElement(); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - StreamingReporterBase::testGroupEnded( testGroupStats ); - // TODO: Check testGroupStats.aborting and act accordingly. - m_xml.scopedElement( "OverallResults" ) - .writeAttribute( "successes", testGroupStats.totals.assertions.passed ) - .writeAttribute( "failures", testGroupStats.totals.assertions.failed ) - .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk ); - m_xml.endElement(); - } - - virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE { - StreamingReporterBase::testRunEnded( testRunStats ); - m_xml.scopedElement( "OverallResults" ) - .writeAttribute( "successes", testRunStats.totals.assertions.passed ) - .writeAttribute( "failures", testRunStats.totals.assertions.failed ) - .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk ); - m_xml.endElement(); - } - - private: - Timer m_testCaseTimer; - XmlWriter m_xml; - int m_sectionDepth; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter ) - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_junit.hpp -#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED - -#include - -namespace Catch { - - namespace { - std::string getCurrentTimestamp() { - // Beware, this is not reentrant because of backward compatibility issues - // Also, UTC only, again because of backward compatibility (%z is C++11) - time_t rawtime; - std::time(&rawtime); - const size_t timeStampSize = sizeof("2017-01-16T17:06:45Z"); - -#ifdef _MSC_VER - std::tm timeInfo = {}; - gmtime_s(&timeInfo, &rawtime); -#else - std::tm* timeInfo; - timeInfo = std::gmtime(&rawtime); -#endif - - char timeStamp[timeStampSize]; - const char * const fmt = "%Y-%m-%dT%H:%M:%SZ"; - -#ifdef _MSC_VER - std::strftime(timeStamp, timeStampSize, fmt, &timeInfo); -#else - std::strftime(timeStamp, timeStampSize, fmt, timeInfo); -#endif - return std::string(timeStamp); - } - - } - - class JunitReporter : public CumulativeReporterBase { - public: - JunitReporter( ReporterConfig const& _config ) - : CumulativeReporterBase( _config ), - xml( _config.stream() ) - { - m_reporterPrefs.shouldRedirectStdOut = true; - } - - virtual ~JunitReporter() CATCH_OVERRIDE; - - static std::string getDescription() { - return "Reports test results in an XML format that looks like Ant's junitreport target"; - } - - virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {} - - virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE { - CumulativeReporterBase::testRunStarting( runInfo ); - xml.startElement( "testsuites" ); - } - - virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE { - suiteTimer.start(); - stdOutForSuite.str(""); - stdErrForSuite.str(""); - unexpectedExceptions = 0; - CumulativeReporterBase::testGroupStarting( groupInfo ); - } - - virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE { - if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException ) - unexpectedExceptions++; - return CumulativeReporterBase::assertionEnded( assertionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE { - stdOutForSuite << testCaseStats.stdOut; - stdErrForSuite << testCaseStats.stdErr; - CumulativeReporterBase::testCaseEnded( testCaseStats ); - } - - virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE { - double suiteTime = suiteTimer.getElapsedSeconds(); - CumulativeReporterBase::testGroupEnded( testGroupStats ); - writeGroup( *m_testGroups.back(), suiteTime ); - } - - virtual void testRunEndedCumulative() CATCH_OVERRIDE { - xml.endElement(); - } - - void writeGroup( TestGroupNode const& groupNode, double suiteTime ) { - XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" ); - TestGroupStats const& stats = groupNode.value; - xml.writeAttribute( "name", stats.groupInfo.name ); - xml.writeAttribute( "errors", unexpectedExceptions ); - xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions ); - xml.writeAttribute( "tests", stats.totals.assertions.total() ); - xml.writeAttribute( "hostname", "tbd" ); // !TBD - if( m_config->showDurations() == ShowDurations::Never ) - xml.writeAttribute( "time", "" ); - else - xml.writeAttribute( "time", suiteTime ); - xml.writeAttribute( "timestamp", getCurrentTimestamp() ); - - // Write test cases - for( TestGroupNode::ChildNodes::const_iterator - it = groupNode.children.begin(), itEnd = groupNode.children.end(); - it != itEnd; - ++it ) - writeTestCase( **it ); - - xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false ); - xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false ); - } - - void writeTestCase( TestCaseNode const& testCaseNode ) { - TestCaseStats const& stats = testCaseNode.value; - - // All test cases have exactly one section - which represents the - // test case itself. That section may have 0-n nested sections - assert( testCaseNode.children.size() == 1 ); - SectionNode const& rootSection = *testCaseNode.children.front(); - - std::string className = stats.testInfo.className; - - if( className.empty() ) { - if( rootSection.childSections.empty() ) - className = "global"; - } - writeSection( className, "", rootSection ); - } - - void writeSection( std::string const& className, - std::string const& rootName, - SectionNode const& sectionNode ) { - std::string name = trim( sectionNode.stats.sectionInfo.name ); - if( !rootName.empty() ) - name = rootName + '/' + name; - - if( !sectionNode.assertions.empty() || - !sectionNode.stdOut.empty() || - !sectionNode.stdErr.empty() ) { - XmlWriter::ScopedElement e = xml.scopedElement( "testcase" ); - if( className.empty() ) { - xml.writeAttribute( "classname", name ); - xml.writeAttribute( "name", "root" ); - } - else { - xml.writeAttribute( "classname", className ); - xml.writeAttribute( "name", name ); - } - xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) ); - - writeAssertions( sectionNode ); - - if( !sectionNode.stdOut.empty() ) - xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false ); - if( !sectionNode.stdErr.empty() ) - xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false ); - } - for( SectionNode::ChildSections::const_iterator - it = sectionNode.childSections.begin(), - itEnd = sectionNode.childSections.end(); - it != itEnd; - ++it ) - if( className.empty() ) - writeSection( name, "", **it ); - else - writeSection( className, name, **it ); - } - - void writeAssertions( SectionNode const& sectionNode ) { - for( SectionNode::Assertions::const_iterator - it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end(); - it != itEnd; - ++it ) - writeAssertion( *it ); - } - void writeAssertion( AssertionStats const& stats ) { - AssertionResult const& result = stats.assertionResult; - if( !result.isOk() ) { - std::string elementName; - switch( result.getResultType() ) { - case ResultWas::ThrewException: - case ResultWas::FatalErrorCondition: - elementName = "error"; - break; - case ResultWas::ExplicitFailure: - elementName = "failure"; - break; - case ResultWas::ExpressionFailed: - elementName = "failure"; - break; - case ResultWas::DidntThrowException: - elementName = "failure"; - break; - - // We should never see these here: - case ResultWas::Info: - case ResultWas::Warning: - case ResultWas::Ok: - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - elementName = "internalError"; - break; - } - - XmlWriter::ScopedElement e = xml.scopedElement( elementName ); - - xml.writeAttribute( "message", result.getExpandedExpression() ); - xml.writeAttribute( "type", result.getTestMacroName() ); - - std::ostringstream oss; - if( !result.getMessage().empty() ) - oss << result.getMessage() << '\n'; - for( std::vector::const_iterator - it = stats.infoMessages.begin(), - itEnd = stats.infoMessages.end(); - it != itEnd; - ++it ) - if( it->type == ResultWas::Info ) - oss << it->message << '\n'; - - oss << "at " << result.getSourceInfo(); - xml.writeText( oss.str(), false ); - } - } - - XmlWriter xml; - Timer suiteTimer; - std::ostringstream stdOutForSuite; - std::ostringstream stdErrForSuite; - unsigned int unexpectedExceptions; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter ) - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_console.hpp -#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED - -#include -#include - -namespace Catch { - - namespace { - // Because formatting using c++ streams is stateful, drop down to C is required - // Alternatively we could use stringstream, but its performance is... not good. - std::string getFormattedDuration( double duration ) { - // Max exponent + 1 is required to represent the whole part - // + 1 for decimal point - // + 3 for the 3 decimal places - // + 1 for null terminator - const size_t maxDoubleSize = DBL_MAX_10_EXP + 1 + 1 + 3 + 1; - char buffer[maxDoubleSize]; -#ifdef _MSC_VER - sprintf_s(buffer, "%.3f", duration); -#else - sprintf(buffer, "%.3f", duration); -#endif - return std::string(buffer); - } - } - - struct ConsoleReporter : StreamingReporterBase { - ConsoleReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ), - m_headerPrinted( false ) - {} - - virtual ~ConsoleReporter() CATCH_OVERRIDE; - static std::string getDescription() { - return "Reports test results as plain lines of text"; - } - - virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE { - stream << "No test cases matched '" << spec << '\'' << std::endl; - } - - virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { - } - - virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE { - AssertionResult const& result = _assertionStats.assertionResult; - - bool printInfoMessages = true; - - // Drop out if result was successful and we're not printing those - if( !m_config->includeSuccessfulResults() && result.isOk() ) { - if( result.getResultType() != ResultWas::Warning ) - return false; - printInfoMessages = false; - } - - lazyPrint(); - - AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); - printer.print(); - stream << std::endl; - return true; - } - - virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE { - m_headerPrinted = false; - StreamingReporterBase::sectionStarting( _sectionInfo ); - } - virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE { - if( _sectionStats.missingAssertions ) { - lazyPrint(); - Colour colour( Colour::ResultError ); - if( m_sectionStack.size() > 1 ) - stream << "\nNo assertions in section"; - else - stream << "\nNo assertions in test case"; - stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl; - } - if( m_config->showDurations() == ShowDurations::Always ) { - stream << getFormattedDuration(_sectionStats.durationInSeconds) << " s: " << _sectionStats.sectionInfo.name << std::endl; - } - if( m_headerPrinted ) { - m_headerPrinted = false; - } - StreamingReporterBase::sectionEnded( _sectionStats ); - } - - virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE { - StreamingReporterBase::testCaseEnded( _testCaseStats ); - m_headerPrinted = false; - } - virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE { - if( currentGroupInfo.used ) { - printSummaryDivider(); - stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n"; - printTotals( _testGroupStats.totals ); - stream << '\n' << std::endl; - } - StreamingReporterBase::testGroupEnded( _testGroupStats ); - } - virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE { - printTotalsDivider( _testRunStats.totals ); - printTotals( _testRunStats.totals ); - stream << std::endl; - StreamingReporterBase::testRunEnded( _testRunStats ); - } - - private: - - class AssertionPrinter { - void operator= ( AssertionPrinter const& ); - public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) - : stream( _stream ), - stats( _stats ), - result( _stats.assertionResult ), - colour( Colour::None ), - message( result.getMessage() ), - messages( _stats.infoMessages ), - printInfoMessages( _printInfoMessages ) - { - switch( result.getResultType() ) { - case ResultWas::Ok: - colour = Colour::Success; - passOrFail = "PASSED"; - //if( result.hasMessage() ) - if( _stats.infoMessages.size() == 1 ) - messageLabel = "with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "with messages"; - break; - case ResultWas::ExpressionFailed: - if( result.isOk() ) { - colour = Colour::Success; - passOrFail = "FAILED - but was ok"; - } - else { - colour = Colour::Error; - passOrFail = "FAILED"; - } - if( _stats.infoMessages.size() == 1 ) - messageLabel = "with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "with messages"; - break; - case ResultWas::ThrewException: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "due to unexpected exception with message"; - break; - case ResultWas::FatalErrorCondition: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "due to a fatal error condition"; - break; - case ResultWas::DidntThrowException: - colour = Colour::Error; - passOrFail = "FAILED"; - messageLabel = "because no exception was thrown where one was expected"; - break; - case ResultWas::Info: - messageLabel = "info"; - break; - case ResultWas::Warning: - messageLabel = "warning"; - break; - case ResultWas::ExplicitFailure: - passOrFail = "FAILED"; - colour = Colour::Error; - if( _stats.infoMessages.size() == 1 ) - messageLabel = "explicitly with message"; - if( _stats.infoMessages.size() > 1 ) - messageLabel = "explicitly with messages"; - break; - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - passOrFail = "** internal error **"; - colour = Colour::Error; - break; - } - } - - void print() const { - printSourceInfo(); - if( stats.totals.assertions.total() > 0 ) { - if( result.isOk() ) - stream << '\n'; - printResultType(); - printOriginalExpression(); - printReconstructedExpression(); - } - else { - stream << '\n'; - } - printMessage(); - } - - private: - void printResultType() const { - if( !passOrFail.empty() ) { - Colour colourGuard( colour ); - stream << passOrFail << ":\n"; - } - } - void printOriginalExpression() const { - if( result.hasExpression() ) { - Colour colourGuard( Colour::OriginalExpression ); - stream << " "; - stream << result.getExpressionInMacro(); - stream << '\n'; - } - } - void printReconstructedExpression() const { - if( result.hasExpandedExpression() ) { - stream << "with expansion:\n"; - Colour colourGuard( Colour::ReconstructedExpression ); - stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << '\n'; - } - } - void printMessage() const { - if( !messageLabel.empty() ) - stream << messageLabel << ':' << '\n'; - for( std::vector::const_iterator it = messages.begin(), itEnd = messages.end(); - it != itEnd; - ++it ) { - // If this assertion is a warning ignore any INFO messages - if( printInfoMessages || it->type != ResultWas::Info ) - stream << Text( it->message, TextAttributes().setIndent(2) ) << '\n'; - } - } - void printSourceInfo() const { - Colour colourGuard( Colour::FileName ); - stream << result.getSourceInfo() << ": "; - } - - std::ostream& stream; - AssertionStats const& stats; - AssertionResult const& result; - Colour::Code colour; - std::string passOrFail; - std::string messageLabel; - std::string message; - std::vector messages; - bool printInfoMessages; - }; - - void lazyPrint() { - - if( !currentTestRunInfo.used ) - lazyPrintRunInfo(); - if( !currentGroupInfo.used ) - lazyPrintGroupInfo(); - - if( !m_headerPrinted ) { - printTestCaseAndSectionHeader(); - m_headerPrinted = true; - } - } - void lazyPrintRunInfo() { - stream << '\n' << getLineOfChars<'~'>() << '\n'; - Colour colour( Colour::SecondaryText ); - stream << currentTestRunInfo->name - << " is a Catch v" << libraryVersion << " host application.\n" - << "Run with -? for options\n\n"; - - if( m_config->rngSeed() != 0 ) - stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n"; - - currentTestRunInfo.used = true; - } - void lazyPrintGroupInfo() { - if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) { - printClosedHeader( "Group: " + currentGroupInfo->name ); - currentGroupInfo.used = true; - } - } - void printTestCaseAndSectionHeader() { - assert( !m_sectionStack.empty() ); - printOpenHeader( currentTestCaseInfo->name ); - - if( m_sectionStack.size() > 1 ) { - Colour colourGuard( Colour::Headers ); - - std::vector::const_iterator - it = m_sectionStack.begin()+1, // Skip first section (test case) - itEnd = m_sectionStack.end(); - for( ; it != itEnd; ++it ) - printHeaderString( it->name, 2 ); - } - - SourceLineInfo lineInfo = m_sectionStack.back().lineInfo; - - if( !lineInfo.empty() ){ - stream << getLineOfChars<'-'>() << '\n'; - Colour colourGuard( Colour::FileName ); - stream << lineInfo << '\n'; - } - stream << getLineOfChars<'.'>() << '\n' << std::endl; - } - - void printClosedHeader( std::string const& _name ) { - printOpenHeader( _name ); - stream << getLineOfChars<'.'>() << '\n'; - } - void printOpenHeader( std::string const& _name ) { - stream << getLineOfChars<'-'>() << '\n'; - { - Colour colourGuard( Colour::Headers ); - printHeaderString( _name ); - } - } - - // if string has a : in first line will set indent to follow it on - // subsequent lines - void printHeaderString( std::string const& _string, std::size_t indent = 0 ) { - std::size_t i = _string.find( ": " ); - if( i != std::string::npos ) - i+=2; - else - i = 0; - stream << Text( _string, TextAttributes() - .setIndent( indent+i) - .setInitialIndent( indent ) ) << '\n'; - } - - struct SummaryColumn { - - SummaryColumn( std::string const& _label, Colour::Code _colour ) - : label( _label ), - colour( _colour ) - {} - SummaryColumn addRow( std::size_t count ) { - std::ostringstream oss; - oss << count; - std::string row = oss.str(); - for( std::vector::iterator it = rows.begin(); it != rows.end(); ++it ) { - while( it->size() < row.size() ) - *it = ' ' + *it; - while( it->size() > row.size() ) - row = ' ' + row; - } - rows.push_back( row ); - return *this; - } - - std::string label; - Colour::Code colour; - std::vector rows; - - }; - - void printTotals( Totals const& totals ) { - if( totals.testCases.total() == 0 ) { - stream << Colour( Colour::Warning ) << "No tests ran\n"; - } - else if( totals.assertions.total() > 0 && totals.testCases.allPassed() ) { - stream << Colour( Colour::ResultSuccess ) << "All tests passed"; - stream << " (" - << pluralise( totals.assertions.passed, "assertion" ) << " in " - << pluralise( totals.testCases.passed, "test case" ) << ')' - << '\n'; - } - else { - - std::vector columns; - columns.push_back( SummaryColumn( "", Colour::None ) - .addRow( totals.testCases.total() ) - .addRow( totals.assertions.total() ) ); - columns.push_back( SummaryColumn( "passed", Colour::Success ) - .addRow( totals.testCases.passed ) - .addRow( totals.assertions.passed ) ); - columns.push_back( SummaryColumn( "failed", Colour::ResultError ) - .addRow( totals.testCases.failed ) - .addRow( totals.assertions.failed ) ); - columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure ) - .addRow( totals.testCases.failedButOk ) - .addRow( totals.assertions.failedButOk ) ); - - printSummaryRow( "test cases", columns, 0 ); - printSummaryRow( "assertions", columns, 1 ); - } - } - void printSummaryRow( std::string const& label, std::vector const& cols, std::size_t row ) { - for( std::vector::const_iterator it = cols.begin(); it != cols.end(); ++it ) { - std::string value = it->rows[row]; - if( it->label.empty() ) { - stream << label << ": "; - if( value != "0" ) - stream << value; - else - stream << Colour( Colour::Warning ) << "- none -"; - } - else if( value != "0" ) { - stream << Colour( Colour::LightGrey ) << " | "; - stream << Colour( it->colour ) - << value << ' ' << it->label; - } - } - stream << '\n'; - } - - static std::size_t makeRatio( std::size_t number, std::size_t total ) { - std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0; - return ( ratio == 0 && number > 0 ) ? 1 : ratio; - } - static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) { - if( i > j && i > k ) - return i; - else if( j > k ) - return j; - else - return k; - } - - void printTotalsDivider( Totals const& totals ) { - if( totals.testCases.total() > 0 ) { - std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() ); - std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() ); - std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() ); - while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 ) - findMax( failedRatio, failedButOkRatio, passedRatio )++; - while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 ) - findMax( failedRatio, failedButOkRatio, passedRatio )--; - - stream << Colour( Colour::Error ) << std::string( failedRatio, '=' ); - stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' ); - if( totals.testCases.allPassed() ) - stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' ); - else - stream << Colour( Colour::Success ) << std::string( passedRatio, '=' ); - } - else { - stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' ); - } - stream << '\n'; - } - void printSummaryDivider() { - stream << getLineOfChars<'-'>() << '\n'; - } - - private: - bool m_headerPrinted; - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter ) - -} // end namespace Catch - -// #included from: ../reporters/catch_reporter_compact.hpp -#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED - -namespace Catch { - - struct CompactReporter : StreamingReporterBase { - - CompactReporter( ReporterConfig const& _config ) - : StreamingReporterBase( _config ) - {} - - virtual ~CompactReporter(); - - static std::string getDescription() { - return "Reports test results on a single line, suitable for IDEs"; - } - - virtual ReporterPreferences getPreferences() const { - ReporterPreferences prefs; - prefs.shouldRedirectStdOut = false; - return prefs; - } - - virtual void noMatchingTestCases( std::string const& spec ) { - stream << "No test cases matched '" << spec << '\'' << std::endl; - } - - virtual void assertionStarting( AssertionInfo const& ) { - } - - virtual bool assertionEnded( AssertionStats const& _assertionStats ) { - AssertionResult const& result = _assertionStats.assertionResult; - - bool printInfoMessages = true; - - // Drop out if result was successful and we're not printing those - if( !m_config->includeSuccessfulResults() && result.isOk() ) { - if( result.getResultType() != ResultWas::Warning ) - return false; - printInfoMessages = false; - } - - AssertionPrinter printer( stream, _assertionStats, printInfoMessages ); - printer.print(); - - stream << std::endl; - return true; - } - - virtual void testRunEnded( TestRunStats const& _testRunStats ) { - printTotals( _testRunStats.totals ); - stream << '\n' << std::endl; - StreamingReporterBase::testRunEnded( _testRunStats ); - } - - private: - class AssertionPrinter { - void operator= ( AssertionPrinter const& ); - public: - AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages ) - : stream( _stream ) - , stats( _stats ) - , result( _stats.assertionResult ) - , messages( _stats.infoMessages ) - , itMessage( _stats.infoMessages.begin() ) - , printInfoMessages( _printInfoMessages ) - {} - - void print() { - printSourceInfo(); - - itMessage = messages.begin(); - - switch( result.getResultType() ) { - case ResultWas::Ok: - printResultType( Colour::ResultSuccess, passedString() ); - printOriginalExpression(); - printReconstructedExpression(); - if ( ! result.hasExpression() ) - printRemainingMessages( Colour::None ); - else - printRemainingMessages(); - break; - case ResultWas::ExpressionFailed: - if( result.isOk() ) - printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) ); - else - printResultType( Colour::Error, failedString() ); - printOriginalExpression(); - printReconstructedExpression(); - printRemainingMessages(); - break; - case ResultWas::ThrewException: - printResultType( Colour::Error, failedString() ); - printIssue( "unexpected exception with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::FatalErrorCondition: - printResultType( Colour::Error, failedString() ); - printIssue( "fatal error condition with message:" ); - printMessage(); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::DidntThrowException: - printResultType( Colour::Error, failedString() ); - printIssue( "expected exception, got none" ); - printExpressionWas(); - printRemainingMessages(); - break; - case ResultWas::Info: - printResultType( Colour::None, "info" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::Warning: - printResultType( Colour::None, "warning" ); - printMessage(); - printRemainingMessages(); - break; - case ResultWas::ExplicitFailure: - printResultType( Colour::Error, failedString() ); - printIssue( "explicitly" ); - printRemainingMessages( Colour::None ); - break; - // These cases are here to prevent compiler warnings - case ResultWas::Unknown: - case ResultWas::FailureBit: - case ResultWas::Exception: - printResultType( Colour::Error, "** internal error **" ); - break; - } - } - - private: - // Colour::LightGrey - - static Colour::Code dimColour() { return Colour::FileName; } - -#ifdef CATCH_PLATFORM_MAC - static const char* failedString() { return "FAILED"; } - static const char* passedString() { return "PASSED"; } -#else - static const char* failedString() { return "failed"; } - static const char* passedString() { return "passed"; } -#endif - - void printSourceInfo() const { - Colour colourGuard( Colour::FileName ); - stream << result.getSourceInfo() << ':'; - } - - void printResultType( Colour::Code colour, std::string passOrFail ) const { - if( !passOrFail.empty() ) { - { - Colour colourGuard( colour ); - stream << ' ' << passOrFail; - } - stream << ':'; - } - } - - void printIssue( std::string issue ) const { - stream << ' ' << issue; - } - - void printExpressionWas() { - if( result.hasExpression() ) { - stream << ';'; - { - Colour colour( dimColour() ); - stream << " expression was:"; - } - printOriginalExpression(); - } - } - - void printOriginalExpression() const { - if( result.hasExpression() ) { - stream << ' ' << result.getExpression(); - } - } - - void printReconstructedExpression() const { - if( result.hasExpandedExpression() ) { - { - Colour colour( dimColour() ); - stream << " for: "; - } - stream << result.getExpandedExpression(); - } - } - - void printMessage() { - if ( itMessage != messages.end() ) { - stream << " '" << itMessage->message << '\''; - ++itMessage; - } - } - - void printRemainingMessages( Colour::Code colour = dimColour() ) { - if ( itMessage == messages.end() ) - return; - - // using messages.end() directly yields compilation error: - std::vector::const_iterator itEnd = messages.end(); - const std::size_t N = static_cast( std::distance( itMessage, itEnd ) ); - - { - Colour colourGuard( colour ); - stream << " with " << pluralise( N, "message" ) << ':'; - } - - for(; itMessage != itEnd; ) { - // If this assertion is a warning ignore any INFO messages - if( printInfoMessages || itMessage->type != ResultWas::Info ) { - stream << " '" << itMessage->message << '\''; - if ( ++itMessage != itEnd ) { - Colour colourGuard( dimColour() ); - stream << " and"; - } - } - } - } - - private: - std::ostream& stream; - AssertionStats const& stats; - AssertionResult const& result; - std::vector messages; - std::vector::const_iterator itMessage; - bool printInfoMessages; - }; - - // Colour, message variants: - // - white: No tests ran. - // - red: Failed [both/all] N test cases, failed [both/all] M assertions. - // - white: Passed [both/all] N test cases (no assertions). - // - red: Failed N tests cases, failed M assertions. - // - green: Passed [both/all] N tests cases with M assertions. - - std::string bothOrAll( std::size_t count ) const { - return count == 1 ? std::string() : count == 2 ? "both " : "all " ; - } - - void printTotals( const Totals& totals ) const { - if( totals.testCases.total() == 0 ) { - stream << "No tests ran."; - } - else if( totals.testCases.failed == totals.testCases.total() ) { - Colour colour( Colour::ResultError ); - const std::string qualify_assertions_failed = - totals.assertions.failed == totals.assertions.total() ? - bothOrAll( totals.assertions.failed ) : std::string(); - stream << - "Failed " << bothOrAll( totals.testCases.failed ) - << pluralise( totals.testCases.failed, "test case" ) << ", " - "failed " << qualify_assertions_failed << - pluralise( totals.assertions.failed, "assertion" ) << '.'; - } - else if( totals.assertions.total() == 0 ) { - stream << - "Passed " << bothOrAll( totals.testCases.total() ) - << pluralise( totals.testCases.total(), "test case" ) - << " (no assertions)."; - } - else if( totals.assertions.failed ) { - Colour colour( Colour::ResultError ); - stream << - "Failed " << pluralise( totals.testCases.failed, "test case" ) << ", " - "failed " << pluralise( totals.assertions.failed, "assertion" ) << '.'; - } - else { - Colour colour( Colour::ResultSuccess ); - stream << - "Passed " << bothOrAll( totals.testCases.passed ) - << pluralise( totals.testCases.passed, "test case" ) << - " with " << pluralise( totals.assertions.passed, "assertion" ) << '.'; - } - } - }; - - INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter ) - -} // end namespace Catch - -namespace Catch { - // These are all here to avoid warnings about not having any out of line - // virtual methods - NonCopyable::~NonCopyable() {} - IShared::~IShared() {} - IStream::~IStream() CATCH_NOEXCEPT {} - FileStream::~FileStream() CATCH_NOEXCEPT {} - CoutStream::~CoutStream() CATCH_NOEXCEPT {} - DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {} - StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {} - IContext::~IContext() {} - IResultCapture::~IResultCapture() {} - ITestCase::~ITestCase() {} - ITestCaseRegistry::~ITestCaseRegistry() {} - IRegistryHub::~IRegistryHub() {} - IMutableRegistryHub::~IMutableRegistryHub() {} - IExceptionTranslator::~IExceptionTranslator() {} - IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {} - IReporter::~IReporter() {} - IReporterFactory::~IReporterFactory() {} - IReporterRegistry::~IReporterRegistry() {} - IStreamingReporter::~IStreamingReporter() {} - AssertionStats::~AssertionStats() {} - SectionStats::~SectionStats() {} - TestCaseStats::~TestCaseStats() {} - TestGroupStats::~TestGroupStats() {} - TestRunStats::~TestRunStats() {} - CumulativeReporterBase::SectionNode::~SectionNode() {} - CumulativeReporterBase::~CumulativeReporterBase() {} - - StreamingReporterBase::~StreamingReporterBase() {} - ConsoleReporter::~ConsoleReporter() {} - CompactReporter::~CompactReporter() {} - IRunner::~IRunner() {} - IMutableContext::~IMutableContext() {} - IConfig::~IConfig() {} - XmlReporter::~XmlReporter() {} - JunitReporter::~JunitReporter() {} - TestRegistry::~TestRegistry() {} - FreeFunctionTestCase::~FreeFunctionTestCase() {} - IGeneratorInfo::~IGeneratorInfo() {} - IGeneratorsForTest::~IGeneratorsForTest() {} - WildcardPattern::~WildcardPattern() {} - TestSpec::Pattern::~Pattern() {} - TestSpec::NamePattern::~NamePattern() {} - TestSpec::TagPattern::~TagPattern() {} - TestSpec::ExcludedPattern::~ExcludedPattern() {} - - void Config::dummy() {} - - namespace TestCaseTracking { - ITracker::~ITracker() {} - TrackerBase::~TrackerBase() {} - SectionTracker::~SectionTracker() {} - IndexTracker::~IndexTracker() {} - } -} - -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - -#endif - -#ifdef CATCH_CONFIG_MAIN -// #included from: internal/catch_default_main.hpp -#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED - -#ifndef __OBJC__ - -// Standard C/C++ main entry point -int main (int argc, char * argv[]) { - int result = Catch::Session().run( argc, argv ); - return ( result < 0xff ? result : 0xff ); -} - -#else // __OBJC__ - -// Objective-C entry point -int main (int argc, char * const argv[]) { -#if !CATCH_ARC_ENABLED - NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; -#endif - - Catch::registerTestMethods(); - int result = Catch::Session().run( argc, (char* const*)argv ); - -#if !CATCH_ARC_ENABLED - [pool drain]; -#endif - - return ( result < 0xff ? result : 0xff ); -} - -#endif // __OBJC__ - -#endif - -#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED -# undef CLARA_CONFIG_MAIN -#endif - -////// - -// If this config identifier is defined then all CATCH macros are prefixed with CATCH_ -#ifdef CATCH_CONFIG_PREFIX_ALL - -#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" ) -#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" ) - -#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" ) -#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" ) -#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" ) -#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" ) - -#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" ) -#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" ) -#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" ) -#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" ) -#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" ) - -#define CATCH_CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" ) -#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" ) -#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" ) -#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" ) - -#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" ) -#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" ) - -#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" ) -#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg ) -#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" ) -#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" ) -#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" ) - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) - #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) - #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) - #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) - #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) - #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ ) - #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ ) -#else - #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description ) - #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description ) - #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description ) - #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description ) - #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description ) - #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg ) - #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg ) -#endif -#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" ) - -#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) -#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) - -#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr ) - -// "BDD-style" convenience wrappers -#ifdef CATCH_CONFIG_VARIADIC_MACROS -#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ ) -#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) -#else -#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags ) -#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags ) -#endif -#define CATCH_GIVEN( desc ) CATCH_SECTION( std::string( "Given: ") + desc, "" ) -#define CATCH_WHEN( desc ) CATCH_SECTION( std::string( " When: ") + desc, "" ) -#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" ) -#define CATCH_THEN( desc ) CATCH_SECTION( std::string( " Then: ") + desc, "" ) -#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( " And: ") + desc, "" ) - -// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required -#else - -#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" ) -#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" ) - -#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" ) -#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" ) -#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" ) -#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" ) - -#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" ) -#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" ) -#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" ) -#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" ) -#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" ) - -#define CHECK_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" ) -#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" ) -#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" ) -#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" ) - -#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" ) -#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" ) - -#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" ) -#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg ) -#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" ) -#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" ) -#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" ) - -#ifdef CATCH_CONFIG_VARIADIC_MACROS - #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ ) - #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ ) - #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ ) - #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ ) - #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ ) - #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ ) - #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ ) -#else - #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description ) - #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description ) - #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description ) - #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description ) - #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description ) - #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg ) - #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg ) -#endif -#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" ) - -#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) -#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) - -#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr ) - -#endif - -#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) - -// "BDD-style" convenience wrappers -#ifdef CATCH_CONFIG_VARIADIC_MACROS -#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ ) -#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ ) -#else -#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags ) -#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags ) -#endif -#define GIVEN( desc ) SECTION( std::string(" Given: ") + desc, "" ) -#define WHEN( desc ) SECTION( std::string(" When: ") + desc, "" ) -#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" ) -#define THEN( desc ) SECTION( std::string(" Then: ") + desc, "" ) -#define AND_THEN( desc ) SECTION( std::string(" And: ") + desc, "" ) - -using Catch::Detail::Approx; - -#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED - diff --git a/libraries/Lora_Serialization/test/main.cpp b/libraries/Lora_Serialization/test/main.cpp deleted file mode 100644 index 74a17f8..0000000 --- a/libraries/Lora_Serialization/test/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "main.h" - -#include "helpers.cpp" -#include "../src/LoraEncoder.cpp" -#include "../src/LoraMessage.cpp" -#include "test.cpp" diff --git a/libraries/Lora_Serialization/test/main.h b/libraries/Lora_Serialization/test/main.h deleted file mode 100644 index 46281f2..0000000 --- a/libraries/Lora_Serialization/test/main.h +++ /dev/null @@ -1,6 +0,0 @@ -#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file -#include "lib/Catch/single_include/catch.hpp" -#ifndef Arduino_h - #include - typedef uint8_t byte; -#endif diff --git a/libraries/Lora_Serialization/test/roundtrip/latLng.js b/libraries/Lora_Serialization/test/roundtrip/latLng.js deleted file mode 100644 index aa3e1c4..0000000 --- a/libraries/Lora_Serialization/test/roundtrip/latLng.js +++ /dev/null @@ -1,44 +0,0 @@ -import test from 'ava'; -import { decoder, encoder } from '../../src'; - -test('with a positive latLng', t => { - const latLng = [90, 180]; - const buf = encoder.encode([latLng], [encoder.latLng]); - const back = decoder.decode(buf, [decoder.latLng])[0]; - t.deepEqual(back, latLng); - t.pass(); -}); - -test('with a negative latLng', t => { - const latLng = [-90, -180]; - const buf = encoder.encode([latLng], [encoder.latLng]); - const back = decoder.decode(buf, [decoder.latLng])[0]; - t.deepEqual(back, latLng); - t.pass(); -}); - -function fixTuple(tuple, precision) { - return tuple.map(t => +Number(t).toFixed(precision)); -} - -test('with a latitude range', t => { - for(var lat = -90; lat < 90; lat+=0.01) { - const latLng = [lat, 0]; - const buf = encoder.encode([latLng], [encoder.latLng]); - const back = decoder.decode(buf, [decoder.latLng])[0]; - t.deepEqual(fixTuple(back, 2), fixTuple(latLng, 2)); - } - - t.pass(); -}); - -test('with a longitude range', t => { - for(var long = -180; long < 180; long+=0.01) { - const latLng = [0, long]; - const buf = encoder.encode([latLng], [encoder.latLng]); - const back = decoder.decode(buf, [decoder.latLng])[0]; - t.deepEqual(fixTuple(back, 2), fixTuple(latLng, 2)); - } - - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/roundtrip/temperature.js b/libraries/Lora_Serialization/test/roundtrip/temperature.js deleted file mode 100644 index df58244..0000000 --- a/libraries/Lora_Serialization/test/roundtrip/temperature.js +++ /dev/null @@ -1,19 +0,0 @@ -import test from 'ava'; -import { decoder, encoder } from '../../src'; - -test('with 0.01', t => { - const buf = encoder.encode([0.01], [encoder.temperature]); - const back = decoder.decode(buf, [decoder.temperature])[0]; - t.is(back, 0.01); - t.pass(); -}); - -test('with all temperatures', t => { - for (let temperature = -327.6; temperature < 327.6; temperature += 0.1) { - temperature = +temperature.toFixed(1); - const buf = encoder.encode([temperature], [encoder.temperature]); - const back = decoder.decode(buf, [decoder.temperature])[0]; - t.is(back.toFixed(1), temperature.toFixed(1)); - } - t.pass(); -}); diff --git a/libraries/Lora_Serialization/test/test.cpp b/libraries/Lora_Serialization/test/test.cpp deleted file mode 100644 index 7cb111b..0000000 --- a/libraries/Lora_Serialization/test/test.cpp +++ /dev/null @@ -1,196 +0,0 @@ -TEST_CASE( "LoRa Serialization", "[LoRa]" ) { - - SECTION( "should transform a simple unixtime to a byte array" ) { - byte x[4]; - LoraEncoder encoder(x); - encoder.writeUnixtime(1); - byte expected[] = {1, 0, 0, 0}; - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "should transform a given unixtime to a byte array" ) { - uint32_t now = 1467632413; - byte x[4]; - LoraEncoder encoder(x); - byte expected[] = {0x1d, 0x4b, 0x7a, 0x57}; - - encoder.writeUnixtime(now); - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "latLngToBytes should transform a coordinate to a byte array" ) { - byte x[8]; - LoraEncoder encoder(x); - byte expected[] = {0x64, 0xa6, 0xfa, 0xfd, 0x6a, 0x24, 0x04, 0x09}; - - encoder.writeLatLng(-33.905052, 151.26641); - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "uint8ToBytes should transform an unsigned 8bit int to a byte array" ) { - byte x[1]; - LoraEncoder encoder(x); - byte expected[] = {0x0A}; - - encoder.writeUint8(10); - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "uint16ToBytes should transform an unsigned 16bit int to a byte array" ) { - byte x[2]; - LoraEncoder encoder(x); - byte expected[] = {0x9d, 0x5b}; - - encoder.writeUint16(23453); - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "tempToBytes should transform a temperature to a byte array" ) { - byte x[2]; - LoraEncoder encoder(x); - byte expected[] = {0x1f, 0x4c}; - - encoder.writeTemperature(80.12); - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "tempToBytes should transform a negative temperature to a byte array" ) { - byte x[2]; - LoraEncoder encoder(x); - byte expected[] = {0xcf, 0xc7}; - - encoder.writeTemperature(-123.45); - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "humidityToBytes should transform a humidity to a byte array" ) { - byte x[2]; - LoraEncoder encoder(x); - byte expected[] = {0x0f, 0x27}; - - encoder.writeHumidity(99.99); - compare_array(expected, x, 0, sizeof(expected)); - } - - SECTION( "write multiple fields to one byte array" ) { - byte x[19]; - LoraEncoder encoder(x); - byte expected[] = { - 0x1d, 0x4b, 0x7a, 0x57, // Unixtime - 0x64, 0xa6, 0xfa, 0xfd, 0x6a, 0x24, 0x04, 0x09, // coordinate - 0x0A, // Uint8 - 0x9d, 0x5b, // Uint16 - 0x1f, 0x4c, // temperature - 0x0f, 0x27 // humidity - }; - - encoder.writeUnixtime(1467632413); - encoder.writeLatLng(-33.905052, 151.26641); - encoder.writeUint8(10); - encoder.writeUint16(23453); - encoder.writeTemperature(80.12); - encoder.writeHumidity(99.99); - - compare_array(expected, x, 0, sizeof(expected)); - } -} - -TEST_CASE( "LoRa Message", "[LoRa]" ) { - SECTION( "should provide a convenient way to add unixtime" ) { - uint32_t now = 1467632413; - byte expected[] = {0x1d, 0x4b, 0x7a, 0x57}; - LoraMessage message; - - message.addUnixtime(now); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } - - SECTION( "should provide a convenient way to add latLng" ) { - byte expected[] = {0x64, 0xa6, 0xfa, 0xfd, 0x6a, 0x24, 0x04, 0x09}; - LoraMessage message; - - message.addLatLng(-33.905052, 151.26641); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } - - SECTION( "should provide a convenient way to add an unsigned 8bit int" ) { - byte expected[] = {0x0A}; - LoraMessage message; - - message.addUint8(10); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } - - SECTION( "should provide a convenient way to add an unsigned 16bit int" ) { - byte expected[] = {0x9d, 0x5b}; - LoraMessage message; - - message.addUint16(23453); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } - - SECTION( "should provide a convenient way to add a temperature" ) { - byte expected[] = {0x1f, 0x4c}; - LoraMessage message; - - message.addTemperature(80.12); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } - - SECTION( "should provide a convenient way to add a humidity" ) { - byte expected[] = {0x0f, 0x27}; - LoraMessage message; - - message.addHumidity(99.99); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } - - SECTION( "should provide a convenient way to add a bitmap" ) { - byte expected[] = {0x80}; - LoraMessage message; - - message.addBitmap(true, false, false, false, false, false, false, false); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } - - SECTION( "should allow chaining" ) { - byte expected[] = { - 0x1d, 0x4b, 0x7a, 0x57, // Unixtime - 0x64, 0xa6, 0xfa, 0xfd, 0x6a, 0x24, 0x04, 0x09, // coordinate - 0x0A, // Uint8 - 0x9d, 0x5b, // Uint16 - 0x1f, 0x4c, // temperature - 0x0f, 0x27, // humidity - 0x1e, 0x4b, 0x7a, 0x57, // Unixtime, - 0xfd // Bitmap - }; - LoraMessage message; - - message - .addUnixtime(1467632413) - .addLatLng(-33.905052, 151.26641) - .addUint8(10) - .addUint16(23453) - .addTemperature(80.12) - .addHumidity(99.99) - .addUnixtime(1467632414) - .addBitmap(true, true, true, true, true, true, false, true); - - REQUIRE(message.getLength() == sizeof(expected)); - compare_array(expected, message.getBytes(), 0, sizeof(expected)); - } -} diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/ADC_ENOB.PNG b/libraries/SdFat/extras/AnalogBinLoggerExtras/ADC_ENOB.PNG deleted file mode 100644 index 8f23768..0000000 Binary files a/libraries/SdFat/extras/AnalogBinLoggerExtras/ADC_ENOB.PNG and /dev/null differ diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/ADCdocs/ATmegaADCAccuracy.pdf b/libraries/SdFat/extras/AnalogBinLoggerExtras/ADCdocs/ATmegaADCAccuracy.pdf deleted file mode 100644 index 46ede85..0000000 Binary files a/libraries/SdFat/extras/AnalogBinLoggerExtras/ADCdocs/ATmegaADCAccuracy.pdf and /dev/null differ diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/ADCdocs/ExcelFFT.pdf b/libraries/SdFat/extras/AnalogBinLoggerExtras/ADCdocs/ExcelFFT.pdf deleted file mode 100644 index 5e7c94b..0000000 Binary files a/libraries/SdFat/extras/AnalogBinLoggerExtras/ADCdocs/ExcelFFT.pdf and /dev/null differ diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/AdcErrorStudy.txt b/libraries/SdFat/extras/AnalogBinLoggerExtras/AdcErrorStudy.txt deleted file mode 100644 index d24d1f6..0000000 --- a/libraries/SdFat/extras/AnalogBinLoggerExtras/AdcErrorStudy.txt +++ /dev/null @@ -1,98 +0,0 @@ -Static Tests of the Arduino Internal ADC. - -Several people have asked about the DC accuracy of the Arduino ADC when used in my data logging applications at slow sample rates. - -Here are my results of some "hobby level" measurements of the Arduino ADC. - -One question is how important is the ADC clock rate. I did measurents for an ADC clock rate of 125 kHz to 2MHz. - -Another question is how much does Noise Reduction Mode help. I did a series of measurements using this mode. - -Noise Reduction Mode only reduced the mean absolute error slightly. - -I do calibration to remove Offset Error and Gain Error. Calibration is very important for good accuracy. - -These tests depend on the Arduino voltage regulator providing a stable voltage during the tests. The Arduino ADC reference voltage is Vcc for these tests. This may not be realistic for practical applications - -Integral Non-linearity (INL) is the main remaining source of error. - -Here are my results for static (DC) tests of the internal ADC for three UNOs. - -The Arduinos are powered by a high quality nine volt power supply. - -These tests measure a DC level so do not include problems due to time jitter, S/H time, and other dynamic errors. -There are several studies of the dynamic behavior of the Arduino ADC that determine ENOB (Effective Number Of Bits). - -I used a shield with a 12-bit MCP4921 DAC to generate voltage levels. This ADC has an output buffer so it provides a very low impedance source. - -I measured the voltage of the DAC with a calibrated 18-bit MCP3422 ADC on the shield. - -I used DAC levels from 20 to 4075 to avoid zero offset errors at low voltages and DAC buffer problems at high voltages. - -Each series of measurements has 4056 data points. - -This is a voltage range of about 0.023 to 4.972 volts. - -I calibrated the Arduino ADC for each series of measurements with a linear fit of the form. - -v = a + b*adcValue - -Errors are the difference between the value measured with the 18-bit ADC and the calibrated value measured with the AVR ADC. - -I also show the results for no calibration, the NoCal column, using the datasheet formula. - -Vin = Vref*adcValue/1024 - - -The rows in the tables tables are. - -Min - minimum error in millivolts - -Max - maximum error in millivolts - -MAE - mean absolute error in millivolts - - -The columns in the tables are: - -Ideal - results for a perfect 10-bit ADC for comparison. - -NoCal - datasheet formula (5/1024)*adcValue with Noise Reduction Mode. - -NR128 - Noise Reduction mode with Prescaler of 128 (ADC clock of 125 kHz). - -PS128 - analogRead with Prescaler of 128 (ADC clock of 125 kHz). - -PS64 - analogRead with Prescaler of 64 (ADC clock of 250 kHz). - -PS32 - analogRead with Prescaler of 32 (ADC clock of 500 kHz). - -PS16 - analogRead with Prescaler of 16 (ADC clock of 1 MHz). - -PS8 - analogRead with Prescaler of 8 (ADC clock of 2 MHz). - - -Results for three UNO Arduinos - - First Arduino - Error Millivolts - - Ideal NoCal NR128 PS128 PS64 PS32 PS16 PS8 -Min -2.44 -2.43 -3.72 -4.01 -3.88 -4.53 -6.57 -27.18 -Max 2.44 11.69 3.74 4.24 4.15 5.17 8.69 23.21 -MAE 1.22 5.02 1.33 1.38 1.37 1.44 1.96 4.11 - - Second Arduino - Error Millivolts - - Ideal NoCal NR128 PS128 PS64 PS32 PS16 PS8 -Min -2.44 -9.24 -4.87 -4.86 -5.05 -5.34 -6.52 -24.04 -Max 2.44 11.62 3.95 4.64 4.69 5.71 8.41 21.29 -MAE 1.22 5.33 1.41 1.43 1.44 1.53 2.02 4.05 - - Third Arduino - Error Millivolts - - Ideal NoCal NR128 PS128 PS64 PS32 PS16 PS8 -Min -2.44 -7.88 -4.12 -4.40 -4.32 -4.41 -6.97 -26.93 -Max 2.44 12.53 3.80 4.04 4.18 5.27 8.84 24.59 -MAE 1.22 4.85 1.29 1.33 1.34 1.42 1.91 4.10 - - diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/DATA.png b/libraries/SdFat/extras/AnalogBinLoggerExtras/DATA.png deleted file mode 100644 index a9b31aa..0000000 Binary files a/libraries/SdFat/extras/AnalogBinLoggerExtras/DATA.png and /dev/null differ diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/FFT.png b/libraries/SdFat/extras/AnalogBinLoggerExtras/FFT.png deleted file mode 100644 index dc481a6..0000000 Binary files a/libraries/SdFat/extras/AnalogBinLoggerExtras/FFT.png and /dev/null differ diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/RateTable.txt b/libraries/SdFat/extras/AnalogBinLoggerExtras/RateTable.txt deleted file mode 100644 index 554ba11..0000000 --- a/libraries/SdFat/extras/AnalogBinLoggerExtras/RateTable.txt +++ /dev/null @@ -1,21 +0,0 @@ -Maximum Sample Rate Table - - ADC clock kHz - 125 250 500 1000 -pins -1 7692 14286 25000 40000 -2 3810 6667 11111 16667 -3 2572 4790 8421 13559 -4 1942 3636 6452 10526 -5 1559 2930 5229 8602 -6 1303 2454 4396 7273 -7 1119 2111 3791 6299 -8 980 1852 3333 5556 -9 872 1649 2974 4969 -10 786 1487 2685 4494 -11 715 1354 2446 4103 -12 656 1242 2247 3774 -13 606 1148 2078 3493 -14 563 1067 1932 3252 -15 525 996 1806 3042 -16 493 935 1695 2857 diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/bintocsv/AnalogBinLogger.h b/libraries/SdFat/extras/AnalogBinLoggerExtras/bintocsv/AnalogBinLogger.h deleted file mode 100644 index da4d448..0000000 --- a/libraries/SdFat/extras/AnalogBinLoggerExtras/bintocsv/AnalogBinLogger.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef AnalogBinLogger_h -#define AnalogBinLogger_h -//------------------------------------------------------------------------------ -// First block of file. -struct metadata_t { - unsigned long adcFrequency; // ADC clock frequency - unsigned long cpuFrequency; // CPU clock frequency - unsigned long sampleInterval; // Sample interval in CPU cycles. - unsigned long recordEightBits; // Size of ADC values, nonzero for 8-bits. - unsigned long pinCount; // Number of analog pins in a sample. - unsigned long pinNumber[123]; // List of pin numbers in a sample. -}; -//------------------------------------------------------------------------------ -// Data block for 8-bit ADC mode. -const size_t DATA_DIM8 = 508; -struct block8_t { - unsigned short count; // count of data bytes - unsigned short overrun; // count of overruns since last block - unsigned char data[DATA_DIM8]; -}; -//------------------------------------------------------------------------------ -// Data block for 10-bit ADC mode. -const size_t DATA_DIM16 = 254; -struct block16_t { - unsigned short count; // count of data bytes - unsigned short overrun; // count of overruns since last block - unsigned short data[DATA_DIM16]; -}; -//------------------------------------------------------------------------------ -// Data block for PC use -struct adcdata_t { - unsigned short count; // count of data bytes - unsigned short overrun; // count of overruns since last block - union { - unsigned char u8[DATA_DIM8]; - unsigned short u16[DATA_DIM16]; - } data; -}; -#endif // AnalogBinLogger_h \ No newline at end of file diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/bintocsv/bintocsv.cpp b/libraries/SdFat/extras/AnalogBinLoggerExtras/bintocsv/bintocsv.cpp deleted file mode 100644 index 922644b..0000000 --- a/libraries/SdFat/extras/AnalogBinLoggerExtras/bintocsv/bintocsv.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#include -#include "AnalogBinLogger.h" -FILE *source; -FILE *destination; -int count = 0; - -int main(int argc, char** argv) { - metadata_t meta; - adcdata_t adc; - // Make sure no padding/size problems. - if (sizeof(meta) != 512 || sizeof(adc) != 512) { - printf("block size error\n"); - return 0; - } - if (argc != 3) { - printf("missing arguments:\n"); - printf("%s binFile csvFile\n", argv[0]); - return 0; - } - source = fopen(argv[1], "rb"); - if (!source) { - printf("open failed for %s\n", argv[1]); - return 0; - } - if (fread(&meta, sizeof(meta), 1, source) != 1) { - printf("read meta data failed\n"); - return 0; - } - if ( meta.pinCount == 0 - || meta.pinCount > (sizeof(meta.pinNumber)/sizeof(meta.pinNumber[0])) - || meta.adcFrequency < 50000 || meta.adcFrequency > 4000000) { - printf("Invalid meta data\n"); - return 0; - } - destination = fopen(argv[2], "w"); - if (!destination) { - printf("open failed for %s\n", argv[2]); - return 0; - } - int pinCount = meta.pinCount; - printf("pinCount: %d\n", pinCount); - printf("Sample pins:"); - for (unsigned i = 0; i < meta.pinCount; i++) { - printf(" %d", meta.pinNumber[i]); - } - printf("\n"); - printf("ADC clock rate: %g kHz\n", 0.001*meta.adcFrequency); - float sampleInterval = (float)meta.sampleInterval/(float)meta.cpuFrequency; - printf("Sample rate: %g per sec\n", 1.0/sampleInterval); - printf("Sample interval: %.4f usec\n", 1.0e6*sampleInterval); - - fprintf(destination, "Interval,%.4f,usec\n", 1.0e6*sampleInterval); - // Write header with pin numbers - for (int i = 0; i < ((int)meta.pinCount - 1); i++) { - fprintf(destination, "pin%d,", meta.pinNumber[i]); - } - fprintf(destination, "pin%d\n", meta.pinNumber[meta.pinCount - 1]); - unsigned maxCount = meta.recordEightBits ? DATA_DIM8 : DATA_DIM16; - while (!feof(source)) { - if (fread(&adc, sizeof(adc), 1, source) != 1) break; - if (adc.count > maxCount) { - printf("****Invalid data block****\n"); - return 0; - } - if (adc.overrun) { - fprintf(destination, "Overruns,%d\n", adc.overrun); - } - for (int i = 0; i < adc.count; i++) { - unsigned value = meta.recordEightBits ? adc.data.u8[i] : adc.data.u16[i]; - if ((i + 1)%pinCount) { - fprintf(destination, "%d,", value); - } else { - fprintf(destination, "%d\n", value); - } - } - count += adc.count; - } - printf("%d ADC values read\n", count); - fclose(source); - fclose(destination); - return 0; -} \ No newline at end of file diff --git a/libraries/SdFat/extras/AnalogBinLoggerExtras/readme.txt b/libraries/SdFat/extras/AnalogBinLoggerExtras/readme.txt deleted file mode 100644 index 3ae2ca2..0000000 --- a/libraries/SdFat/extras/AnalogBinLoggerExtras/readme.txt +++ /dev/null @@ -1,95 +0,0 @@ -AnalogBinLogger.ino logs analog data to a binary SD file at high rates. - -Samples are logged at regular intervals by using timer1. Timer/Counter1 -Compare Match B is used to trigger the ADC for the first pin in a sample. -The ADC is triggered for remaining sample pins in the ADC conversion complete -interrupt routine. - -Data is captured in the ADC interrupt routine and saved in 512 byte buffers. - -Buffered data is written to the SD in a function called from loop(). The -entire data set is written to a large contiguous file as a single multi-block -write. This reduces write latency problems. - -Many inexpensive SD cards work well at lower rates. I used a $6.00 -SanDisk 4 GB class 4 card for testing. - -SanDisk class 4 cards work well at fairly high rates. I used the 4 GB SanDisk -card to log a single pin at 40,000 samples per second. - -You may need to increase the time between samples if your card has higher -latency. Using a Mega Arduino can help since it has more buffering. - -The bintocsv folder contains a PC program for converting binary files to -CSV files. Build it from the included source files. bintocvs is a command line program. - -bintocsv binFile csvFile - -AnalogBinLogger requires a recent version of the SdFat library. The SdFat -folder contains a beta version I used for development. - -The latest stable version is here: -http://code.google.com/p/sdfatlib/downloads/list - -You also need to install the included BufferedWriter library. It provides -fast text formatting. - -Example data for a 2 kHz sine wave logged at 40,000 samples per second is -shown in DATA.PNG and FFT.PNG shows a FFT of the data. See ExcelFFT.pdf -in the ADCdocs folder for details on calculating a FFT. - -The accuracy of the ADC samples depends on the ADC clock rate. See the -ADC_ENOB.PNG file for a plot of accuracy vs ADC clock frequency. - -See files in the ADCdocs folder for more information on ADC accuracy. - -To modify this program you will need a good knowledge of the Arduino -ADC, timer1 and C++ programming. This is not for the newbie. - -I have an LED and resistor connected to pin 3 to signal fatal errors and -data overruns. Fatal errors are indicated by a blinking led. Overrun errors -are indicated by a solid lit led. The count of samples dropped is written -to the SD and data logging continues. - -You can disable the error led feature by setting the error pin number negative: - -To use AnalogBinLogger, install these items. - -Place the BufferWriter and SdFat folders in your sketchbook libraries folder. - -Place the AnalogIsrLogger folder in your sketchbook folder. - -You must edit the configuration constants at the beginning of the program -to set the sample pins, sample rate, and other configuration values. - -Initially the program is setup to log the first five analog pins at 5000 -samples per second. Change these values to suit your needs. - -See RateTable.txt for maximum allowed sample rates vs pin count and ADC clock -frequency. - -The program has four commands: - -c - convert file to CSV -d - dump data to Serial -e - overrun error details -r - record ADC data - -All commands can be terminated by entering a character from the serial monitor. - -The c command converts the current binary file to a text file. Entering a -character on the serial monitor terminates the command. - -The d command converts the binary file to text and displays it on the serial -monitor. Entering a character on the serial monitor terminates the command. - -The e command displays details about overruns in the current binary file. -Data overruns happen when data samples are lost due to long write latency -of the SD. - -The r command will record ADC data to a binary file. It will terminate -when a character is entered on the serial monitor or the the maximum file -block count has been reached. - -A number of program options can be set by changing constants at the beginning -of the program. \ No newline at end of file diff --git a/libraries/SdFat/extras/MainPage/SdFatmainpage.h b/libraries/SdFat/extras/MainPage/SdFatmainpage.h deleted file mode 100644 index b3c7346..0000000 --- a/libraries/SdFat/extras/MainPage/SdFatmainpage.h +++ /dev/null @@ -1,399 +0,0 @@ -/* Arduino SdFat Library - * Copyright (C) 2012 by William Greiman - * - * This file is part of the Arduino SdFat Library - * - * This Library is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This Library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with the Arduino SdFat Library. If not, see - * . - */ - -/** -\mainpage Arduino %SdFat Library -
Copyright © 2012, 2013, 2014, 2015, 2016 by William Greiman -
- -\section Intro Introduction -The Arduino %SdFat Library is a minimal implementation of FAT16 and FAT32 -file systems on SD flash memory cards. Standard SD and high capacity SDHC -cards are supported. - -Experimental support for FAT12 can be enabled by setting FAT12_SUPPORT -nonzero in SdFatConfig.h. - -The %SdFat library supports Long %File Names or short 8.3 names. -Edit the SdFatConfig.h file to select short or long file names. - -The main classes in %SdFat are SdFat, SdFatEX, SdFatSoftSpi, SdFatSoftSpiEX, -SdBaseFile, SdFile, File, StdioStream, \ref fstream, \ref ifstream, -and \ref ofstream. - -The SdFat, SdFatEX, SdFatSoftSpi and SdFatSoftSpiEX classes maintain a -FAT volume, a current working directory, and simplify initialization -of other classes. The SdFat and SdFatEX classes uses a fast custom hardware SPI -implementation. The SdFatSoftSpi and SdFatSoftSpiEX classes uses software SPI. - -the SdFatEX and SdFatSoftSpiEX use extended multi-block I/O for enhanced -performance. These classes must have exclusive use of the SPI bus. - -The SdBaseFile class provides basic file access functions such as open(), -binary read(), binary write(), close(), remove(), and sync(). SdBaseFile -is the smallest file class. - -The SdFile class has all the SdBaseFile class functions plus the Arduino -Print class functions. - -The File class has all the SdBaseFile functions plus the functions in -the Arduino SD.h File class. This provides compatibility with the -Arduino SD.h library. - -The StdioStream class implements functions similar to Linux/Unix standard -buffered input/output. - -The \ref fstream class implements C++ iostreams for both reading and writing -text files. - -The \ref ifstream class implements C++ iostreams for reading text files. - -The \ref ofstream class implements C++ iostreams for writing text files. - -The classes \ref ifstream, \ref ofstream, \ref istream, and \ref ostream -follow the C++ \ref iostream standard when possible. - -There are many tutorials and much documentation about using C++ iostreams -on the web. - -http://www.cplusplus.com/ is a good C++ site for learning iostreams. - -The classes \ref ibufstream and \ref obufstream format and parse character - strings in memory buffers. - -the classes ArduinoInStream and ArduinoOutStream provide iostream functions -for Serial, LiquidCrystal, and other devices. - -A number of example are provided in the %SdFat/examples folder. These were -developed to test %SdFat and illustrate its use. - -\section Install Installation - -You must manually install SdFat by copying the SdFat folder from the download -package to the Arduino libraries folder in your sketch folder. - -See the Manual installation section of this guide. - -http://arduino.cc/en/Guide/Libraries - -\section SDconfig SdFat Configuration - -Several configuration options may be changed by editing the SdFatConfig.h -file in the %SdFat folder. - -Set USE_LONG_FILE_NAMES nonzero to enable Long %File Names. By default, -Long %File Names are enabled. For the leanest fastest library disable -Long %File Names. Long %File names require extra flash but no extra RAM. -Opening Long %File Names can be slower than opening Short %File Names. -Data read and write performance is not changed by the type of %File Name. - -If the symbol ENABLE_EXTENDED_TRANSFER_CLASS is nonzero, the class SdFatEX -will be defined. If the symbol ENABLE_SOFTWARE_SPI_CLASS is also nonzero, -the class SdFatSoftSpiEX will be defined. -These classes used extended multi-block SD I/O for better performance. -the SPI bus may not be shared with other devices in this mode. - -Set USE_STANDARD_SPI_LIBRARY and ENABLE_SOFTWARE_SPI_CLASS to -enable various SPI options. set USE_STANDARD_SPI_LIBRARY to use the standard -Arduino SPI library. set ENABLE_SOFTWARE_SPI_CLASS to enable the SdFatSoftSpi -class which uses software SPI. - -To enable SD card CRC checking set USE_SD_CRC nonzero. - -Set FAT12_SUPPORT nonzero to enable use of FAT12 volumes. -FAT12 has not been well tested and requires additional flash. - -\section SDPath Paths and Working Directories - -Relative paths in SdFat are resolved in a manner similar to Windows. - -Each instance of SdFat has a current directory. In SdFat this directory -is called the volume working directory, vwd. Initially this directory is -the root directory for the volume. - -The volume working directory is changed by calling SdFat::chdir(path). - -The call sd.chdir("/2014") will change the volume working directory -for sd to "/2014", assuming "/2014" exists. - -Relative paths for SdFat member functions are resolved by starting at -the volume working directory. - -For example, the call sd.mkdir("April") will create the directory -"/2014/April" assuming the volume working directory is "/2014". - -SdFat has a current working directory, cwd, that is used to resolve paths -for file.open() calls. - -For a single SD card the current working directory is always the volume -working directory for that card. - -For multiple SD cards the current working directory is set to the volume -working directory of a card by calling the SdFat::chvol() member function. -The chvol() call is like the Windows \: command. - -The call sd2.chvol() will set the current working directory to the volume -working directory for sd2. - -If the volume working directory for sd2 is "/music" the call - -file.open("BigBand.wav", O_READ); - -will then open "/music/BigBand.wav" on sd2. - -The following functions are used to change or get current directories. -See the html documentation for more information. -@code -bool SdFat::chdir(bool set_cwd = false); -bool SdFat::chdir(const char* path, bool set_cwd = false); -void SdFat::chvol(); -SdBaseFile* SdFat::vwd(); -static SdBaseFile* SdBaseFile::cwd(); -@endcode - -\section SDcard SD\SDHC Cards - -Arduinos access SD cards using the cards SPI protocol. PCs, Macs, and -most consumer devices use the 4-bit parallel SD protocol. A card that -functions well on A PC or Mac may not work well on the Arduino. - -Most cards have good SPI read performance but cards vary widely in SPI -write performance. Write performance is limited by how efficiently the -card manages internal erase/remapping operations. The Arduino cannot -optimize writes to reduce erase operations because of its limit RAM. - -SanDisk cards generally have good write performance. They seem to have -more internal RAM buffering than other cards and therefore can limit -the number of flash erase operations that the Arduino forces due to its -limited RAM. - -\section Hardware Hardware Configuration - -%SdFat was developed using an -
Adafruit Industries -Data Logging Shield. - -The hardware interface to the SD card should not use a resistor based level -shifter. %SdFat sets the SPI bus frequency to 8 MHz which results in signal -rise times that are too slow for the edge detectors in many newer SD card -controllers when resistor voltage dividers are used. - -The 5 to 3.3 V level shifter for 5 V Arduinos should be IC based like the -74HC4050N based circuit shown in the file SdLevel.png. The Adafruit Wave Shield -uses a 74AHC125N. Gravitech sells SD and MicroSD Card Adapters based on the -74LCX245. - -If you are using a resistor based level shifter and are having problems try -setting the SPI bus frequency to 4 MHz. This can be done by using -card.init(SPI_HALF_SPEED) to initialize the SD card. - -A feature to use software SPI is available. Software SPI is slower -than hardware SPI but allows any digital pins to be used. See -SdFatConfig.h for software SPI definitions. - -\section comment Bugs and Comments - -If you wish to report bugs or have comments, send email to -fat16lib@sbcglobal.net. If possible, include a simple program that illustrates -the bug or problem. - -\section Trouble Troubleshooting - -The two example programs QuickStart, and SdInfo are useful for troubleshooting. - -A message like this from SdInfo with erorCode 0X1 indicates the SD card -is not seen by SdFat. This is often caused by a wiring error and reformatting -the card will not solve the problem. -
-cardBegin failed
-SD errorCode: 0X1
-SD errorData: 0XFF
-
-Here is a similar message from QuickStart: -
-SD initialization failed.
-Do not reformat the card!
-Is the card correctly inserted?
-Is chipSelect set to the correct value?
-Does another SPI device need to be disabled?
-Is there a wiring/soldering problem?
-
-errorCode: 0x1, errorData: 0xff
-
-Here is a message from QuickStart that indicates a formatting problem: -
-Card successfully initialized.
-Can't find a valid FAT16/FAT32 partition.
-Try reformatting the card.  For best results use
-the SdFormatter program in SdFat/examples or download
-and use SDFormatter from www.sdcard.org/downloads.
-
- -The best source of recent information and help is the Arduino forum. - -http://arduino.cc/forum/ - -Also search the Adafruit forum. - -http://forums.adafruit.com/ - -If you are using a Teensy try. - -http://forum.pjrc.com/forum.php - -\section SdFatClass SdFat Usage - -SdFat supports Long File Names. Long names in SdFat are limited to 7-bit -ASCII characters in the range 0X20 - 0XFE The following are reserved characters: -
    -
  • < (less than) -
  • > (greater than) -
  • : (colon) -
  • " (double quote) -
  • / (forward slash) -
  • \ (backslash) -
  • | (vertical bar or pipe) -
  • ? (question mark) -
  • * (asterisk) -
-%SdFat uses a slightly restricted form of short names. -Short names are limited to 8 characters followed by an optional period (.) -and extension of up to 3 characters. The characters may be any combination -of letters and digits. The following special characters are also allowed: - -$ % ' - _ @ ~ ` ! ( ) { } ^ # & - -Short names are always converted to upper case and their original case -value is lost. Files that have a base-name where all characters have the -same case and an extension where all characters have the same case will -display properly. Examples this type name are UPPER.low, lower.TXT, -UPPER.TXT, and lower.txt. - -An application which writes to a file using print(), println() or -write() must close the file or call sync() at the appropriate time to -force data and directory information to be written to the SD Card. - -Applications must use care calling sync() sync() -since 2048 bytes of I/O is required to update file and -directory information. This includes writing the current data block, reading -the block that contains the directory entry for update, writing the directory -block back and reading back the current data block. - -It is possible to open a file with two or more instances of a file object. -A file may be corrupted if data is written to the file by more than one -instance of a file object. - -\section HowTo How to format SD Cards as FAT Volumes - -The best way to restore an SD card's format on a PC or Mac is to use -SDFormatter which can be downloaded from: - -http://www.sdcard.org/downloads - -A formatter program, SdFormatter.ino, is included in the -%SdFat/examples/SdFormatter directory. This program attempts to -emulate SD Association's SDFormatter. - -SDFormatter aligns flash erase boundaries with file -system structures which reduces write latency and file system overhead. - -The PC/Mac SDFormatter does not have an option for FAT type so it may format -very small cards as FAT12. Use the SdFat formatter to force FAT16 -formatting of small cards. - -Do not format the SD card with an OS utility, OS utilities do not format SD -cards in conformance with the SD standard. - -You should use a freshly formatted SD card for best performance. FAT -file systems become slower if many files have been created and deleted. -This is because the directory entry for a deleted file is marked as deleted, -but is not deleted. When a new file is created, these entries must be scanned -before creating the file. Also files can become -fragmented which causes reads and writes to be slower. - -\section ExampleFilder Examples - -A number of examples are provided in the SdFat/examples folder. -See the html documentation for a list. - -To access these examples from the Arduino development environment -go to: %File -> Examples -> %SdFat -> \ - -Compile, upload to your Arduino and click on Serial Monitor to run -the example. - -Here is a list: - -AnalogBinLogger - Fast AVR ADC logger - see the AnalogBinLoggerExtras folder. - -bench - A read/write benchmark. - -dataLogger - A simple modifiable data logger. - -DirectoryFunctions - Demo of chdir(), ls(), mkdir(), and rmdir(). - -fgets - Demo of the fgets read line/string function. - -formating - Print a table with various formatting options. - -getline - Example of getline from section 27.7.1.3 of the C++ standard. - -LongFileName - Example use of openNext, printName, and open by index. - -LowLatencyLogger - A data logger for higher data rates. ADC version. - -LowLatencyLoggerADXL345 - A data logger for higher data rates. ADXL345 SPI. - -LowLatencyLoggerMPU6050 - A data logger for higher data rates. MPU6050 I2C. - -OpenNext - Open all files in the root dir and print their filename. - -PrintBenchmark - A simple benchmark for printing to a text file. - -QuickStart - A program to quickly test your SD card and SD shield/module. - -RawWrite - A test of raw write functions for contiguous files. - -ReadCsv - Function to read a CSV text file one field at a time. - -ReadCsvStream - Read a comma-separated value file using iostream extractors. - -ReadCsvArray - Read a two dimensional array from a CSV file. - -ReadWrite - Compatibility test of Arduino SD ReadWrite example. - -rename - A demo of SdFat::rename(old, new) and SdFile::rename(dirFile, newPath). - -SdFormatter - This program will format an SD or SDHC card. - -SoftwareSpi - Simple demonstration of the SdFatSoftSpi template class. - -SdInfo - Initialize an SD card and analyze its structure for trouble shooting. - -StdioBench - Demo and test of stdio style stream. - -Timestamp - Sets file create, modify, and access timestamps. - -TwoCards - Example using two SD cards. - -VolumeFreeSpace - Demonstrate the freeClusterCount() call. - -wipe - Example to wipe all data from an already formatted SD. - */ diff --git a/libraries/SdFat/extras/SdFat.html b/libraries/SdFat/extras/SdFat.html deleted file mode 100644 index a01f20b..0000000 --- a/libraries/SdFat/extras/SdFat.html +++ /dev/null @@ -1,10 +0,0 @@ - - -A web page that points a browser to a different page - - - - -Your browser didn't automatically redirect. Open html/index.html manually. - - diff --git a/libraries/SdFat/extras/SdFatTestSuite/SdFatTestSuite.cpp b/libraries/SdFat/extras/SdFatTestSuite/SdFatTestSuite.cpp deleted file mode 100644 index 396bf49..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/SdFatTestSuite.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* Arduino SdFat Library - * Copyright (C) 2011 by William Greiman - * - * This file is part of the Arduino SdFat Library - * - * This Library is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This Library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with the Arduino SdFat Library. If not, see - * . - */ -#include -static uint16_t failCount; -static uint16_t testCount; -static Print* testOut = &Serial; -//------------------------------------------------------------------------------ -static size_t strlenPGM(PGM_P str) { - PGM_P end = str; - while (pgm_read_byte(end++)) {} - return end - str; -} -//------------------------------------------------------------------------------ -void testBegin() { - Serial.begin(9600); - while (!Serial) {} // wait for leonardo - testOut = &Serial; - Serial.println(F("Type any character to begin.")); - while (Serial.read() <= 0) {} - delay(200); // Catch Due reset problem - - testOut->print(F("FreeRam: ")); - testOut->println(FreeRam()); - testOut->println(); - failCount = 0; - testCount = 0; -} -//------------------------------------------------------------------------------ -void testEnd() { - testOut->println(); - testOut->println(F("Compiled: " __DATE__ " " __TIME__)); - testOut->print(F("FreeRam: ")); - testOut->println(FreeRam()); - testOut->print(F("Test count: ")); - testOut->println(testCount); - testOut->print(F("Fail count: ")); - testOut->println(failCount); -} -//------------------------------------------------------------------------------ -static void testResult(bool b, uint8_t n) { - while (n++ < 60) testOut->write(' '); - if (b) { - testOut->println(F("..ok")); - } else { - testOut->println(F("FAIL")); - failCount++; - } - testCount++; -} -//------------------------------------------------------------------------------ -void testVerify_P(char* result, PGM_P expect) { - testOut->write('"'); - testOut->print(result); - testOut->print("\",\""); - testOut->print((const __FlashStringHelper*)expect); - testOut->write('"'); - uint8_t n = strlen(result) + strlenPGM(expect) + 5; - testResult(!strcmp_P(result, expect), n); -} -//------------------------------------------------------------------------------ -void testVerify_P(bool b, PGM_P msg) { - testOut->print((const __FlashStringHelper*)msg); - uint8_t n = strlenPGM(msg); - testResult(b, n); -} diff --git a/libraries/SdFat/extras/SdFatTestSuite/SdFatTestSuite.h b/libraries/SdFat/extras/SdFatTestSuite/SdFatTestSuite.h deleted file mode 100644 index 736f67f..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/SdFatTestSuite.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Arduino SdFat Library - * Copyright (C) 2011 by William Greiman - * - * This file is part of the Arduino SdFat Library - * - * This Library is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This Library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with the Arduino SdFat Library. If not, see - * . - */ -#ifndef SdFatTestSuite_h -#define SdFatTestSuite_h -#include -#include - -#if defined(__arm__) && !defined(strcmp_P) -#define strcmp_P(a, b) strcmp((a), (b)) -#endif // strcmp_P - -#if defined(__arm__) && !defined(strncpy_P) -#define strncpy_P(s, t, n) strncpy(s, t, n) -#endif // strncpy_P - -#if defined(__arm__) && !defined(strlen_P) -#define strlen_P(str) strlen(str) -#endif // strlen_P - -#define testVerifyBool(result) testVerify_P(result, PSTR(#result)) -#define testVerifyMsg(result, msg) testVerify_P(result, PSTR(msg)) -#define testVerifyStr(result, expect) testVerify_P(result, PSTR(expect)) - -void testBegin(); -void testEnd(); -void testVerify_P(bool b, PGM_P msg); -void testVerify_P(char* result, PGM_P expect); -#endif // SdFatTestSuite_h diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_File/ATS_SD_File.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_File/ATS_SD_File.ino deleted file mode 100644 index 822534f..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_File/ATS_SD_File.ino +++ /dev/null @@ -1,105 +0,0 @@ -// modified from ArduinoTestSuite 0022 by William Greiman -// Tests writing to and reading from a file, in particular the -// the Stream implementation (e.g. read() and peek()). - -#include -#include -#include -SdFat SD; -#define ATS_PrintTestStatus(msg, b) testVerify_P(b, PSTR(msg)) -void setup() { - boolean b; - SdFile f; - uint32_t fs; - - testBegin(); - - ATS_PrintTestStatus("SD.begin()", b = SD.begin()); - if (!b) goto done; - - SD.remove("test.txt"); - - f.open("test.txt", FILE_WRITE); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - - f.print("abc"); - f.print("de"); - f.close(); - - f.open("test.txt", FILE_WRITE); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - - f.print("fgh"); - f.close(); - - f.open("test.txt", O_READ); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - fs =f.fileSize(); - ATS_PrintTestStatus("read()", f.read() == 'a'); - ATS_PrintTestStatus("peek()", f.peek() == 'b'); - ATS_PrintTestStatus("read()", f.read() == 'b'); - ATS_PrintTestStatus("read()", f.read() == 'c'); - ATS_PrintTestStatus("peek()", f.peek() == 'd'); - ATS_PrintTestStatus("peek()", f.peek() == 'd'); - ATS_PrintTestStatus("peek()", f.peek() == 'd'); - ATS_PrintTestStatus("peek()", f.peek() == 'd'); - ATS_PrintTestStatus("read()", f.read() == 'd'); - ATS_PrintTestStatus("available()", f.curPosition() != fs); - ATS_PrintTestStatus("read()", f.read() == 'e'); - ATS_PrintTestStatus("available()", f.curPosition() != fs); - ATS_PrintTestStatus("peek()", f.peek() == 'f'); - ATS_PrintTestStatus("read()", f.read() == 'f'); - ATS_PrintTestStatus("peek()", f.peek() == 'g'); - ATS_PrintTestStatus("available()", f.curPosition() != fs); - ATS_PrintTestStatus("peek()", f.peek() == 'g'); - ATS_PrintTestStatus("read()", f.read() == 'g'); - ATS_PrintTestStatus("available()", f.curPosition() != fs); - ATS_PrintTestStatus("available()", f.curPosition() != fs); - ATS_PrintTestStatus("available()", f.curPosition() != fs); - ATS_PrintTestStatus("peek()", f.peek() == 'h'); - ATS_PrintTestStatus("read()", f.read() == 'h'); - ATS_PrintTestStatus("available()", f.curPosition() == fs); - ATS_PrintTestStatus("peek()", f.peek() == -1); - ATS_PrintTestStatus("read()", f.read() == -1); - ATS_PrintTestStatus("peek()", f.peek() == -1); - ATS_PrintTestStatus("read()", f.read() == -1); - - f.close(); - - SD.remove("test2.txt"); - - f.open("test2.txt", FILE_WRITE); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - - f.print("ABC"); - f.close(); - - f.open("test.txt", O_READ); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - - ATS_PrintTestStatus("peek()", f.peek() == 'a'); - - f.close(); - - f.open("test2.txt", O_READ); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - - ATS_PrintTestStatus("peek()", f.peek() == 'A'); - ATS_PrintTestStatus("read()", f.read() == 'A'); - - f.close(); - -done: - testEnd(); - -} - -void loop() {} - - diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_Files/ATS_SD_Files.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_Files/ATS_SD_Files.ino deleted file mode 100644 index 6bb2c81..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_Files/ATS_SD_Files.ino +++ /dev/null @@ -1,75 +0,0 @@ -// modified from ArduinoTestSuite 0022 by William Greiman -#include -#include -#include -SdFat SD; -#define ATS_PrintTestStatus(msg, b) testVerify_P(b, PSTR(msg)) - -void setup() { - boolean b; - SdFile f; - - testBegin(); - - ATS_PrintTestStatus("SD.begin()", b = SD.begin()); - if (!b) goto done; - - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf.txt")); - ATS_PrintTestStatus("SD.open()", f.open("asdf.txt", FILE_WRITE)); f.close(); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf.txt")); - ATS_PrintTestStatus("SD.exists()", SD.exists("/asdf.txt")); - ATS_PrintTestStatus("SD.remove()", SD.remove("asdf.txt")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf.txt")); - - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf")); - ATS_PrintTestStatus("SD.mkdir()", SD.mkdir("asdf")); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf")); - ATS_PrintTestStatus("SD.exists()", SD.exists("/asdf")); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf/")); - ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("asdf")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf")); - - ATS_PrintTestStatus("SD.mkdir()", SD.mkdir("x/y/z")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x/")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x/y")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x/y/")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x/y/z")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x/y/z/")); - ATS_PrintTestStatus("SD.exists()", SD.exists("/x/y/z/")); - ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("x/y/z")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x/y")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y/z")); - ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("x/y/")); - ATS_PrintTestStatus("SD.exists()", SD.exists("x")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y/z")); - ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("/x")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("x")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("x/y/z")); - - ATS_PrintTestStatus("!SD.open()", !(f.open("asdf/asdf.txt", FILE_WRITE))); f.close(); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf.txt")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf/asdf.txt")); - ATS_PrintTestStatus("SD.mkdir()", SD.mkdir("asdf")); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf")); - ATS_PrintTestStatus("SD.open()", f.open("asdf/asdf.txt", FILE_WRITE)); f.close(); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf/asdf.txt")); - ATS_PrintTestStatus("!SD.rmdir()", !SD.rmdir("asdf")); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf")); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf/asdf.txt")); - ATS_PrintTestStatus("SD.remove()", SD.remove("asdf/asdf.txt")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf/asdf.txt")); - ATS_PrintTestStatus("SD.exists()", SD.exists("asdf")); - ATS_PrintTestStatus("SD.rmdir()", SD.rmdir("asdf")); - ATS_PrintTestStatus("!SD.exists()", !SD.exists("asdf")); - -done: - - testEnd(); - -} -void loop() {} diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_Seek/ATS_SD_Seek.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_Seek/ATS_SD_Seek.ino deleted file mode 100644 index 81e1d73..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/ATS_SD_Seek/ATS_SD_Seek.ino +++ /dev/null @@ -1,108 +0,0 @@ -// modified from ArduinoTestSuite 0022 by William Greiman -// Tests writing to and reading from a file, in particular the -// the Stream implementation (e.g. read() and peek()). -#include -#include -#include -SdFat SD; -#define ATS_PrintTestStatus(msg, b) testVerify_P(b, PSTR(msg)) - -void setup() { - boolean b; - SdFile f; - - testBegin(); - - ATS_PrintTestStatus("SD.begin()", b = SD.begin()); - if (!b) goto done; - - SD.remove("test.txt"); - - f.open("test.txt", FILE_WRITE); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - - ATS_PrintTestStatus("initial position", f.curPosition() == 0); - ATS_PrintTestStatus("initial size", f.fileSize() == 0); - - f.print("0123456789"); - - ATS_PrintTestStatus("position after writing", f.curPosition() == 10); - ATS_PrintTestStatus("size after writing", f.fileSize() == 10); - - f.seekSet(0); - - ATS_PrintTestStatus("size after seek", f.fileSize() == 10); - ATS_PrintTestStatus("position after seek", f.curPosition() == 0); - - f.seekSet(7); - - ATS_PrintTestStatus("position after seek", f.curPosition() == 7); - ATS_PrintTestStatus("reading after seek", f.read() == '7'); - ATS_PrintTestStatus("position after reading after seeking", f.curPosition() == 8); - ATS_PrintTestStatus("reading after reading after seeking", f.read() == '8'); - - f.seekSet(3); - - ATS_PrintTestStatus("position after seeking", f.curPosition() == 3); - ATS_PrintTestStatus("peeking after seeking", f.peek() == '3'); - ATS_PrintTestStatus("position after peeking after seeking", f.curPosition() == 3); - ATS_PrintTestStatus("peeking after peeking after seeking", f.peek() == '3'); - ATS_PrintTestStatus("position after peeking after seeking", f.curPosition() == 3); - ATS_PrintTestStatus("peeking after peeking after seeking", f.read() == '3'); - ATS_PrintTestStatus("position after peeking after seeking", f.curPosition() == 4); - - f.seekSet(1); - - ATS_PrintTestStatus("position after seeking", f.curPosition() == 1); - ATS_PrintTestStatus("peeking after seeking", f.peek() == '1'); - - f.seekSet(4); - - ATS_PrintTestStatus("position after seeking", f.curPosition() == 4); - ATS_PrintTestStatus("peeking after seeking", f.peek() == '4'); - - f.seekSet(7); - - ATS_PrintTestStatus("position()", f.curPosition() == 7); - ATS_PrintTestStatus("read()", f.read() == '7'); - - f.seekSet(0); - f.peek(); - f.print("AB"); - - ATS_PrintTestStatus("position()", f.curPosition() == 2); - ATS_PrintTestStatus("size()", f.fileSize() == 10); - ATS_PrintTestStatus("read()", f.read() == '2'); - - f.seekSet(0); - - ATS_PrintTestStatus("read()", f.read() == 'A'); - ATS_PrintTestStatus("read()", f.read() == 'B'); - ATS_PrintTestStatus("read()", f.read() == '2'); - - f.close(); - - f.open("test.txt", O_READ); - ATS_PrintTestStatus("SD.open()", f.isOpen()); - if (!f.isOpen()) goto done; - - ATS_PrintTestStatus("position()", f.curPosition() == 0); - ATS_PrintTestStatus("size()", f.fileSize() == 10); - ATS_PrintTestStatus("peek()", f.peek() == 'A'); - ATS_PrintTestStatus("read()", f.read() == 'A'); - - f.seekSet(4); - - ATS_PrintTestStatus("position()", f.curPosition() == 4); - ATS_PrintTestStatus("size()", f.fileSize() == 10); - ATS_PrintTestStatus("peek()", f.peek() == '4'); - ATS_PrintTestStatus("read()", f.read() == '4'); - - f.close(); - -done: - testEnd(); -} - -void loop() {} \ No newline at end of file diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/StressTest/StressTest.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/StressTest/StressTest.ino deleted file mode 100644 index 11fb804..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/StressTest/StressTest.ino +++ /dev/null @@ -1,76 +0,0 @@ -// This stress test will create and write files until the SD is full. -#include -#include - -// SD chip select pin. -const uint8_t SD_CS_PIN = SS; - -// Set write buffer size. -#ifdef __arm__ -#ifndef CORE_TEENSY -// Due -const size_t BUF_SIZE = 32768; -#else // CORE_TEENSY -// Teensy 3.0 -const size_t BUF_SIZE = 8192; -#endif // CORE_TEENSY -#elif defined(RAMEND) && RAMEND > 5000 -// AVR with more than 4 KB RAM -const size_t BUF_SIZE = 4096; -#else // __arm__ -// other -const size_t BUF_SIZE = 512; -#endif // __arm__ - -const size_t FILE_SIZE_KB = 10240; -const uint16_t BUFS_PER_FILE = (1024L*FILE_SIZE_KB/BUF_SIZE); - -SdFat sd; - -SdFile file; - -uint8_t buf[BUF_SIZE]; -char name[13]; -//------------------------------------------------------------------------------ -void setup() { - Serial.begin(9600); - Serial.print("BUF_SIZE "); - Serial.println(BUF_SIZE); - Serial.println("Type any character to start"); - while (Serial.read() < 0) {} - - if (!sd.begin(SD_CS_PIN))sd.errorHalt("sd.begin"); - - // Fill buf with known value. - for (size_t i = 0; i < BUF_SIZE; i++) buf[i] = i; - - // Wait to begin. - do {delay(10);} while (Serial.read() >= 0); - Serial.println("Type any character to stop after next file"); -} -//------------------------------------------------------------------------------ -void loop() { - // Free KB on SD. - uint32_t freeKB = sd.vol()->freeClusterCount()*sd.vol()->blocksPerCluster()/2; - - Serial.print("Free KB: "); - Serial.println(freeKB); - if (freeKB < 2*FILE_SIZE_KB) { - Serial.println(" Done!"); - while(1); - } - sprintf(name, "%lu.DAT", freeKB); - if (!file.open(name, O_WRITE | O_CREAT | O_TRUNC)) { - sd.errorHalt("Open error!"); - } - for (uint16_t i = 0; i < BUFS_PER_FILE; i++) { - if (file.write(buf, BUF_SIZE) != BUF_SIZE) { - sd.errorHalt("Write error!"); - } - } - file.close(); - if (Serial.available()) { - Serial.println("Stopped!"); - while(1); - } -} \ No newline at end of file diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/TestMkdir/TestMkdir.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/TestMkdir/TestMkdir.ino deleted file mode 100644 index 458de9f..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/TestMkdir/TestMkdir.ino +++ /dev/null @@ -1,138 +0,0 @@ -/* - * This sketch is a test of subdirectory and file creation. - * It also tests allocation of clusters to directories. - * - * It will create two subdirectories and create enough files - * to force the allocation of a cluster to each directory. - * - * More than 3000 files may be created on a FAT32 volume. - * - * Note: Some cards may 'stutter' others just get slow due - * to the number of flash erases this program causes. - */ -#include -#include -#include - -const uint8_t SD_CHIP_SELECT = SS; - -SdFat sd; - -// store error strings in flash to save RAM -#define error(s) sd.errorHalt(F(s)) - -/* - * create enough files to force a cluster to be allocated to dir. - */ -void dirAllocTest(FatFile* dir) { - char buf[32], name[32]; - SdFile file; - uint16_t n; - uint32_t size = dir->dirSize(); - - // create files and write name to file - for (n = 0; ; n++){ - // make file name - sprintf(name, "%u.TXT", n); - - // open start time - uint32_t t0 = millis(); - if (!file.open(dir, name, O_WRITE | O_CREAT | O_EXCL)) { - error("open for write failed"); - } - - // open end time and write start time - uint32_t t1 = millis(); - // write file name to file - file.print(name); - if (!file.close()) error("close write"); - - // write end time - uint32_t t2 = millis(); - Serial.print(F("WR ")); - Serial.print(n); - Serial.write(' '); - - // print time to create file - Serial.print(t1 - t0); - Serial.write(' '); - - // print time to write file - Serial.println(t2 - t1); - - // directory size will change when a cluster is added - if (dir->curPosition() > size) break; - } - - // read files and check content - for (uint16_t i = 0; i <= n; i++) { - sprintf(name, "%u.TXT", i); - - // open start time - uint32_t t0 = millis(); - if (!file.open(dir, name, O_READ)) { - error("open for read failed"); - } - - // open end time and read start time - uint32_t t1 = millis(); - int16_t nr = file.read(buf, sizeof(buf)); - if (nr < 5) error("file.read failed"); - - // read end time - uint32_t t2 = millis(); - - // check file content - if (strlen(name) != (size_t)nr || strncmp(name, buf, nr)) { - error("content compare failed"); - } - if (!file.close()) error("close read failed"); - - Serial.print(F("RD ")); - Serial.print(i); - Serial.write(' '); - - // print open time - Serial.print(t1 - t0); - Serial.write(' '); - - // print read time - Serial.println(t2 - t1); - } -} - -void setup() { - Serial.begin(9600); - while (!Serial) {} // wait for Leonardo - Serial.println(F("Type any character to start")); - while (Serial.read() <= 0) {} - delay(200); // Catch Due reset problem - - // initialize the SD card at SPI_FULL_SPEED for best performance. - // try SPI_HALF_SPEED if bus errors occur. - if (!sd.begin(SD_CHIP_SELECT, SPI_FULL_SPEED)) sd.initErrorHalt(); - - uint32_t m = millis(); - // write files to root if FAT32 - if (sd.vol()->fatType() == 32) { - Serial.println(F("Writing files to root")); - dirAllocTest(sd.vwd()); - } - - // create sub1 and write files - SdFile sub1; - if (!sub1.mkdir(sd.vwd(), "SUB1")) error("makdeDir SUB1 failed"); - Serial.println(F("Writing files to SUB1")); - dirAllocTest(&sub1); - - // create sub2 and write files - SdFile sub2; - if (!sub2.mkdir(&sub1, "SUB2")) error("mkdir SUB2 failed"); - Serial.println(F("Writing files to SUB2")); - dirAllocTest(&sub2); - m = millis() - m; - Serial.print(F("Done millis: ")); - Serial.println(m); -} - -void loop() { } \ No newline at end of file diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/TestRmdir/TestRmdir.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/TestRmdir/TestRmdir.ino deleted file mode 100644 index 013e921..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/TestRmdir/TestRmdir.ino +++ /dev/null @@ -1,98 +0,0 @@ -/* - * This sketch will remove the files and directories - * created by the SdFatMakeDir.pde sketch. - * - * Performance is erratic due to the large number - * of flash erase operations caused by many random - * writes to file structures. - */ -#include -#include -#include - -const uint8_t SD_CHIP_SELECT = SS; - -SdFat sd; - -// store error strings in flash to save RAM -#define error(s) sd.errorHalt(F(s)) - -/* - * remove all files in dir. - */ -void deleteFiles(FatFile* dir) { - char name[32]; - SdFile file; - - // open and delete files - for (uint16_t n = 0; ; n++){ - sprintf(name, "%u.TXT", n); - - // open start time - uint32_t t0 = millis(); - - // assume done if open fails - if (!file.open(dir, name, O_WRITE)) return; - - // open end time and remove start time - uint32_t t1 = millis(); - if (!file.remove()) error("file.remove failed"); - - // remove end time - uint32_t t2 = millis(); - - Serial.print(F("RM ")); - Serial.print(n); - Serial.write(' '); - - // open time - Serial.print(t1 - t0); - Serial.write(' '); - - // remove time - Serial.println(t2 - t1); - } -} - -void setup() { - Serial.begin(9600); - while (!Serial) {} // wait for Leonardo - Serial.println(F("Type any character to start")); - while (Serial.read() <= 0) {} - delay(200); // Catch Due reset problem - - // initialize the SD card at SPI_FULL_SPEED for best performance. - // try SPI_HALF_SPEED if bus errors occur. - if (!sd.begin(SD_CHIP_SELECT, SPI_FULL_SPEED)) sd.initErrorHalt(); - - - // delete files in root if FAT32 - if (sd.vol()->fatType() == 32) { - Serial.println(F("Remove files in root")); - deleteFiles(sd.vwd()); - } - - // open SUB1 and delete files - SdFile sub1; - if (!sub1.open("SUB1", O_READ)) error("open SUB1 failed"); - Serial.println(F("Remove files in SUB1")); - deleteFiles(&sub1); - - // open SUB2 and delete files - SdFile sub2; - if (!sub2.open(&sub1, "SUB2", O_READ)) error("open SUB2 failed"); - Serial.println(F("Remove files in SUB2")); - deleteFiles(&sub2); - - // remove SUB2 - if (!sub2.rmdir()) error("sub2.rmdir failed"); - Serial.println(F("SUB2 removed")); - - // remove SUB1 - if (!sub1.rmdir()) error("sub1.rmdir failed"); - Serial.println(F("SUB1 removed")); - - Serial.println(F("Done")); -} - -void loop() { } diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/fstreamTest/fstreamTest.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/fstreamTest/fstreamTest.ino deleted file mode 100644 index 83f2ce5..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/fstreamTest/fstreamTest.ino +++ /dev/null @@ -1,94 +0,0 @@ -#include -#include -#include -SdFat sd; -const char *testName = "SDFAT.TST"; -//------------------------------------------------------------------------------ -void fstreamOpen() { - ios::openmode nocreate[] = {ios::in, ios::in | ios::out}; - ios::openmode create[] = - {ios::out, ios::out | ios::app, ios::app, ios::out | ios::trunc, - ios::in | ios::out | ios::trunc, ios::in | ios::out | ios::app, - ios::in | ios::app}; - ios::openmode illegal[] = - {0, ios::trunc, ios::app | ios::trunc, ios::in | ios::app | ios::trunc, - ios::in | ios::trunc, ios::out | ios::app | ios::trunc, - ios::in | ios::out | ios::app | ios::trunc}; - - sd.remove(testName); - fstream file(testName); - testVerifyMsg(!file.is_open()&& !sd.exists(testName), "fstream constructor"); - - for (uint8_t i = 0 ; i < sizeof(nocreate)/sizeof(nocreate[1]); i++) { - file.close(); - sd.remove(testName); - file.open(testName, nocreate[i]); - testVerifyMsg(!sd.exists(testName) && !file.is_open(), "fstream nocreate !exists"); - } - for (uint8_t i = 0 ; i < sizeof(create)/sizeof(create[1]); i++) { - file.close(); - sd.remove(testName); - file.open(testName, create[i]); - testVerifyMsg(sd.exists(testName) && file.is_open(), "fstream create openmode"); - } - for (uint8_t i = 0 ; i < sizeof(illegal)/sizeof(illegal[1]); i++) { - file.close(); - file.open(testName, illegal[i]); - testVerifyMsg(sd.exists(testName) && !file.is_open(), "fstream illegal openmode"); - } - for (uint8_t i = 0 ; i < sizeof(nocreate)/sizeof(nocreate[1]); i++) { - file.close(); - file.open(testName, nocreate[i]); - testVerifyMsg(sd.exists(testName) && file.is_open(), "fstream nocreate exists"); - } -} -//------------------------------------------------------------------------------ -void testPosition() { - sd.remove(testName); - ofstream ofs(testName); - testVerifyBool(ofs.good() && ofs.tellp() == 0); - ofs.seekp(0, ios::end); - testVerifyBool(ofs.good() && ofs.tellp() == 0); - ofs << "abcde"; - testVerifyBool(ofs.good() && ofs.tellp() == 5); - ofs.seekp(4); - testVerifyBool(ofs.good() && ofs.tellp() == 4); - ofs.seekp(-1, ios::cur); - testVerifyBool(ofs.good() && ofs.tellp() == 3); - ofs.close(); - ifstream ifs(testName, ios::ate); - testVerifyBool(ifs.good() && ifs.tellg() == 5); - ifs.seekg(0); - testVerifyBool(ifs.get() == 'a' && ifs.get() == 'b'); - testVerifyBool(ifs.tellg() == 2 && ifs.good()); - ifs.seekg(3, ios::cur); - testVerifyBool(ifs.tellg() == 5 && ifs.good()); - ifs.seekg(4, ios::beg); - testVerifyBool(ifs.good() && ifs.tellg() == 4); - ifs.close(); - ofs.open(testName, ios::app); - testVerifyBool(ofs.good() && ofs.tellp() == 0); - ofs << 'f'; - testVerifyBool(ofs.good() && ofs.tellp() == 6); - ofs.close(); - ofs.open(testName, ios::trunc); - ofs.seekp(0, ios::end); - testVerifyBool(ofs.good() && ofs.tellp() == 0); - ofs << "ABCDEF"; - ofs.close(); - fstream fs(testName); - testVerifyBool(fs.good() && fs.tellp() == 0 && fs.tellg() == 0); - fs.seekg(2); - testVerifyBool(fs.good() && fs.get() == 'C'); -} -//------------------------------------------------------------------------------ -void setup() { - - testBegin(); - if (!sd.begin()) sd.initErrorHalt(); - fstreamOpen(); - testPosition(); - testEnd(); -} -//------------------------------------------------------------------------------ -void loop() {} diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/istreamTest/istreamTest.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/istreamTest/istreamTest.ino deleted file mode 100644 index 3cf4d6d..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/istreamTest/istreamTest.ino +++ /dev/null @@ -1,261 +0,0 @@ -#include -#include -#include - -char buf[100]; -ibufstream ib; -#define ibInit(s) ibInit_P(PSTR(s)) - -//---------------------------------------------------------- -void ibInit_P(PGM_P p) { - if (strlen_P(p) >= sizeof(buf)) { - ib.init(""); - ib.setstate(ios::badbit); - } else { - ib.clear(); - strncpy_P(buf, p, sizeof(buf)); - ib.init(buf); - } -} -//------------------------------------------------------------------------------ -void istreamBool() { - bool b; - ibInit(" 0 1 2"); - testVerifyBool((ib >> b) && !b); - testVerifyBool((ib >> b) && b); - testVerifyBool(!(ib >> b) && !ib.good()); - - ibInit(" true false err"); - testVerifyBool((ib >> boolalpha >> b) && b && ib.good()); - testVerifyBool((ib >> b) && !b && ib.good()); - testVerifyBool(!(ib >> b) && ib.fail()); - - ibInit("1"); - testVerifyBool((ib >> noboolalpha >> b) && b && ib.eof()); -} -//------------------------------------------------------------------------------ -void istreamChar() { - char c; - signed char sc; - unsigned char uc; - - ibInit("c s u g"); - testVerifyBool((ib >> c) && ib.good() && c == 'c'); - testVerifyBool((ib >> sc) && ib.good() && sc == 's'); - testVerifyBool((ib >> uc) && ib.good() && uc == 'u'); - testVerifyBool(ib.get() == ' '); - testVerifyBool(ib.peek() == 'g' && ib.good()); - testVerifyBool(ib.get() == 'g' && ib.good()); - testVerifyBool(ib.get() == -1 && ib.eof()); -} -//------------------------------------------------------------------------------ -void istreamDouble() { - double f; - ibInit("0 .1 1. 2 3.4 .1e5 1e5 -1E6 +2.3e-3 -123.4567"); - testVerifyBool((ib >> f) && f == 0 && ib.good()); - testVerifyBool((ib >> f) && f == 0.1 && ib.good()); - testVerifyBool((ib >> f) && f == 1.0 && ib.good()); - testVerifyBool((ib >> f) && f == 2.0 && ib.good()); - testVerifyBool((ib >> f) && f == 3.4 && ib.good()); - testVerifyBool((ib >> f) && f == 10000.0 && ib.good()); - testVerifyBool((ib >> f) && f == 1e5 && ib.good()); - testVerifyBool((ib >> f) && f == -1E6 && ib.good()); - testVerifyBool((ib >> f) && f == 2.3e-3 && ib.good()); - testVerifyBool((ib >> f) && fabs(f + 123.4567) < 1e-5 && ib.eof()); - if (fabs(f + 123.4567) >= 1e-5) Serial.println(f, 8); -} -//------------------------------------------------------------------------------ -void istreamFloat() { - float f; - ibInit("0 .1 1. 2 3.4 .1e5 1e5 -1E6 +2.3e-3 -123.4567"); - testVerifyBool((ib >> f) && f == 0 && ib.good()); - testVerifyBool((ib >> f) && f == 0.1f && ib.good()); - testVerifyBool((ib >> f) && f == 1.0 && ib.good()); - testVerifyBool((ib >> f) && f == 2.0 && ib.good()); - testVerifyBool((ib >> f) && f == 3.4f && ib.good()); - testVerifyBool((ib >> f) && f == 10000.0 && ib.good()); - testVerifyBool((ib >> f) && f == 1e5 && ib.good()); - testVerifyBool((ib >> f) && f == -1E6 && ib.good()); - testVerifyBool((ib >> f) && f == 2.3e-3f && ib.good()); - testVerifyBool((ib >> f) && fabs(f + 123.4567f) < 1e-5 && ib.eof()); - if (fabs(f + 123.4567) >= 1e-5) Serial.println(f, 8); -} -//------------------------------------------------------------------------------ -void istreamGet() { - char s[4]; - ibInit("ab c"); - testVerifyBool(ib.get() == 'a' && ib.good() && ib.gcount() == 1); - testVerifyBool(ib.get() == 'b' && ib.good() && ib.gcount() == 1); - testVerifyBool(ib.get() == ' ' && ib.good() && ib.gcount() == 1); - testVerifyBool(ib.get() == 'c' && ib.good() && ib.gcount() == 1); - testVerifyBool(ib.get() == -1 && ib.eof() && ib.gcount() == 0); - - ibInit("ab\ncdef"); - ib.get(s, sizeof(s)); - testVerifyBool(ib.good() && ib.gcount() == 2); - testVerifyStr(s, "ab"); - testVerifyBool(ib.get() == '\n' && ib.good() && ib.gcount() == 1); - ib.get(s, sizeof(s)); - testVerifyBool(ib.good() && ib.gcount() == 3); - testVerifyStr(s, "cde"); - ib.get(s, sizeof(s)); - testVerifyBool(ib.eof() && ib.gcount() == 1); - testVerifyStr(s, "f"); - - ibInit( - "short line\n" - "\n" - "17 character line\n" - "too long for buffer\n" - "line with no nl" - ); - char buf[18]; - ib.getline(buf, sizeof(buf)); - testVerifyBool(ib.good() && ib.gcount() == 11); - testVerifyStr(buf, "short line"); - ib.getline(buf, sizeof(buf)); - testVerifyBool(ib.good() && ib.gcount() == 1 && buf[0] == '\0'); - ib.getline(buf, sizeof(buf)); - testVerifyBool(ib.good() && ib.gcount() == 18); - testVerifyStr(buf, "17 character line"); - ib.getline(buf, sizeof(buf)); - testVerifyBool(ib.fail() && !ib.eof() && ib.gcount() == 17); - testVerifyStr(buf, "too long for buff"); - ib.clear(); - ib.getline(buf, sizeof(buf)); - testVerifyBool(ib.good() && !ib.eof() && ib.gcount() == 3); - testVerifyStr(buf, "er"); - ib.getline(buf, sizeof(buf)); - testVerifyBool(!ib.fail() && ib.eof() && ib.gcount() == 15); - testVerifyStr(buf, "line with no nl"); -} -//------------------------------------------------------------------------------ -void istreamNumber() { - short s; - signed short ss; - unsigned short us; - int i; - signed int si; - unsigned int ui; - long l; - signed long sl; - unsigned long ul; - - ibInit("-32769"); - testVerifyBool(!(ib >> s) && ib.fail()); - ibInit("-32768 0 32767 32768"); - testVerifyBool((ib >> s) && s == -32768 && ib.good()); - testVerifyBool((ib >> s) && s == 0 && ib.good()); - testVerifyBool((ib >> s) && s == 32767 && ib.good()); - testVerifyBool(!(ib >> s) && ib.fail()); - - ibInit("-32769"); - testVerifyBool(!(ib >> ss) && ib.fail()); - ibInit("-32768 0 32767 32768"); - testVerifyBool((ib >> ss) && ss == -32768 && ib.good()); - testVerifyBool((ib >> ss) && ss == 0 && ib.good()); - testVerifyBool((ib >> ss) && ss == 32767 && ib.good()); - testVerifyBool(!(ib >> ss) && ib.fail()); - - ibInit("0 65535 65536"); - testVerifyBool((ib >> us) && us == 0 && ib.good()); - testVerifyBool((ib >> us) && us == 65535 && ib.good()); - testVerifyBool(!(ib >> us) && ib.fail()); - -if (sizeof(int) == 2) { - ibInit("-32769"); - testVerifyBool(!(ib >> i) && ib.fail()); - ibInit("-32768 0 32767 32768"); - testVerifyBool((ib >> i) && i == -32768 && ib.good()); - testVerifyBool((ib >> i) && i == 0 && ib.good()); - testVerifyBool((ib >> i) && i == 32767 && ib.good()); - testVerifyBool(!(ib >> i) && ib.fail()); - - ibInit("-32769"); - testVerifyBool(!(ib >> si) && ib.fail()); - ibInit("-32768 0 32767 32768"); - testVerifyBool((ib >> si) && si == -32768 && ib.good()); - testVerifyBool((ib >> si) && si == 0 && ib.good()); - testVerifyBool((ib >> si) && si == 32767 && ib.good()); - testVerifyBool(!(ib >> si) && ib.fail()); - - ibInit("0 65535 65536"); - testVerifyBool((ib >> ui) && ui == 0 && ib.good()); - testVerifyBool((ib >> ui) && ui == 65535 && ib.good()); - testVerifyBool(!(ib >> ui) && ib.fail()); - } else { - ibInit("-2147483649"); - testVerifyBool(!(ib >> i) && ib.fail()); - ibInit("-2147483648 0 2147483647 2147483648"); - testVerifyBool((ib >> i) && i == -2147483648 && ib.good()); - testVerifyBool((ib >> i) && i == 0 && ib.good()); - testVerifyBool((ib >> i) && i == 2147483647 && ib.good()); - testVerifyBool(!(ib >> i) && ib.fail()); - - ibInit("-2147483649"); - testVerifyBool(!(ib >> si) && ib.fail()); - ibInit("-2147483648 0 2147483647 2147483648"); - testVerifyBool((ib >> si) && si == -2147483648 && ib.good()); - testVerifyBool((ib >> si) && si == 0 && ib.good()); - testVerifyBool((ib >> si) && si == 2147483647 && ib.good()); - testVerifyBool(!(ib >> si) && ib.fail()); - - ibInit("0 4294967295 4294967296"); - testVerifyBool((ib >> ui) && ui == 0 && ib.good()); - testVerifyBool((ib >> ui) && ui == 4294967295 && ib.good()); - testVerifyBool(!(ib >> ui) && ib.fail()); - } - ibInit("-2147483649"); - testVerifyBool(!(ib >> l) && ib.fail()); - ibInit("-2147483648 0 2147483647 2147483648"); - testVerifyBool((ib >> l) && l == -2147483648 && ib.good()); - testVerifyBool((ib >> l) && l == 0 && ib.good()); - testVerifyBool((ib >> l) && l == 2147483647 && ib.good()); - testVerifyBool(!(ib >> l) && ib.fail()); - - ibInit("-2147483649"); - testVerifyBool(!(ib >> sl) && ib.fail()); - ibInit("-2147483648 0 2147483647 2147483648"); - testVerifyBool((ib >> sl) && sl == -2147483648 && ib.good()); - testVerifyBool((ib >> sl) && sl == 0 && ib.good()); - testVerifyBool((ib >> sl) && sl == 2147483647 && ib.good()); - testVerifyBool(!(ib >> sl) && ib.fail()); - - ibInit("0 4294967295 4294967296"); - testVerifyBool((ib >> ul) && ul == 0 && ib.good()); - testVerifyBool((ib >> ul) && ul == 4294967295 && ib.good()); - testVerifyBool(!(ib >> ul) && ib.fail()); - - // octal hex - ibInit("123 abc 0xdef 0XABC 567"); - testVerifyBool((ib >> oct >> i) && i == 83); - testVerifyBool((ib >> hex >> i) && i == 0xabc); - testVerifyBool((ib >> i) && i == 0xdef); - testVerifyBool((ib >> i) && i == 0xabc); - testVerifyBool((ib >> dec >> i) && i ==567); -} -//------------------------------------------------------------------------------ -void istreamStr() { - char str[20]; - ibInit("abc def\r\n hij"); - testVerifyBool((ib >> str) && ib.good()); - testVerifyStr(str, "abc"); - testVerifyBool((ib >> str) && ib.good()); - testVerifyStr(str, "def"); - testVerifyBool((ib >> str) && ib.eof()); - testVerifyStr(str, "hij"); -} -//------------------------------------------------------------------------------ -void setup() { - testBegin(); - istreamBool(); - istreamChar(); - istreamDouble(); - istreamFloat(); - istreamGet(); - istreamNumber(); - istreamStr(); - testEnd(); -} -//------------------------------------------------------------------------------ -void loop() {} \ No newline at end of file diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/lfnSize/lfnSize.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/lfnSize/lfnSize.ino deleted file mode 100644 index a37e9b2..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/lfnSize/lfnSize.ino +++ /dev/null @@ -1,36 +0,0 @@ -// Program to compare size of SdFat with the SD.h library. -#include -// Select the test library by commenting out one of the following two lines. -// #include -#include - -// SD chip select pin. -const uint8_t SD_CS_PIN = SS; - -#ifdef __SD_H__ -File file; -#else // __SD_H__ -SdFat SD; -SdFile file; -#endif // __SD_H__ - -void setup() { - Serial.begin(9600); - while (!Serial) {} // wait for Leonardo - - if (!SD.begin(SD_CS_PIN)) { - Serial.println("begin failed"); - return; - } - #ifdef __SD_H__ - file = SD.open("SFN_file.txt", FILE_WRITE); - #else // __SD_H__ - file.open("LFN_file.txt", O_RDWR | O_CREAT); - #endif // __SD_H__ - - file.println("Hello"); - file.close(); - Serial.println("Done"); -} -//------------------------------------------------------------------------------ -void loop() {} \ No newline at end of file diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/lfnTest/lfnTest.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/lfnTest/lfnTest.ino deleted file mode 100644 index c617929..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/lfnTest/lfnTest.ino +++ /dev/null @@ -1,234 +0,0 @@ -#include -#include -#include -const uint8_t SD_CS_PIN = SS; -SdFat sd; -SdFile file; -char name[260]; - -//------------------------------------------------------------------------------ -const char* testName[] = { - "low.low", - "low.Mix", - "low.UP", - "Mix.low", - "Mix.Mix", - "Mix.UP", - "UP.low", - "UP.Mix", - "UP.UP", - ".dot", - ".dot.dot", - "A b c . txt", - " Leading space and no extension", - "Trailing dots and space . . .", - "Long extension.extension", - "Space after dot. txt", - "Dot.dot.test.txt", - "Dot.dot.test.seq.txt", - "LOW.LOW", - "MIX.MIX", - "Invalid character *.test" -}; -//------------------------------------------------------------------------------ -bool checkName(char first, size_t len) { - size_t i; - if (len < 5 || len > sizeof(name)) { - return false; - } - if ( name[0] != first) { - return false; - } - for (i = 1; i < (len - 4); i++) { - if (name[i] != (char)('0' + (i + 1) %10)) { - return false; - } - } - const char* p = ".txt"; - while (*p) { - if (name[i++] != *p++) { - return false; - } - } - return name[i] == 0; -} -//------------------------------------------------------------------------------ -void makeName(char first, size_t len) { - size_t i; - if (len > sizeof(name)) { - len = 255; - } - if (len < 5) { - len = 5; - } - name[0] = first; - for (i = 1; i < (len - 4); i++) { - name[i] = '0' + (i + 1) %10; - } - const char* p = ".txt"; - while (*p) name[i++] = *p++; - name[i] = 0; -} -//------------------------------------------------------------------------------ -// test open, remove, getName, and ls. -void basicTest() { - size_t i; - size_t n = sd.vol()->fatType() == 32 ? 255 : 99; - uint16_t maxIndex = 0; - - makeName('Z', 256); - if (!file.open(name, O_RDWR | O_CREAT)) { - Serial.println(F("255 limit OK")); - } else { - sd.errorHalt(F("255 limit")); - } - for (i = 5; i <= n; i++) { - makeName('A', i); - - if (!file.open(name, O_RDWR | O_CREAT)) { - sd.errorHalt(F("open A")); - } - file.println(name); - Serial.print(i); - Serial.write(' '); - Serial.print(file.dirIndex()); - Serial.write(' '); - Serial.print(file.fileSize()); - Serial.println(F(" open A")); - if (file.fileSize() != (i + 2)) { - sd.errorHalt(F("file size A")); - } - if (file.dirIndex() >= maxIndex) { - maxIndex = file.dirIndex(); - } else { - Serial.print(maxIndex); Serial.print(',');Serial.println(file.dirIndex()); - sd.errorHalt(F("dirIndex")); - } - file.close(); - if (!file.open(sd.vwd(), maxIndex, O_READ)) { - sd.errorHalt(F("open by index")); - } - memset(name, 0, sizeof(name)); - if (!file.getName(name, sizeof(name))) { - sd.errorHalt(F("getName")); - } - if (!checkName('A', i)) { - Serial.println(name); - sd.errorHalt(F("checkName")); - } - file.close(); - } - for (i = n; i >= 5; i -= 2) { - makeName('A', i); - Serial.print(i); - Serial.println(F( " rm A")); - if (!sd.remove(name)) { - sd.errorHalt(F("remove A")); - } - } - for (i = n; i >= 5; i -= 2) { - makeName('B', i); - if (!file.open(name, O_RDWR | O_CREAT)) { - sd.errorHalt(F("open B")); - } - file.println(name); - Serial.print(i); - Serial.write(' '); - Serial.print(file.dirIndex()); - Serial.write(' '); - Serial.print(file.fileSize()); - Serial.println(F(" open B")); - if (file.fileSize() != (i + 2)) { - sd.errorHalt(F("file size B")); - } - if (file.dirIndex() > maxIndex) { - sd.errorHalt(F("maxIndex")); - } - file.close(); - } - Serial.println(F("----- ls ------")); - sd.ls(); - for (i = 5; i <= n; i++) { - char fc = i & 1 ? 'B' : 'A'; - makeName(fc, i); - Serial.print(i); - Serial.print(F(" rm ")); - Serial.println(fc); - if (!sd.remove(name)) { - sd.errorHalt(F("remove A/B")); - } - } - if (file.openNext(sd.vwd())) { - sd.errorHalt(F("remove all")); - } - Serial.println(); - Serial.println(F("basicTest done")); -} -//------------------------------------------------------------------------------ -void nameTest() { - Serial.println(); - uint8_t n = sizeof(testName)/sizeof(char*); - for (uint8_t i = 0; i < n; i++) { - Serial.print(F("Name: ")); - Serial.write('"'); - Serial.print(testName[i]); - Serial.println('"'); - if(!file.open(testName[i], O_CREAT | O_RDWR)) { - Serial.println(F("Open failed")); - } else { - file.println(testName[i]); - if (!file.getName(name, sizeof(name))) { - sd.errorHalt(F("getFilemame")); - } - file.println(name); - Serial.print(F("LFN: ")); - Serial.write('"'); - Serial.print(name); - Serial.println('"'); - Serial.print(F("SFN: ")); - Serial.write('"'); - file.printSFN(&Serial); - Serial.println('"'); - Serial.print(F("Index: ")); - if (file.dirIndex() < 10) { - Serial.write(' '); - } - Serial.println(file.dirIndex()); - file.close(); - } - Serial.println(); - } - Serial.println(F("----- ls ------")); - sd.ls(); - Serial.println(); - Serial.println(F("nameTest done")); -} -//------------------------------------------------------------------------------ -void setup() { - Serial.begin(9600); - while(!Serial); - Serial.print(F("\r\nFreeRam: ")); - Serial.println(FreeRam()); - Serial.println(F("Type any character to start.")); - while (Serial.read() < 0) {} - if (!sd.begin(SD_CS_PIN)) sd.initErrorHalt(); - if (file.openNext(sd.vwd())) { - file.close(); - delay(100); - while (Serial.read() >= 0) {} - Serial.print(F("Type 'W' to wipe the card: ")); - int c; - while ((c = Serial.read()) < 0) {} - if (c != 'W') { - sd.errorHalt(F("Invalid")); - } - Serial.println((char)c); - if (!sd.wipe(&Serial) || !sd.begin(SD_CS_PIN)) { - sd.errorHalt(F("wipe failed")); - } - } - basicTest(); - nameTest(); -} -//------------------------------------------------------------------------------ -void loop() {} \ No newline at end of file diff --git a/libraries/SdFat/extras/SdFatTestSuite/examples/lfnTestCout/lfnTestCout.ino b/libraries/SdFat/extras/SdFatTestSuite/examples/lfnTestCout/lfnTestCout.ino deleted file mode 100644 index 038f025..0000000 --- a/libraries/SdFat/extras/SdFatTestSuite/examples/lfnTestCout/lfnTestCout.ino +++ /dev/null @@ -1,218 +0,0 @@ -#include -#include -#include -const uint8_t SD_CS_PIN = SS; -SdFat sd; -SdFile file; -char name[260]; - -// Serial output stream -ArduinoOutStream cout(Serial); - -// Serial in buffer. -char cinBuf[10]; - -// Serial input stream -ArduinoInStream cin(Serial, cinBuf, sizeof(cinBuf)); -//------------------------------------------------------------------------------ -const char* testName[] = { - "low.low", - "low.Mix", - "low.UP", - "Mix.low", - "Mix.Mix", - "Mix.UP", - "UP.low", - "UP.Mix", - "UP.UP", - ".dot", - ".dot.dot", - "A b c . txt", - " Leading space and no extension", - "Trailing dots and space . . .", - "Long extension.extension", - "Space after dot. txt", - "Dot.dot.test.txt", - "Dot.dot.test.seq.txt", - "LOW.LOW", - "MIX.MIX", - "Invalid character *.test" -}; -//------------------------------------------------------------------------------ -bool checkName(char first, size_t len) { - size_t i; - if (len < 5 || len > sizeof(name)) { - return false; - } - if ( name[0] != first) { - return false; - } - for (i = 1; i < (len - 4); i++) { - if (name[i] != (char)('0' + (i + 1) %10)) { - return false; - } - } - const char* p = ".txt"; - while (*p) { - if (name[i++] != *p++) { - return false; - } - } - return name[i] == 0; -} -//------------------------------------------------------------------------------ -void makeName(char first, size_t len) { - size_t i; - if (len > sizeof(name)) { - len = 255; - } - if (len < 5) { - len = 5; - } - name[0] = first; - for (i = 1; i < (len - 4); i++) { - name[i] = '0' + (i + 1) %10; - } - const char* p = ".txt"; - while (*p) name[i++] = *p++; - name[i] = 0; -} -//------------------------------------------------------------------------------ -// test open, remove, getName, and ls. -void basicTest() { - size_t i; - size_t n = sd.vol()->fatType() == 32 ? 255 : 99; - uint16_t maxIndex = 0; - - makeName('Z', 256); - if (!file.open(name, O_RDWR | O_CREAT)) { - cout << F("255 limit OK") << endl; - } else { - sd.errorHalt(F("255 limit")); - } - for (i = 5; i <= n; i++) { - makeName('A', i); - - if (!file.open(name, O_RDWR | O_CREAT)) { - sd.errorHalt(F("open A")); - } - file.println(name); - cout << setw(3) << i << setw(5) << file.dirIndex() << F(" open A") << endl; - - if (file.fileSize() != (i + 2)) { - sd.errorHalt(F("file size A")); - } - if (file.dirIndex() >= maxIndex) { - maxIndex = file.dirIndex(); - } else { - sd.errorHalt(F("dirIndex")); - } - file.close(); - if (!file.open(sd.vwd(), maxIndex, O_READ)) { - sd.errorHalt(F("open by index")); - } - memset(name, 0, sizeof(name)); - if (!file.getName(name, sizeof(name))) { - sd.errorHalt(F("getName")); - } - if (!checkName('A', i)) { - cout << name << endl; - sd.errorHalt(F("checkName")); - } - file.close(); - } - for (i = n; i >= 5; i -= 2) { - makeName('A', i); - cout << setw(3) << i << F( " rm A") << endl; - if (!sd.remove(name)) { - sd.errorHalt(F("remove A")); - } - } - for (i = n; i >= 5; i -= 2) { - makeName('B', i); - if (!file.open(name, O_RDWR | O_CREAT)) { - sd.errorHalt(F("open B")); - } - file.println(name); - - cout << setw(3) << i << setw(5) << file.dirIndex() << F(" open B") << endl; - - if (file.fileSize() != (i + 2)) { - sd.errorHalt(F("file size B")); - } - if (file.dirIndex() > maxIndex) { - sd.errorHalt(F("maxIndex")); - } - file.close(); - } - cout << endl << F("----- ls ------") << endl; - sd.ls(); - for (i = 5; i <= n; i++) { - char fc = i & 1 ? 'B' : 'A'; - makeName(fc, i); - cout << setw(3) << i << F(" rm ") << fc << endl; - if (!sd.remove(name)) { - sd.errorHalt(F("remove A/B")); - } - } - if (file.openNext(sd.vwd())) { - sd.errorHalt(F("remove all")); - } - cout << endl << F("basicTest done") << endl; -} -//------------------------------------------------------------------------------ -void nameTest() { - cout << endl; - uint8_t n = sizeof(testName)/sizeof(char*); - for (uint8_t i = 0; i < n; i++) { - cout << F("Name: \"") << testName[i] << '"' << endl; - if(!file.open(testName[i], O_CREAT | O_RDWR)) { - cout < -#include -#include -//------------------------------------------------------------------------------ -void ostreamBool() { - char buf[40]; - obufstream ob(buf, sizeof(buf)); - bool f = false; - bool t = true; - ob << t << ',' << f << ',' << setw(2) << t << ',' << left << setw(2) << f; - testVerifyStr(buf, "1,0, 1,0 "); - - ob.init(buf, sizeof(buf)); - ob << boolalpha << t << ',' << f << ',' << setw(5) << t; - ob << ',' << right << setw(6) << f; - testVerifyStr(buf, "true,false,true , false"); -} -//------------------------------------------------------------------------------ -void ostreamChar() { - char buf[40]; - obufstream ob(buf, sizeof(buf)); - char c = 'c'; - signed char sc = 's'; - unsigned char uc = 'u'; - ob <<'l' << c << sc << uc; - ob.put('p'); - testVerifyStr(buf, "lcsup"); - - ob.init(buf, sizeof(buf)); - ob << 's' << setw(2) << 'r' << 'n' << left << setw(2) << 'l'; - ob << 'm' << right << setw(2) << 'e'; - testVerifyStr(buf, "s rnl m e"); - - ob.init(buf, sizeof(buf)); - ob << setfill('f') << setw(5) << 'r'; - testVerifyStr(buf, "ffffr"); -} -//------------------------------------------------------------------------------ -void ostreamFloat() { - char buf[50]; - obufstream ob(buf, sizeof(buf)); - float f = 9.87654; - double d = -123.4567; - ob << f <<','; - ob << internal << setw(10) << d << ','; - ob << setfill('0') << setw(10) << d; - testVerifyStr(buf, "9.88,- 123.46,-000123.46"); - - ob.init(buf, sizeof(buf)); - ob << setw(10) << left << d << ',' << showpos << -d << ','; - ob << setprecision(0) << d; - testVerifyStr(buf, "-123.46000,+123.46,-123"); - - ob.init(buf, sizeof(buf)); - ob << showpoint << d << noshowpoint << ',' << d << ','; - ob << setprecision(4) << f << ',' << setprecision(2) << noshowpos << f; - testVerifyStr(buf, "-123.,-123,+9.8765,9.88"); -} -//------------------------------------------------------------------------------ -void ostreamNumber() { - char buf[50]; - obufstream ob(buf, sizeof(buf)); - - short s = 1; - short signed ss = 2; - short unsigned su = 3; - int i = 4; - int signed is = 5; - int unsigned iu = 6; - long l = 7; - long signed ls = 8; - long unsigned lu = 9; - - - ob << s << ss << su << i << is << iu << l < - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/ArduinoFiles.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
ArduinoFiles.h File Reference
-
-
- -

PrintFile class. -More...

-
#include "FatLibConfig.h"
-#include "FatFile.h"
-#include <limits.h>
-
-Include dependency graph for ArduinoFiles.h:
-
-
- - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - -
-
- - - - - - - -

-Classes

class  File
 Arduino SD.h style File API. More...
 
class  PrintFile
 FatFile with Print. More...
 
- - - - - -

-Macros

#define FILE_READ   O_READ
 
#define FILE_WRITE   (O_RDWR | O_CREAT | O_AT_END)
 
-

Detailed Description

-

PrintFile class.

-

Macro Definition Documentation

- -
-
- - - - -
#define FILE_READ   O_READ
-
-

Arduino SD.h style flag for open for read.

- -
-
- -
-
- - - - -
#define FILE_WRITE   (O_RDWR | O_CREAT | O_AT_END)
-
-

Arduino SD.h style flag for open at EOF for read/write with create.

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_arduino_files_8h__dep__incl.png b/libraries/SdFat/extras/html/_arduino_files_8h__dep__incl.png deleted file mode 100644 index 6e72f2d..0000000 Binary files a/libraries/SdFat/extras/html/_arduino_files_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_arduino_files_8h__incl.png b/libraries/SdFat/extras/html/_arduino_files_8h__incl.png deleted file mode 100644 index 2c4c69f..0000000 Binary files a/libraries/SdFat/extras/html/_arduino_files_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_arduino_stream_8h.html b/libraries/SdFat/extras/html/_arduino_stream_8h.html deleted file mode 100644 index 1f3c9f9..0000000 --- a/libraries/SdFat/extras/html/_arduino_stream_8h.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/ArduinoStream.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
ArduinoStream.h File Reference
-
-
- -

ArduinoInStream and ArduinoOutStream classes. -More...

-
#include "FatLibConfig.h"
-#include "bufstream.h"
-
-Include dependency graph for ArduinoStream.h:
-
-
- - - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - -
-
- - - - - - - -

-Classes

class  ArduinoInStream
 Input stream for Arduino Stream objects. More...
 
class  ArduinoOutStream
 Output stream for Arduino Print objects. More...
 
-

Detailed Description

-
- - - - diff --git a/libraries/SdFat/extras/html/_arduino_stream_8h__dep__incl.png b/libraries/SdFat/extras/html/_arduino_stream_8h__dep__incl.png deleted file mode 100644 index 8764ad8..0000000 Binary files a/libraries/SdFat/extras/html/_arduino_stream_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_arduino_stream_8h__incl.png b/libraries/SdFat/extras/html/_arduino_stream_8h__incl.png deleted file mode 100644 index 31aee2d..0000000 Binary files a/libraries/SdFat/extras/html/_arduino_stream_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_block_driver_8h.html b/libraries/SdFat/extras/html/_block_driver_8h.html deleted file mode 100644 index 7000066..0000000 --- a/libraries/SdFat/extras/html/_block_driver_8h.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/BlockDriver.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
BlockDriver.h File Reference
-
-
- -

Define block driver. -More...

-
#include "FatLib/BaseBlockDriver.h"
-#include "SdCard/SdSpiCard.h"
-
-Include dependency graph for BlockDriver.h:
-
-
- - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - -
-
- - - -

-Typedefs

typedef SdSpiCard BlockDriver
 
-

Detailed Description

-

Define block driver.

-

Typedef Documentation

- -
-
- - - - -
typedef SdSpiCard BlockDriver
-
-

typedef for BlockDriver

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_block_driver_8h__dep__incl.png b/libraries/SdFat/extras/html/_block_driver_8h__dep__incl.png deleted file mode 100644 index 0b19060..0000000 Binary files a/libraries/SdFat/extras/html/_block_driver_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_block_driver_8h__incl.png b/libraries/SdFat/extras/html/_block_driver_8h__incl.png deleted file mode 100644 index bd82994..0000000 Binary files a/libraries/SdFat/extras/html/_block_driver_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_file_8h.html b/libraries/SdFat/extras/html/_fat_file_8h.html deleted file mode 100644 index 3e79634..0000000 --- a/libraries/SdFat/extras/html/_fat_file_8h.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/FatFile.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
FatFile.h File Reference
-
-
- -

FatFile class. -More...

-
#include <string.h>
-#include <stddef.h>
-#include <limits.h>
-#include "FatLibConfig.h"
-#include "FatApiConstants.h"
-#include "FatStructs.h"
-#include "FatVolume.h"
-
-Include dependency graph for FatFile.h:
-
-
- - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - -
-
- - - - - - - - - - -

-Classes

class  FatFile
 Basic file class. More...
 
struct  FatPos_t
 Internal type for file position - do not use in user apps. More...
 
struct  fname_t
 Internal type for Short File Name - do not use in user apps. More...
 
- - - - - - - - - - - -

-Macros

#define isDirSeparator(c)   ((c) == '/')
 
#define pgm_read_byte(addr)   (*(const unsigned char*)(addr))
 
#define pgm_read_word(addr)   (*(const uint16_t*)(addr))
 
#define PROGMEM
 
#define PSTR(x)   (x)
 
- - - - - - - - - - - -

-Variables

const uint8_t FNAME_FLAG_LC_BASE = DIR_NT_LC_BASE
 
const uint8_t FNAME_FLAG_LC_EXT = DIR_NT_LC_EXT
 
const uint8_t FNAME_FLAG_LOST_CHARS = 0X01
 
const uint8_t FNAME_FLAG_MIXED_CASE = 0X02
 
const uint8_t FNAME_FLAG_NEED_LFN
 
-

Detailed Description

-

FatFile class.

-

Macro Definition Documentation

- -
-
- - - - - - - - -
#define isDirSeparator( c)   ((c) == '/')
-
-

Expression for path name separator.

- -
-
- -
-
- - - - - - - - -
#define pgm_read_byte( addr)   (*(const unsigned char*)(addr))
-
-

read 8-bits from flash for ARM

- -
-
- -
-
- - - - - - - - -
#define pgm_read_word( addr)   (*(const uint16_t*)(addr))
-
-

read 16-bits from flash for ARM

- -
-
- -
-
- - - - -
#define PROGMEM
-
-

store in flash for ARM

- -
-
- -
-
- - - - - - - - -
#define PSTR( x)   (x)
-
-

store literal string in flash for ARM

- -
-
-

Variable Documentation

- -
-
- - - - -
const uint8_t FNAME_FLAG_LC_BASE = DIR_NT_LC_BASE
-
-

Filename base-name is all lower case

- -
-
- -
-
- - - - -
const uint8_t FNAME_FLAG_LC_EXT = DIR_NT_LC_EXT
-
-

Filename extension is all lower case.

- -
-
- -
-
- - - - -
const uint8_t FNAME_FLAG_LOST_CHARS = 0X01
-
-

Derived from a LFN with loss or conversion of characters.

- -
-
- -
-
- - - - -
const uint8_t FNAME_FLAG_MIXED_CASE = 0X02
-
-

Base-name or extension has mixed case.

- -
-
- -
-
- - - - -
const uint8_t FNAME_FLAG_NEED_LFN
-
-Initial value:
=
- -
const uint8_t FNAME_FLAG_MIXED_CASE
Definition: FatFile.h:92
-
const uint8_t FNAME_FLAG_LOST_CHARS
Definition: FatFile.h:90
-

LFN entries are required for file name.

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_fat_file_8h__dep__incl.png b/libraries/SdFat/extras/html/_fat_file_8h__dep__incl.png deleted file mode 100644 index 2116a88..0000000 Binary files a/libraries/SdFat/extras/html/_fat_file_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_file_8h__incl.png b/libraries/SdFat/extras/html/_fat_file_8h__incl.png deleted file mode 100644 index 6fedec9..0000000 Binary files a/libraries/SdFat/extras/html/_fat_file_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_file_system_8h.html b/libraries/SdFat/extras/html/_fat_file_system_8h.html deleted file mode 100644 index e340250..0000000 --- a/libraries/SdFat/extras/html/_fat_file_system_8h.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/FatFileSystem.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
FatFileSystem.h File Reference
-
-
- -

FatFileSystem class. -More...

-
#include "FatVolume.h"
-#include "FatFile.h"
-#include "ArduinoStream.h"
-#include "ArduinoFiles.h"
-
-Include dependency graph for FatFileSystem.h:
-
-
- - - - - - - - - - - - - - - - - -
-
- - - - -

-Classes

class  FatFileSystem
 Integration class for the FatLib library. More...
 
-

Detailed Description

-

FatFileSystem class.

-
- - - - diff --git a/libraries/SdFat/extras/html/_fat_file_system_8h__incl.png b/libraries/SdFat/extras/html/_fat_file_system_8h__incl.png deleted file mode 100644 index dbcfb61..0000000 Binary files a/libraries/SdFat/extras/html/_fat_file_system_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_lib_config_8h.html b/libraries/SdFat/extras/html/_fat_lib_config_8h.html deleted file mode 100644 index a07dfa0..0000000 --- a/libraries/SdFat/extras/html/_fat_lib_config_8h.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/FatLibConfig.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
FatLibConfig.h File Reference
-
-
- -

configuration definitions -More...

-
#include <stdint.h>
-#include "SdFatConfig.h"
-#include <Arduino.h>
-
-Include dependency graph for FatLibConfig.h:
-
-
- - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - -

-Macros

#define DESTRUCTOR_CLOSES_FILE   0
 
#define ENABLE_ARDUINO_FEATURES   1
 
#define ENDL_CALLS_FLUSH   0
 
#define FAT12_SUPPORT   0
 
#define MAINTAIN_FREE_CLUSTER_COUNT   0
 
#define USE_LONG_FILE_NAMES   1
 
#define USE_MULTI_BLOCK_IO   1
 
#define USE_SEPARATE_FAT_CACHE   0
 
-

Detailed Description

-

configuration definitions

-

Macro Definition Documentation

- -
-
- - - - -
#define DESTRUCTOR_CLOSES_FILE   0
-
-

Set DESTRUCTOR_CLOSES_FILE non-zero to close a file in its destructor.

-

Causes use of lots of heap in ARM.

- -
-
- -
-
- - - - -
#define ENABLE_ARDUINO_FEATURES   1
-
-

Enable Extra features for Arduino.

- -
-
- -
-
- - - - -
#define ENDL_CALLS_FLUSH   0
-
-

Call flush for endl if ENDL_CALLS_FLUSH is non-zero

-

The standard for iostreams is to call flush. This is very costly for SdFat. Each call to flush causes 2048 bytes of I/O to the SD.

-

SdFat has a single 512 byte buffer for I/O so it must write the current data block to the SD, read the directory block from the SD, update the directory entry, write the directory block to the SD and read the data block back into the buffer.

-

The SD flash memory controller is not designed for this many rewrites so performance may be reduced by more than a factor of 100.

-

If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force all data to be written to the SD.

- -
-
- -
-
- - - - -
#define FAT12_SUPPORT   0
-
-

Allow FAT12 volumes if FAT12_SUPPORT is non-zero. FAT12 has not been well tested.

- -
-
- -
-
- - - - -
#define MAINTAIN_FREE_CLUSTER_COUNT   0
-
-

Set MAINTAIN_FREE_CLUSTER_COUNT nonzero to keep the count of free clusters updated. This will increase the speed of the freeClusterCount() call after the first call. Extra flash will be required.

- -
-
- -
-
- - - - -
#define USE_LONG_FILE_NAMES   1
-
-

Set USE_LONG_FILE_NAMES nonzero to use long file names (LFN). Long File Name are limited to a maximum length of 255 characters.

-

This implementation allows 7-bit characters in the range 0X20 to 0X7E. The following characters are not allowed:

-

< (less than)

-

(greater than)

-
-

: (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark)

    -
  • (asterisk)
  • -
- -
-
- -
-
- - - - -
#define USE_MULTI_BLOCK_IO   1
-
-

Set USE_MULTI_BLOCK_IO non-zero to use multi-block SD read/write.

-

Don't use mult-block read/write on small AVR boards.

- -
-
- -
-
- - - - -
#define USE_SEPARATE_FAT_CACHE   0
-
-

Set USE_SEPARATE_FAT_CACHE non-zero to use a second 512 byte cache for FAT table entries. Improves performance for large writes that are not a multiple of 512 bytes.

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_fat_lib_config_8h__dep__incl.png b/libraries/SdFat/extras/html/_fat_lib_config_8h__dep__incl.png deleted file mode 100644 index a7a8d21..0000000 Binary files a/libraries/SdFat/extras/html/_fat_lib_config_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_lib_config_8h__incl.png b/libraries/SdFat/extras/html/_fat_lib_config_8h__incl.png deleted file mode 100644 index 4f0dc51..0000000 Binary files a/libraries/SdFat/extras/html/_fat_lib_config_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_structs_8h.html b/libraries/SdFat/extras/html/_fat_structs_8h.html deleted file mode 100644 index a3a887f..0000000 --- a/libraries/SdFat/extras/html/_fat_structs_8h.html +++ /dev/null @@ -1,1282 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/FatStructs.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
FatStructs.h File Reference
-
-
- -

FAT file structures. -More...

-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

struct  biosParmBlock
 BIOS parameter block. More...
 
struct  directoryEntry
 FAT short directory entry. More...
 
struct  fat32_boot
 Boot sector for a FAT32 volume. More...
 
struct  fat32_fsinfo
 FSINFO sector for a FAT32 volume. More...
 
struct  fat_boot
 Boot sector for a FAT12/FAT16 volume. More...
 
struct  longDirectoryEntry
 FAT long directory entry. More...
 
struct  masterBootRecord
 Master Boot Record. More...
 
struct  partitionTable
 MBR partition table entry. More...
 
- - - - - - - - - - - - - - - - - -

-Typedefs

typedef struct biosParmBlock bpb_t
 
typedef struct directoryEntry dir_t
 
typedef struct fat32_boot fat32_boot_t
 
typedef struct fat32_fsinfo fat32_fsinfo_t
 
typedef struct fat_boot fat_boot_t
 
typedef struct longDirectoryEntry ldir_t
 
typedef struct masterBootRecord mbr_t
 
typedef struct partitionTable part_t
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

static uint8_t DIR_IS_FILE (const dir_t *dir)
 
static uint8_t DIR_IS_FILE_OR_SUBDIR (const dir_t *dir)
 
static uint8_t DIR_IS_HIDDEN (const dir_t *dir)
 
static uint8_t DIR_IS_LONG_NAME (const dir_t *dir)
 
static uint8_t DIR_IS_SUBDIR (const dir_t *dir)
 
static uint8_t DIR_IS_SYSTEM (const dir_t *dir)
 
static uint16_t FAT_DATE (uint16_t year, uint8_t month, uint8_t day)
 
static uint8_t FAT_DAY (uint16_t fatDate)
 
static uint8_t FAT_HOUR (uint16_t fatTime)
 
static uint8_t FAT_MINUTE (uint16_t fatTime)
 
static uint8_t FAT_MONTH (uint16_t fatDate)
 
static uint8_t FAT_SECOND (uint16_t fatTime)
 
static uint16_t FAT_TIME (uint8_t hour, uint8_t minute, uint8_t second)
 
static uint16_t FAT_YEAR (uint16_t fatDate)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Variables

const uint8_t BOOTSIG0 = 0X55
 
const uint8_t BOOTSIG1 = 0XAA
 
const uint8_t DIR_ATT_ARCHIVE = 0X20
 
const uint8_t DIR_ATT_DEFINED_BITS = 0X3F
 
const uint8_t DIR_ATT_DIRECTORY = 0X10
 
const uint8_t DIR_ATT_FILE_TYPE_MASK = (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY)
 
const uint8_t DIR_ATT_HIDDEN = 0X02
 
const uint8_t DIR_ATT_LONG_NAME = 0X0F
 
const uint8_t DIR_ATT_LONG_NAME_MASK = 0X3F
 
const uint8_t DIR_ATT_READ_ONLY = 0X01
 
const uint8_t DIR_ATT_SYSTEM = 0X04
 
const uint8_t DIR_ATT_VOLUME_ID = 0X08
 
const uint8_t DIR_NAME_0XE5 = 0X05
 
const uint8_t DIR_NAME_DELETED = 0XE5
 
const uint8_t DIR_NAME_FREE = 0X00
 
const uint8_t DIR_NT_LC_BASE = 0X08
 
const uint8_t DIR_NT_LC_EXT = 0X10
 
const uint8_t EXTENDED_BOOT_SIG = 0X29
 
const uint16_t FAT12EOC = 0XFFF
 
const uint16_t FAT12EOC_MIN = 0XFF8
 
const uint16_t FAT16EOC = 0XFFFF
 
const uint16_t FAT16EOC_MIN = 0XFFF8
 
const uint32_t FAT32EOC = 0X0FFFFFFF
 
const uint32_t FAT32EOC_MIN = 0X0FFFFFF8
 
const uint32_t FAT32MASK = 0X0FFFFFFF
 
const uint16_t FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1
 
const uint16_t FAT_DEFAULT_TIME = (1 << 11)
 
const uint32_t FSINFO_LEAD_SIG = 0x41615252
 
const uint32_t FSINFO_STRUCT_SIG = 0x61417272
 
const uint8_t LDIR_NAME1_DIM = 5
 
const uint8_t LDIR_NAME2_DIM = 6
 
const uint8_t LDIR_NAME3_DIM = 2
 
const uint8_t LDIR_ORD_LAST_LONG_ENTRY = 0X40
 
-

Detailed Description

-

FAT file structures.

-

Typedef Documentation

- -
-
- - - - -
typedef struct biosParmBlock bpb_t
-
-

Type name for biosParmBlock

- -
-
- -
-
- - - - -
typedef struct directoryEntry dir_t
-
-

Type name for directoryEntry

- -
-
- -
-
- - - - -
typedef struct fat32_boot fat32_boot_t
-
-

Type name for FAT32 Boot Sector

- -
-
- -
-
- - - - -
typedef struct fat32_fsinfo fat32_fsinfo_t
-
-

Type name for FAT32 FSINFO Sector

- -
-
- -
-
- - - - -
typedef struct fat_boot fat_boot_t
-
-

Type name for FAT Boot Sector

- -
-
- -
-
- - - - -
typedef struct longDirectoryEntry ldir_t
-
-

Type name for longDirectoryEntry

- -
-
- -
-
- - - - -
typedef struct masterBootRecord mbr_t
-
-

Type name for masterBootRecord

- -
-
- -
-
- - - - -
typedef struct partitionTable part_t
-
-

Type name for partitionTable

- -
-
-

Function Documentation

- -
-
- - - - - -
- - - - - - - - -
static uint8_t DIR_IS_FILE (const dir_tdir)
-
-inlinestatic
-
-

Directory entry is for a file

Parameters
- - -
[in]dirPointer to a directory entry.
-
-
-
Returns
true if the entry is for a normal file else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t DIR_IS_FILE_OR_SUBDIR (const dir_tdir)
-
-inlinestatic
-
-

Directory entry is for a file or subdirectory

Parameters
- - -
[in]dirPointer to a directory entry.
-
-
-
Returns
true if the entry is for a normal file or subdirectory else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t DIR_IS_HIDDEN (const dir_tdir)
-
-inlinestatic
-
-

Directory entry is hidden

Parameters
- - -
[in]dirPointer to a directory entry.
-
-
-
Returns
true if the entry is hidden else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t DIR_IS_LONG_NAME (const dir_tdir)
-
-inlinestatic
-
-

Directory entry is part of a long name

Parameters
- - -
[in]dirPointer to a directory entry.
-
-
-
Returns
true if the entry is for part of a long name else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t DIR_IS_SUBDIR (const dir_tdir)
-
-inlinestatic
-
-

Directory entry is for a subdirectory

Parameters
- - -
[in]dirPointer to a directory entry.
-
-
-
Returns
true if the entry is for a subdirectory else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t DIR_IS_SYSTEM (const dir_tdir)
-
-inlinestatic
-
-

Directory entry is system type

Parameters
- - -
[in]dirPointer to a directory entry.
-
-
-
Returns
true if the entry is system else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static uint16_t FAT_DATE (uint16_t year,
uint8_t month,
uint8_t day 
)
-
-inlinestatic
-
-

date field for FAT directory entry

Parameters
- - - - -
[in]year[1980,2107]
[in]month[1,12]
[in]day[1,31]
-
-
-
Returns
Packed date for dir_t entry.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t FAT_DAY (uint16_t fatDate)
-
-inlinestatic
-
-

day part of FAT directory date field

Parameters
- - -
[in]fatDateDate in packed dir format.
-
-
-
Returns
Extracted day [1,31]
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t FAT_HOUR (uint16_t fatTime)
-
-inlinestatic
-
-

hour part of FAT directory time field

Parameters
- - -
[in]fatTimeTime in packed dir format.
-
-
-
Returns
Extracted hour [0,23]
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t FAT_MINUTE (uint16_t fatTime)
-
-inlinestatic
-
-

minute part of FAT directory time field

Parameters
- - -
[in]fatTimeTime in packed dir format.
-
-
-
Returns
Extracted minute [0,59]
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t FAT_MONTH (uint16_t fatDate)
-
-inlinestatic
-
-

month part of FAT directory date field

Parameters
- - -
[in]fatDateDate in packed dir format.
-
-
-
Returns
Extracted month [1,12]
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint8_t FAT_SECOND (uint16_t fatTime)
-
-inlinestatic
-
-

second part of FAT directory time field Note second/2 is stored in packed time.

-
Parameters
- - -
[in]fatTimeTime in packed dir format.
-
-
-
Returns
Extracted second [0,58]
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static uint16_t FAT_TIME (uint8_t hour,
uint8_t minute,
uint8_t second 
)
-
-inlinestatic
-
-

time field for FAT directory entry

Parameters
- - - - -
[in]hour[0,23]
[in]minute[0,59]
[in]second[0,59]
-
-
-
Returns
Packed time for dir_t entry.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static uint16_t FAT_YEAR (uint16_t fatDate)
-
-inlinestatic
-
-

year part of FAT directory date field

Parameters
- - -
[in]fatDateDate in packed dir format.
-
-
-
Returns
Extracted year [1980,2107]
- -
-
-

Variable Documentation

- -
-
- - - - -
const uint8_t BOOTSIG0 = 0X55
-
-

Value for byte 510 of boot block or MBR

- -
-
- -
-
- - - - -
const uint8_t BOOTSIG1 = 0XAA
-
-

Value for byte 511 of boot block or MBR

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_ARCHIVE = 0X20
-
-

Old DOS archive bit for backup support

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_DEFINED_BITS = 0X3F
-
-

defined attribute bits

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_DIRECTORY = 0X10
-
-

Entry is for a directory

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_FILE_TYPE_MASK = (DIR_ATT_VOLUME_ID | DIR_ATT_DIRECTORY)
-
-

Mask for file/subdirectory tests

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_HIDDEN = 0X02
-
-

File should e hidden in directory listings

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_LONG_NAME = 0X0F
-
-

Test value for long name entry. Test is (d->attributes & DIR_ATT_LONG_NAME_MASK) == DIR_ATT_LONG_NAME.

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_LONG_NAME_MASK = 0X3F
-
-

Test mask for long name entry

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_READ_ONLY = 0X01
-
-

file is read-only

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_SYSTEM = 0X04
-
-

Entry is for a system file

- -
-
- -
-
- - - - -
const uint8_t DIR_ATT_VOLUME_ID = 0X08
-
-

Directory entry contains the volume label

- -
-
- -
-
- - - - -
const uint8_t DIR_NAME_0XE5 = 0X05
-
-

escape for name[0] = 0XE5

- -
-
- -
-
- - - - -
const uint8_t DIR_NAME_DELETED = 0XE5
-
-

name[0] value for entry that is free after being "deleted"

- -
-
- -
-
- - - - -
const uint8_t DIR_NAME_FREE = 0X00
-
-

name[0] value for entry that is free and no allocated entries follow

- -
-
- -
-
- - - - -
const uint8_t DIR_NT_LC_BASE = 0X08
-
-

Filename base-name is all lower case

- -
-
- -
-
- - - - -
const uint8_t DIR_NT_LC_EXT = 0X10
-
-

Filename extension is all lower case.

- -
-
- -
-
- - - - -
const uint8_t EXTENDED_BOOT_SIG = 0X29
-
-

Value for bootSignature field int FAT/FAT32 boot sector

- -
-
- -
-
- - - - -
const uint16_t FAT12EOC = 0XFFF
-
-

FAT12 end of chain value used by Microsoft.

- -
-
- -
-
- - - - -
const uint16_t FAT12EOC_MIN = 0XFF8
-
-

Minimum value for FAT12 EOC. Use to test for EOC.

- -
-
- -
-
- - - - -
const uint16_t FAT16EOC = 0XFFFF
-
-

FAT16 end of chain value used by Microsoft.

- -
-
- -
-
- - - - -
const uint16_t FAT16EOC_MIN = 0XFFF8
-
-

Minimum value for FAT16 EOC. Use to test for EOC.

- -
-
- -
-
- - - - -
const uint32_t FAT32EOC = 0X0FFFFFFF
-
-

FAT32 end of chain value used by Microsoft.

- -
-
- -
-
- - - - -
const uint32_t FAT32EOC_MIN = 0X0FFFFFF8
-
-

Minimum value for FAT32 EOC. Use to test for EOC.

- -
-
- -
-
- - - - -
const uint32_t FAT32MASK = 0X0FFFFFFF
-
-

Mask a for FAT32 entry. Entries are 28 bits.

- -
-
- -
-
- - - - -
const uint16_t FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1
-
-

Default date for file timestamps is 1 Jan 2000

- -
-
- -
-
- - - - -
const uint16_t FAT_DEFAULT_TIME = (1 << 11)
-
-

Default time for file timestamp is 1 am

- -
-
- -
-
- - - - -
const uint32_t FSINFO_LEAD_SIG = 0x41615252
-
-

Lead signature for a FSINFO sector

- -
-
- -
-
- - - - -
const uint32_t FSINFO_STRUCT_SIG = 0x61417272
-
-

Struct signature for a FSINFO sector

- -
-
- -
-
- - - - -
const uint8_t LDIR_NAME1_DIM = 5
-
-

Dimension of first name field in long directory entry

- -
-
- -
-
- - - - -
const uint8_t LDIR_NAME2_DIM = 6
-
-

Dimension of first name field in long directory entry

- -
-
- -
-
- - - - -
const uint8_t LDIR_NAME3_DIM = 2
-
-

Dimension of first name field in long directory entry

- -
-
- -
-
- - - - -
const uint8_t LDIR_ORD_LAST_LONG_ENTRY = 0X40
-
-

Ord mast that indicates the entry is the last long dir entry in a set of long dir entries. All valid sets of long dir entries must begin with an entry having this mask.

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_fat_structs_8h__dep__incl.png b/libraries/SdFat/extras/html/_fat_structs_8h__dep__incl.png deleted file mode 100644 index 716eee9..0000000 Binary files a/libraries/SdFat/extras/html/_fat_structs_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_volume_8h.html b/libraries/SdFat/extras/html/_fat_volume_8h.html deleted file mode 100644 index 8674685..0000000 --- a/libraries/SdFat/extras/html/_fat_volume_8h.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/FatVolume.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
FatVolume.h File Reference
-
-
- -

FatVolume class. -More...

-
#include <stddef.h>
-#include "FatLibConfig.h"
-#include "FatStructs.h"
-#include "BlockDriver.h"
-
-Include dependency graph for FatVolume.h:
-
-
- - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - -
-
- - - - - - - - - - -

-Classes

union  cache_t
 Cache for an raw data block. More...
 
class  FatCache
 Block cache. More...
 
class  FatVolume
 Access FAT16 and FAT32 volumes on raw file devices. More...
 
- - - -

-Typedefs

typedef Print print_t
 
-

Detailed Description

-

FatVolume class.

-

Typedef Documentation

- -
-
- - - - -
typedef Print print_t
-
-

Use Print for Arduino

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_fat_volume_8h__dep__incl.png b/libraries/SdFat/extras/html/_fat_volume_8h__dep__incl.png deleted file mode 100644 index 54a2ab2..0000000 Binary files a/libraries/SdFat/extras/html/_fat_volume_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_fat_volume_8h__incl.png b/libraries/SdFat/extras/html/_fat_volume_8h__incl.png deleted file mode 100644 index 57b8c85..0000000 Binary files a/libraries/SdFat/extras/html/_fat_volume_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_free_stack_8h.html b/libraries/SdFat/extras/html/_free_stack_8h.html deleted file mode 100644 index 24aeca1..0000000 --- a/libraries/SdFat/extras/html/_free_stack_8h.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FreeStack.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
FreeStack.h File Reference
-
-
- -

FreeStack() function. -More...

- - - - -

-Functions

static int FreeStack ()
 
- - - - - -

-Variables

char * __brkval
 
char __bss_end
 
-

Detailed Description

-

FreeStack() function.

-

Function Documentation

- -
-
- - - - - -
- - - - - - - -
static int FreeStack ()
-
-static
-
-

Amount of free stack space.

Returns
The number of free bytes.
- -
-
-

Variable Documentation

- -
-
- - - - -
char* __brkval
-
-

boundary between stack and heap.

- -
-
- -
-
- - - - -
char __bss_end
-
-

End of bss section.

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_minimum_serial_8h.html b/libraries/SdFat/extras/html/_minimum_serial_8h.html deleted file mode 100644 index b4bca2c..0000000 --- a/libraries/SdFat/extras/html/_minimum_serial_8h.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/MinimumSerial.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
MinimumSerial.h File Reference
-
-
- -

Minimal AVR Serial driver. -More...

-
#include "SysCall.h"
-
-Include dependency graph for MinimumSerial.h:
-
-
- - - -
-
- - - - -

-Classes

class  MinimumSerial
 mini serial class for the SdFat library. More...
 
-

Detailed Description

-

Minimal AVR Serial driver.

-
- - - - diff --git a/libraries/SdFat/extras/html/_minimum_serial_8h__incl.png b/libraries/SdFat/extras/html/_minimum_serial_8h__incl.png deleted file mode 100644 index b7fe5cb..0000000 Binary files a/libraries/SdFat/extras/html/_minimum_serial_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_sd_fat_8h.html b/libraries/SdFat/extras/html/_sd_fat_8h.html deleted file mode 100644 index b441f47..0000000 --- a/libraries/SdFat/extras/html/_sd_fat_8h.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/SdFat.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
SdFat.h File Reference
-
-
- -

SdFat class. -More...

-
#include "SysCall.h"
-#include "BlockDriver.h"
-#include "FatLib/FatLib.h"
-#include "SdCard/SdioCard.h"
-
-Include dependency graph for SdFat.h:
-
-
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

class  Sd2Card
 Raw access to SD and SDHC card using default SPI library. More...
 
class  SdBaseFile
 Class for backward compatibility. More...
 
class  SdFat
 Main file system class for SdFat library. More...
 
class  SdFatEX
 SdFat class with extended SD I/O. More...
 
class  SdFatSdio
 SdFat class using SDIO. More...
 
class  SdFatSoftSpi< MisoPin, MosiPin, SckPin >
 SdFat class using software SPI. More...
 
class  SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >
 SdFat class using software SPI and extended SD I/O. More...
 
class  SdFile
 Class for backward compatibility. More...
 
class  SdFileSystem< SdDriverClass >
 Virtual base class for SdFat library. More...
 
- - - -

-Macros

#define SD_FAT_VERSION   20160905
 
-

Detailed Description

-

SdFat class.

-

Macro Definition Documentation

- -
-
- - - - -
#define SD_FAT_VERSION   20160905
-
-

SdFat version YYYYMMDD

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_sd_fat_8h__incl.png b/libraries/SdFat/extras/html/_sd_fat_8h__incl.png deleted file mode 100644 index e5f5614..0000000 Binary files a/libraries/SdFat/extras/html/_sd_fat_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_sd_fat_config_8h.html b/libraries/SdFat/extras/html/_sd_fat_config_8h.html deleted file mode 100644 index bc2326d..0000000 --- a/libraries/SdFat/extras/html/_sd_fat_config_8h.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/SdFatConfig.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
SdFatConfig.h File Reference
-
-
- -

configuration definitions -More...

-
#include <stdint.h>
-
-Include dependency graph for SdFatConfig.h:
-
-
- - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Macros

#define DESTRUCTOR_CLOSES_FILE   0
 
#define ENABLE_EXTENDED_TRANSFER_CLASS   0
 
#define ENABLE_SDIO_CLASS   0
 
#define ENABLE_SOFTWARE_SPI_CLASS   0
 
#define ENDL_CALLS_FLUSH   0
 
#define FAT12_SUPPORT   0
 
#define IMPLEMENT_SPI_PORT_SELECTION   0
 
#define MAINTAIN_FREE_CLUSTER_COUNT   0
 
#define SD_HAS_CUSTOM_SPI   0
 
#define USE_LONG_FILE_NAMES   1
 
#define USE_MULTI_BLOCK_IO   1
 
#define USE_SD_CRC   0
 
#define USE_SEPARATE_FAT_CACHE   0
 
#define USE_STANDARD_SPI_LIBRARY   0
 
#define WDT_YIELD_TIME_MICROS   0
 
-

Detailed Description

-

configuration definitions

-

Macro Definition Documentation

- -
-
- - - - -
#define DESTRUCTOR_CLOSES_FILE   0
-
-

Set DESTRUCTOR_CLOSES_FILE nonzero to close a file in its destructor.

-

Causes use of lots of heap in ARM.

- -
-
- -
-
- - - - -
#define ENABLE_EXTENDED_TRANSFER_CLASS   0
-
-

If the symbol ENABLE_EXTENDED_TRANSFER_CLASS is nonzero, the class SdFatEX will be defined. If the symbol ENABLE_SOFTWARE_SPI_CLASS is also nonzero, the class SdFatSoftSpiEX will be defined.

-

These classes used extended multi-block SD I/O for better performance. the SPI bus may not be shared with other devices in this mode.

- -
-
- -
-
- - - - -
#define ENABLE_SDIO_CLASS   0
-
-

Enable SDIO driver if available.

- -
-
- -
-
- - - - -
#define ENABLE_SOFTWARE_SPI_CLASS   0
-
-

If the symbol ENABLE_SOFTWARE_SPI_CLASS is nonzero, the class SdFatSoftSpi will be defined. If ENABLE_EXTENDED_TRANSFER_CLASS is also nonzero, the class SdFatSoftSpiEX will be defined.

- -
-
- -
-
- - - - -
#define ENDL_CALLS_FLUSH   0
-
-

Call flush for endl if ENDL_CALLS_FLUSH is nonzero

-

The standard for iostreams is to call flush. This is very costly for SdFat. Each call to flush causes 2048 bytes of I/O to the SD.

-

SdFat has a single 512 byte buffer for SD I/O so it must write the current data block to the SD, read the directory block from the SD, update the directory entry, write the directory block to the SD and read the data block back into the buffer.

-

The SD flash memory controller is not designed for this many rewrites so performance may be reduced by more than a factor of 100.

-

If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force all data to be written to the SD.

- -
-
- -
-
- - - - -
#define FAT12_SUPPORT   0
-
-

Set FAT12_SUPPORT nonzero to enable use if FAT12 volumes. FAT12 has not been well tested and requires additional flash.

- -
-
- -
-
- - - - -
#define IMPLEMENT_SPI_PORT_SELECTION   0
-
-

Check if API to select HW SPI port is needed.

- -
-
- -
-
- - - - -
#define MAINTAIN_FREE_CLUSTER_COUNT   0
-
-

Set MAINTAIN_FREE_CLUSTER_COUNT nonzero to keep the count of free clusters updated. This will increase the speed of the freeClusterCount() call after the first call. Extra flash will be required.

- -
-
- -
-
- - - - -
#define SD_HAS_CUSTOM_SPI   0
-
-

Determine the default SPI configuration.

- -
-
- -
-
- - - - -
#define USE_LONG_FILE_NAMES   1
-
-

Set USE_LONG_FILE_NAMES nonzero to use long file names (LFN). Long File Name are limited to a maximum length of 255 characters.

-

This implementation allows 7-bit characters in the range 0X20 to 0X7E except the following characters are not allowed:

-

< (less than)

-

(greater than)

-
-

: (colon) " (double quote) / (forward slash) \ (backslash) | (vertical bar or pipe) ? (question mark)

    -
  • (asterisk)
  • -
- -
-
- -
-
- - - - -
#define USE_MULTI_BLOCK_IO   1
-
-

Set USE_MULTI_BLOCK_IO nonzero to use multi-block SD read/write.

-

Don't use mult-block read/write on small AVR boards.

- -
-
- -
-
- - - - -
#define USE_SD_CRC   0
-
-

To enable SD card CRC checking set USE_SD_CRC nonzero.

-

Set USE_SD_CRC to 1 to use a smaller CRC-CCITT function. This function is slower for AVR but may be fast for ARM and other processors.

-

Set USE_SD_CRC to 2 to used a larger table driven CRC-CCITT function. This function is faster for AVR but may be slower for ARM and other processors.

- -
-
- -
-
- - - - -
#define USE_SEPARATE_FAT_CACHE   0
-
-

Set USE_SEPARATE_FAT_CACHE nonzero to use a second 512 byte cache for FAT table entries. This improves performance for large writes that are not a multiple of 512 bytes.

- -
-
- -
-
- - - - -
#define USE_STANDARD_SPI_LIBRARY   0
-
-

If the symbol USE_STANDARD_SPI_LIBRARY is nonzero, the classes SdFat and SdFatEX use the standard Arduino SPI.h library. If USE_STANDARD_SPI_LIBRARY is zero, an optimized custom SPI driver is used if it exists.

- -
-
- -
-
- - - - -
#define WDT_YIELD_TIME_MICROS   0
-
-

Handle Watchdog Timer for WiFi modules.

-

Yield will be called before accessing the SPI bus if it has been more than WDT_YIELD_TIME_MICROS microseconds since the last yield call by SdFat.

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_sd_fat_config_8h__dep__incl.png b/libraries/SdFat/extras/html/_sd_fat_config_8h__dep__incl.png deleted file mode 100644 index 2d40427..0000000 Binary files a/libraries/SdFat/extras/html/_sd_fat_config_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_sd_fat_config_8h__incl.png b/libraries/SdFat/extras/html/_sd_fat_config_8h__incl.png deleted file mode 100644 index 39f9b12..0000000 Binary files a/libraries/SdFat/extras/html/_sd_fat_config_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_sd_spi_card_8h.html b/libraries/SdFat/extras/html/_sd_spi_card_8h.html deleted file mode 100644 index cdb1ba2..0000000 --- a/libraries/SdFat/extras/html/_sd_spi_card_8h.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/SdCard/SdSpiCard.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
SdSpiCard.h File Reference
-
-
- -

SdSpiCard class for V2 SD/SDHC cards. -More...

-
#include <stddef.h>
-#include "SysCall.h"
-#include "SdInfo.h"
-#include "../FatLib/BaseBlockDriver.h"
-#include "../SpiDriver/SdSpiDriver.h"
-
-Include dependency graph for SdSpiCard.h:
-
-
- - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - -
-
- - - - - - - -

-Classes

class  SdSpiCard
 Raw access to SD and SDHC flash memory cards via SPI protocol. More...
 
class  SdSpiCardEX
 Extended SD I/O block driver. More...
 
-

Detailed Description

-

SdSpiCard class for V2 SD/SDHC cards.

-
- - - - diff --git a/libraries/SdFat/extras/html/_sd_spi_card_8h__dep__incl.png b/libraries/SdFat/extras/html/_sd_spi_card_8h__dep__incl.png deleted file mode 100644 index b14e65c..0000000 Binary files a/libraries/SdFat/extras/html/_sd_spi_card_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_sd_spi_card_8h__incl.png b/libraries/SdFat/extras/html/_sd_spi_card_8h__incl.png deleted file mode 100644 index 5ae683e..0000000 Binary files a/libraries/SdFat/extras/html/_sd_spi_card_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_stdio_stream_8h.html b/libraries/SdFat/extras/html/_stdio_stream_8h.html deleted file mode 100644 index b157a41..0000000 --- a/libraries/SdFat/extras/html/_stdio_stream_8h.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/StdioStream.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
StdioStream.h File Reference
-
-
- -

StdioStream class. -More...

-
#include <limits.h>
-#include "FatFile.h"
-#include <stdio.h>
-
-Include dependency graph for StdioStream.h:
-
-
- - - - - - - - - - -
-
- - - - -

-Classes

class  StdioStream
 StdioStream implements a minimal stdio stream. More...
 
- - - - - - - - - - - -

-Macros

#define EOF   (-1)
 
#define NULL   0
 
#define SEEK_CUR   1
 
#define SEEK_END   2
 
#define SEEK_SET   0
 
- - - - - -

-Variables

const uint8_t STREAM_BUF_SIZE = 64
 
const uint8_t UNGETC_BUF_SIZE = 2
 
-

Detailed Description

-

StdioStream class.

-

Macro Definition Documentation

- -
-
- - - - -
#define EOF   (-1)
-
-

End-of-file return value.

- -
-
- -
-
- - - - -
#define NULL   0
-
-

Null pointer

- -
-
- -
-
- - - - -
#define SEEK_CUR   1
-
-

Seek relative to current position.

- -
-
- -
-
- - - - -
#define SEEK_END   2
-
-

Seek relative to end-of-file.

- -
-
- -
-
- - - - -
#define SEEK_SET   0
-
-

Seek relative to start-of-file.

- -
-
-

Variable Documentation

- -
-
- - - - -
const uint8_t STREAM_BUF_SIZE = 64
-
-

Total size of stream buffer. The entire buffer is used for output. During input UNGETC_BUF_SIZE of this space is reserved for ungetc.

- -
-
- -
-
- - - - -
const uint8_t UNGETC_BUF_SIZE = 2
-
-

Amount of buffer allocated for ungetc during input.

- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_stdio_stream_8h__incl.png b/libraries/SdFat/extras/html/_stdio_stream_8h__incl.png deleted file mode 100644 index d49df80..0000000 Binary files a/libraries/SdFat/extras/html/_stdio_stream_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/_sys_call_8h.html b/libraries/SdFat/extras/html/_sys_call_8h.html deleted file mode 100644 index f5e65c8..0000000 --- a/libraries/SdFat/extras/html/_sys_call_8h.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/SysCall.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
SysCall.h File Reference
-
-
- -

SysCall class. -More...

-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - - - - - - - -
-
- - - - -

-Classes

class  SysCall
 SysCall - Class to wrap system calls. More...
 
- - - -

-Macros

#define F(str)   (str)
 
- - - -

-Functions

uint16_t curTimeMS ()
 
-

Detailed Description

-

SysCall class.

-

Macro Definition Documentation

- -
-
- - - - - - - - -
#define F( str)   (str)
-
-

Define macro for strings stored in flash.

- -
-
-

Function Documentation

- -
-
- - - - - -
- - - - - - - -
uint16_t curTimeMS ()
-
-inline
-
-
Returns
the time in milliseconds.
- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/_sys_call_8h__dep__incl.png b/libraries/SdFat/extras/html/_sys_call_8h__dep__incl.png deleted file mode 100644 index f63deda..0000000 Binary files a/libraries/SdFat/extras/html/_sys_call_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/annotated.html b/libraries/SdFat/extras/html/annotated.html deleted file mode 100644 index 151eb0e..0000000 --- a/libraries/SdFat/extras/html/annotated.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - -SdFat: Class List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 CArduinoInStreamInput stream for Arduino Stream objects
 CArduinoOutStreamOutput stream for Arduino Print objects
 CBaseBlockDriverBase block driver
 CbiosParmBlockBIOS parameter block
 Ccache_tCache for an raw data block
 CdirectoryEntryFAT short directory entry
 Cfat32_bootBoot sector for a FAT32 volume
 Cfat32_fsinfoFSINFO sector for a FAT32 volume
 Cfat_bootBoot sector for a FAT12/FAT16 volume
 CFatCacheBlock cache
 CFatFileBasic file class
 CFatFileSystemIntegration class for the FatLib library
 CFatPos_tInternal type for file position - do not use in user apps
 CFatStreamBaseBase class for C++ style streams
 CFatVolumeAccess FAT16 and FAT32 volumes on raw file devices
 CFileArduino SD.h style File API
 Cfname_tInternal type for Short File Name - do not use in user apps
 CfstreamFile input/output stream
 CibufstreamParse a char string
 CifstreamFile input stream
 CiosError and state information for all streams
 Cios_baseBase class for all streams
 CiostreamInput/Output stream
 CistreamInput Stream
 ClongDirectoryEntryFAT long directory entry
 CmasterBootRecordMaster Boot Record
 CMinimumSerialMini serial class for the SdFat library
 CobufstreamFormat a char string
 CofstreamFile output stream
 CostreamOutput Stream
 CpartitionTableMBR partition table entry
 CPrintFileFatFile with Print
 CSd2CardRaw access to SD and SDHC card using default SPI library
 CSdBaseFileClass for backward compatibility
 CSdFatMain file system class for SdFat library
 CSdFatEXSdFat class with extended SD I/O
 CSdFatSdioSdFat class using SDIO
 CSdFatSoftSpiSdFat class using software SPI
 CSdFatSoftSpiEXSdFat class using software SPI and extended SD I/O
 CSdFileClass for backward compatibility
 CSdFileSystemVirtual base class for SdFat library
 CSdioCardRaw SDIO access to SD and SDHC flash memory cards
 CSdSpiCardRaw access to SD and SDHC flash memory cards via SPI protocol
 CSdSpiCardEXExtended SD I/O block driver
 CsetfillType for setfill manipulator
 CsetprecisionType for setprecision manipulator
 CsetwType for setw manipulator
 CStdioStreamStdioStream implements a minimal stdio stream
 CSysCallSysCall - Class to wrap system calls
-
-
- - - - diff --git a/libraries/SdFat/extras/html/arrowdown.png b/libraries/SdFat/extras/html/arrowdown.png deleted file mode 100644 index 0b63f6d..0000000 Binary files a/libraries/SdFat/extras/html/arrowdown.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/arrowright.png b/libraries/SdFat/extras/html/arrowright.png deleted file mode 100644 index c6ee22f..0000000 Binary files a/libraries/SdFat/extras/html/arrowright.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/bc_s.png b/libraries/SdFat/extras/html/bc_s.png deleted file mode 100644 index 224b29a..0000000 Binary files a/libraries/SdFat/extras/html/bc_s.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/bdwn.png b/libraries/SdFat/extras/html/bdwn.png deleted file mode 100644 index 940a0b9..0000000 Binary files a/libraries/SdFat/extras/html/bdwn.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/bufstream_8h.html b/libraries/SdFat/extras/html/bufstream_8h.html deleted file mode 100644 index f0daa27..0000000 --- a/libraries/SdFat/extras/html/bufstream_8h.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/bufstream.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
bufstream.h File Reference
-
-
- -

ibufstream and obufstream classes -More...

-
#include <string.h>
-#include "iostream.h"
-
-Include dependency graph for bufstream.h:
-
-
- - - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - -
-
- - - - - - - -

-Classes

class  ibufstream
 parse a char string More...
 
class  obufstream
 format a char string More...
 
-

Detailed Description

-

ibufstream and obufstream classes

-
- - - - diff --git a/libraries/SdFat/extras/html/bufstream_8h__dep__incl.png b/libraries/SdFat/extras/html/bufstream_8h__dep__incl.png deleted file mode 100644 index 34df032..0000000 Binary files a/libraries/SdFat/extras/html/bufstream_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/bufstream_8h__incl.png b/libraries/SdFat/extras/html/bufstream_8h__incl.png deleted file mode 100644 index fa0c87b..0000000 Binary files a/libraries/SdFat/extras/html/bufstream_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_arduino_in_stream-members.html b/libraries/SdFat/extras/html/class_arduino_in_stream-members.html deleted file mode 100644 index d875aad..0000000 --- a/libraries/SdFat/extras/html/class_arduino_in_stream-members.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ArduinoInStream Member List
-
-
- -

This is the complete list of members for ArduinoInStream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ArduinoInStream(Stream &hws, char *buf, size_t size)ArduinoInStreaminline
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
fmtflags typedefios_base
gcount() const istreaminline
get()istream
get(char &ch)istream
get(char *str, streamsize n, char delim= '\n')istream
getline(char *str, streamsize n, char delim= '\n')istream
good() const iosinline
goodbitios_basestatic
hexios_basestatic
ibufstream()ibufstreaminline
ibufstream(const char *str)ibufstreaminlineexplicit
ignore(streamsize n=1, int delim=-1)istream
inios_basestatic
init(const char *str)ibufstreaminline
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
istream() (defined in istream)istreaminline
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator>>(istream &(*pf)(istream &str))istreaminline
operator>>(ios_base &(*pf)(ios_base &str))istreaminline
operator>>(ios &(*pf)(ios &str))istreaminline
operator>>(char *str)istreaminline
operator>>(char &ch)istreaminline
operator>>(signed char *str)istreaminline
operator>>(signed char &ch)istreaminline
operator>>(unsigned char *str)istreaminline
operator>>(unsigned char &ch)istreaminline
operator>>(bool &arg)istreaminline
operator>>(short &arg)istreaminline
operator>>(unsigned short &arg)istreaminline
operator>>(int &arg)istreaminline
operator>>(unsigned int &arg)istreaminline
operator>>(long &arg)istreaminline
operator>>(unsigned long &arg)istreaminline
operator>>(double &arg)istreaminline
operator>>(float &arg)istreaminline
operator>>(void *&arg)istreaminline
outios_basestatic
peek()istream
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
rdstate() const iosinline
readline()ArduinoInStreaminline
rightios_basestatic
seekdir enum nameios_base
seekg(pos_type pos)istreaminline
seekg(off_type off, seekdir way)istreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipWhite()istream
skipwsios_basestatic
streamsize typedefios_base
tellg()istreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/class_arduino_in_stream.html b/libraries/SdFat/extras/html/class_arduino_in_stream.html deleted file mode 100644 index 9ece872..0000000 --- a/libraries/SdFat/extras/html/class_arduino_in_stream.html +++ /dev/null @@ -1,2604 +0,0 @@ - - - - - - -SdFat: ArduinoInStream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
ArduinoInStream Class Reference
-
-
- -

Input stream for Arduino Stream objects. - More...

- -

#include <ArduinoStream.h>

-
-Inheritance diagram for ArduinoInStream:
-
-
Inheritance graph
- - - - - - -
[legend]
-
-Collaboration diagram for ArduinoInStream:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 ArduinoInStream (Stream &hws, char *buf, size_t size)
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
void init (const char *str)
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (ios &(*pf)(ios &str))
 
istreamoperator>> (char *str)
 
istreamoperator>> (char &ch)
 
istreamoperator>> (signed char *str)
 
istreamoperator>> (signed char &ch)
 
istreamoperator>> (unsigned char *str)
 
istreamoperator>> (unsigned char &ch)
 
istreamoperator>> (bool &arg)
 
istreamoperator>> (short &arg)
 
istreamoperator>> (unsigned short &arg)
 
istreamoperator>> (int &arg)
 
istreamoperator>> (unsigned int &arg)
 
istreamoperator>> (long &arg)
 
istreamoperator>> (unsigned long &arg)
 
istreamoperator>> (double &arg)
 
istreamoperator>> (float &arg)
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
void readline ()
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void skipWhite ()
 
pos_type tellg ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

Input stream for Arduino Stream objects.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
ArduinoInStream::ArduinoInStream (Stream & hws,
char * buf,
size_t size 
)
-
-inline
-
-

Constructor

Parameters
- - - - -
[in]hwshardware stream
[in]bufbuffer for input line
[in]sizesize of input buffer
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
streamsize istream::gcount () const
-
-inlineinherited
-
-
Returns
The number of characters extracted by the last unformatted input function.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::get ()
-
-inherited
-
-

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream & istream::get (char & ch)
-
-inherited
-
-

Extract a character if one is available.

-
Parameters
- - -
[out]chlocation to receive the extracted character.
-
-
-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::get (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters.

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, n is less than 1, n-1 characters are extracted, or the next character equals delim (delim is not extracted). If no characters are extracted failbit is set. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::getline (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, the next character equals delim (delim is extracted), or n-1 characters are extracted.

-

The failbit is set if no characters are extracted or n-1 characters are extracted. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream & istream::ignore (streamsize n = 1,
int delim = -1 
)
-
-inherited
-
-

Extract characters and discard them.

-
Parameters
- - - -
[in]nmaximum number of characters to ignore.
[in]delimDelimiter.
-
-
-

Characters are extracted until extraction fails, n characters are extracted, or the next input character equals delim (the delimiter is extracted). If end-of-file occurs the eofbit is set.

-

Failures are indicated by the state of the stream.

-
Returns
*this
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ibufstream::init (const char * str)
-
-inlineinherited
-
-

Initialize an ibufstream

Parameters
- - -
[in]strpointer to string to be parsed Warning: The string will not be copied so must stay in scope.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (istream &(*)(istream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios &(*)(ios &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (bool & arg)
-
-inlineinherited
-
-

Extract a value of type bool.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (short & arg)
-
-inlineinherited
-
-

Extract a value of type short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned short & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (int & arg)
-
-inlineinherited
-
-

Extract a value of type int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned int & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (long & arg)
-
-inlineinherited
-
-

Extract a value of type long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned long & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (double & arg)
-
-inlineinherited
-
-

Extract a value of type double.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (float & arg)
-
-inlineinherited
-
-

Extract a value of type float.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (void *& arg)
-
-inlineinherited
-
-

Extract a value of type void*.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::peek ()
-
-inherited
-
-

Return the next available character without consuming it.

-
Returns
The character if the stream state is good else -1;
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - -
void ArduinoInStream::readline ()
-
-inline
-
-

read a line.

- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::seekg (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the read pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& istream::seekg (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the read pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void istream::skipWhite ()
-
-inherited
-
-

used to implement ws()

- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type istream::tellg ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/class_arduino_in_stream__coll__graph.png b/libraries/SdFat/extras/html/class_arduino_in_stream__coll__graph.png deleted file mode 100644 index 0d8855b..0000000 Binary files a/libraries/SdFat/extras/html/class_arduino_in_stream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_arduino_in_stream__inherit__graph.png b/libraries/SdFat/extras/html/class_arduino_in_stream__inherit__graph.png deleted file mode 100644 index 0d8855b..0000000 Binary files a/libraries/SdFat/extras/html/class_arduino_in_stream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_arduino_out_stream-members.html b/libraries/SdFat/extras/html/class_arduino_out_stream-members.html deleted file mode 100644 index e96250f..0000000 --- a/libraries/SdFat/extras/html/class_arduino_out_stream-members.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ArduinoOutStream Member List
-
-
- -

This is the complete list of members for ArduinoOutStream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ArduinoOutStream(Print &pr)ArduinoOutStreaminlineexplicit
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
flush()ostreaminline
fmtflags typedefios_base
good() const iosinline
goodbitios_basestatic
hexios_basestatic
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator<<(ostream &(*pf)(ostream &str))ostreaminline
operator<<(ios_base &(*pf)(ios_base &str))ostreaminline
operator<<(bool arg)ostreaminline
operator<<(const char *arg)ostreaminline
operator<<(const signed char *arg)ostreaminline
operator<<(const unsigned char *arg)ostreaminline
operator<<(char arg)ostreaminline
operator<<(signed char arg)ostreaminline
operator<<(unsigned char arg)ostreaminline
operator<<(double arg)ostreaminline
operator<<(float arg)ostreaminline
operator<<(short arg)ostreaminline
operator<<(unsigned short arg)ostreaminline
operator<<(int arg)ostreaminline
operator<<(unsigned int arg)ostreaminline
operator<<(long arg)ostreaminline
operator<<(unsigned long arg)ostreaminline
operator<<(const void *arg)ostreaminline
operator<<(const __FlashStringHelper *arg)ostreaminline
ostream() (defined in ostream)ostreaminline
outios_basestatic
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
put(char ch)ostreaminline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekp(pos_type pos)ostreaminline
seekp(off_type off, seekdir way)ostreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipwsios_basestatic
streamsize typedefios_base
tellp()ostreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/class_arduino_out_stream.html b/libraries/SdFat/extras/html/class_arduino_out_stream.html deleted file mode 100644 index badb5a3..0000000 --- a/libraries/SdFat/extras/html/class_arduino_out_stream.html +++ /dev/null @@ -1,2294 +0,0 @@ - - - - - - -SdFat: ArduinoOutStream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
ArduinoOutStream Class Reference
-
-
- -

Output stream for Arduino Print objects. - More...

- -

#include <ArduinoStream.h>

-
-Inheritance diagram for ArduinoOutStream:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for ArduinoOutStream:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 ArduinoOutStream (Print &pr)
 
bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (bool arg)
 
ostreamoperator<< (const char *arg)
 
ostreamoperator<< (const signed char *arg)
 
ostreamoperator<< (const unsigned char *arg)
 
ostreamoperator<< (char arg)
 
ostreamoperator<< (signed char arg)
 
ostreamoperator<< (unsigned char arg)
 
ostreamoperator<< (double arg)
 
ostreamoperator<< (float arg)
 
ostreamoperator<< (short arg)
 
ostreamoperator<< (unsigned short arg)
 
ostreamoperator<< (int arg)
 
ostreamoperator<< (unsigned int arg)
 
ostreamoperator<< (long arg)
 
ostreamoperator<< (unsigned long arg)
 
ostreamoperator<< (const void *arg)
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
pos_type tellp ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

Output stream for Arduino Print objects.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
ArduinoOutStream::ArduinoOutStream (Print & pr)
-
-inlineexplicit
-
-

constructor

-
Parameters
- - -
[in]prPrint object for this ArduinoOutStream.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
ostream& ostream::flush ()
-
-inlineinherited
-
-

Flushes the buffer associated with this stream. The flush function calls the sync function of the associated file.

Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ostream &(*)(ostream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (bool arg)
-
-inlineinherited
-
-

Output bool

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const signed char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const unsigned char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (signed char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (double arg)
-
-inlineinherited
-
-

Output double

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (float arg)
-
-inlineinherited
-
-

Output float

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (short arg)
-
-inlineinherited
-
-

Output signed short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned short arg)
-
-inlineinherited
-
-

Output unsigned short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (int arg)
-
-inlineinherited
-
-

Output signed int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned int arg)
-
-inlineinherited
-
-

Output unsigned int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (long arg)
-
-inlineinherited
-
-

Output signed long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned long arg)
-
-inlineinherited
-
-

Output unsigned long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const void * arg)
-
-inlineinherited
-
-

Output pointer

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const __FlashStringHelper * arg)
-
-inlineinherited
-
-

Output a string from flash using the Arduino F() macro.

Parameters
- - -
[in]argpointing to flash string
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::put (char ch)
-
-inlineinherited
-
-

Puts a character in a stream.

-

The unformatted output function inserts the element ch. It returns *this.

-
Parameters
- - -
[in]chThe character
-
-
-
Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::seekp (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the write pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& ostream::seekp (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the write pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type ostream::tellp ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/class_arduino_out_stream__coll__graph.png b/libraries/SdFat/extras/html/class_arduino_out_stream__coll__graph.png deleted file mode 100644 index 971f052..0000000 Binary files a/libraries/SdFat/extras/html/class_arduino_out_stream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_arduino_out_stream__inherit__graph.png b/libraries/SdFat/extras/html/class_arduino_out_stream__inherit__graph.png deleted file mode 100644 index 971f052..0000000 Binary files a/libraries/SdFat/extras/html/class_arduino_out_stream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_base_block_driver-members.html b/libraries/SdFat/extras/html/class_base_block_driver-members.html deleted file mode 100644 index 4c8c079..0000000 --- a/libraries/SdFat/extras/html/class_base_block_driver-members.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
BaseBlockDriver Member List
-
-
- -

This is the complete list of members for BaseBlockDriver, including all inherited members.

- - - - - - -
readBlock(uint32_t block, uint8_t *dst)=0BaseBlockDriverpure virtual
readBlocks(uint32_t block, uint8_t *dst, size_t nb)=0BaseBlockDriverpure virtual
syncBlocks()=0BaseBlockDriverpure virtual
writeBlock(uint32_t block, const uint8_t *src)=0BaseBlockDriverpure virtual
writeBlocks(uint32_t block, const uint8_t *src, size_t nb)=0BaseBlockDriverpure virtual
- - - - diff --git a/libraries/SdFat/extras/html/class_base_block_driver.html b/libraries/SdFat/extras/html/class_base_block_driver.html deleted file mode 100644 index 2e54e05..0000000 --- a/libraries/SdFat/extras/html/class_base_block_driver.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - -SdFat: BaseBlockDriver Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
BaseBlockDriver Class Referenceabstract
-
-
- -

Base block driver. - More...

- -

#include <BaseBlockDriver.h>

-
-Inheritance diagram for BaseBlockDriver:
-
-
Inheritance graph
- - - -
[legend]
- - - - - - - - - - - - -

-Public Member Functions

virtual bool readBlock (uint32_t block, uint8_t *dst)=0
 
virtual bool readBlocks (uint32_t block, uint8_t *dst, size_t nb)=0
 
virtual bool syncBlocks ()=0
 
virtual bool writeBlock (uint32_t block, const uint8_t *src)=0
 
virtual bool writeBlocks (uint32_t block, const uint8_t *src, size_t nb)=0
 
-

Detailed Description

-

Base block driver.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
virtual bool BaseBlockDriver::readBlock (uint32_t block,
uint8_t * dst 
)
-
-pure virtual
-
-

Read a 512 byte block from an SD card.

-
Parameters
- - - -
[in]blockLogical block to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implemented in SdioCard.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
virtual bool BaseBlockDriver::readBlocks (uint32_t block,
uint8_t * dst,
size_t nb 
)
-
-pure virtual
-
-

Read multiple 512 byte blocks from an SD card.

-
Parameters
- - - - -
[in]blockLogical block to be read.
[in]nbNumber of blocks to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implemented in SdioCard.

- -
-
- -
-
- - - - - -
- - - - - - - -
virtual bool BaseBlockDriver::syncBlocks ()
-
-pure virtual
-
-

End multi-block transfer and go to idle state.

Returns
The value true is returned for success and the value false is returned for failure.
- -

Implemented in SdioCard.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
virtual bool BaseBlockDriver::writeBlock (uint32_t block,
const uint8_t * src 
)
-
-pure virtual
-
-

Writes a 512 byte block to an SD card.

-
Parameters
- - - -
[in]blockLogical block to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implemented in SdioCard.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
virtual bool BaseBlockDriver::writeBlocks (uint32_t block,
const uint8_t * src,
size_t nb 
)
-
-pure virtual
-
-

Write multiple 512 byte blocks to an SD card.

-
Parameters
- - - - -
[in]blockLogical block to be written.
[in]nbNumber of blocks to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implemented in SdioCard.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/BaseBlockDriver.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_base_block_driver__inherit__graph.png b/libraries/SdFat/extras/html/class_base_block_driver__inherit__graph.png deleted file mode 100644 index 1a36e51..0000000 Binary files a/libraries/SdFat/extras/html/class_base_block_driver__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_fat_cache-members.html b/libraries/SdFat/extras/html/class_fat_cache-members.html deleted file mode 100644 index e9b5f48..0000000 --- a/libraries/SdFat/extras/html/class_fat_cache-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
FatCache Member List
-
-
- -

This is the complete list of members for FatCache, including all inherited members.

- - - - - - - - - - - - - - - -
block()FatCacheinline
CACHE_FOR_READFatCachestatic
CACHE_FOR_WRITEFatCachestatic
CACHE_OPTION_NO_READFatCachestatic
CACHE_RESERVE_FOR_WRITEFatCachestatic
CACHE_STATUS_DIRTYFatCachestatic
CACHE_STATUS_MASKFatCachestatic
CACHE_STATUS_MIRROR_FATFatCachestatic
dirty()FatCacheinline
init(FatVolume *vol)FatCacheinline
invalidate()FatCacheinline
lbn()FatCacheinline
read(uint32_t lbn, uint8_t option)FatCache
sync()FatCache
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_cache.html b/libraries/SdFat/extras/html/class_fat_cache.html deleted file mode 100644 index 2ba6879..0000000 --- a/libraries/SdFat/extras/html/class_fat_cache.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - -SdFat: FatCache Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Block cache. - More...

- -

#include <FatVolume.h>

- - - - - - - - - - - - - - - - -

-Public Member Functions

cache_tblock ()
 
void dirty ()
 
void init (FatVolume *vol)
 
void invalidate ()
 
uint32_t lbn ()
 
cache_tread (uint32_t lbn, uint8_t option)
 
bool sync ()
 
- - - - - - - - - - - - - - - -

-Static Public Attributes

static const uint8_t CACHE_FOR_READ = 0
 
static const uint8_t CACHE_FOR_WRITE = CACHE_STATUS_DIRTY
 
static const uint8_t CACHE_OPTION_NO_READ = 4
 
static const uint8_t CACHE_RESERVE_FOR_WRITE = CACHE_STATUS_DIRTY | CACHE_OPTION_NO_READ
 
static const uint8_t CACHE_STATUS_DIRTY = 1
 
static const uint8_t CACHE_STATUS_MASK = CACHE_STATUS_DIRTY | CACHE_STATUS_MIRROR_FAT
 
static const uint8_t CACHE_STATUS_MIRROR_FAT = 2
 
-

Detailed Description

-

Block cache.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
cache_t* FatCache::block ()
-
-inline
-
-
Returns
Cache block address.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatCache::dirty ()
-
-inline
-
-

Set current block dirty.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatCache::init (FatVolumevol)
-
-inline
-
-

Initialize the cache.

Parameters
- - -
[in]volFatVolume that owns this FatCache.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatCache::invalidate ()
-
-inline
-
-

Invalidate current cache block.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatCache::lbn ()
-
-inline
-
-
Returns
Logical block number for cached block.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
cache_t * FatCache::read (uint32_t lbn,
uint8_t option 
)
-
-

Read a block into the cache.

Parameters
- - - -
[in]lbnBlock to read.
[in]optionmode for cached block.
-
-
-
Returns
Address of cached block.
- -
-
- -
-
- - - - - - - -
bool FatCache::sync ()
-
-

Write current block if dirty.

Returns
true for success else false.
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const uint8_t FatCache::CACHE_FOR_READ = 0
-
-static
-
-

Cache block for read.

- -
-
- -
-
- - - - - -
- - - - -
const uint8_t FatCache::CACHE_FOR_WRITE = CACHE_STATUS_DIRTY
-
-static
-
-

Cache block for write.

- -
-
- -
-
- - - - - -
- - - - -
const uint8_t FatCache::CACHE_OPTION_NO_READ = 4
-
-static
-
-

Sync existing block but do not read new block.

- -
-
- -
-
- - - - - -
- - - - -
const uint8_t FatCache::CACHE_RESERVE_FOR_WRITE = CACHE_STATUS_DIRTY | CACHE_OPTION_NO_READ
-
-static
-
-

Reserve cache block for write - do not read from block device.

- -
-
- -
-
- - - - - -
- - - - -
const uint8_t FatCache::CACHE_STATUS_DIRTY = 1
-
-static
-
-

Cached block is dirty

- -
-
- -
-
- - - - - -
- - - - -
const uint8_t FatCache::CACHE_STATUS_MASK = CACHE_STATUS_DIRTY | CACHE_STATUS_MIRROR_FAT
-
-static
-
-

Cache block status bits

- -
-
- -
-
- - - - - -
- - - - -
const uint8_t FatCache::CACHE_STATUS_MIRROR_FAT = 2
-
-static
-
-

Cashed block is FAT entry and must be mirrored in second FAT.

- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/FatLib/FatVolume.h
  • -
  • Arduino/libraries/SdFat/src/FatLib/FatVolume.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_file-members.html b/libraries/SdFat/extras/html/class_fat_file-members.html deleted file mode 100644 index 77345d1..0000000 --- a/libraries/SdFat/extras/html/class_fat_file-members.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
FatFile Member List
-
-
- -

This is the complete list of members for FatFile, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
available()FatFileinline
clearError()FatFileinline
clearWriteError()FatFileinline
close()FatFile
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile
createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile
createContiguous(const char *path, uint32_t size)FatFileinline
curCluster() const FatFileinline
curPosition() const FatFileinline
cwd()FatFileinlinestatic
dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic
dateTimeCallbackCancel()FatFileinlinestatic
dirEntry(dir_t *dir)FatFile
dirIndex()FatFileinline
dirName(const dir_t *dir, char *name)FatFilestatic
dirSize()FatFile
dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile
exists(const char *path)FatFileinline
FatFile()FatFileinline
FatFile(const char *path, uint8_t oflag)FatFileinline
fgets(char *str, int16_t num, char *delim=0)FatFile
fileAttr() const FatFileinline
fileSize() const FatFileinline
firstBlock()FatFileinline
firstCluster() const FatFileinline
getError()FatFileinline
getName(char *name, size_t size)FatFile
getpos(FatPos_t *pos)FatFile
getSFN(char *name)FatFile
getWriteError()FatFileinline
isDir() const FatFileinline
isFile() const FatFileinline
isHidden() const FatFileinline
isLFN() const FatFileinline
isOpen() const FatFileinline
isReadOnly() const FatFileinline
isRoot() const FatFileinline
isRoot32() const FatFileinline
isRootFixed() const FatFileinline
isSubDir() const FatFileinline
isSystem() const FatFileinline
legal83Char(uint8_t c)FatFileinlinestatic
ls(uint8_t flags=0)FatFileinline
ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile
mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile
open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile
open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile
open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile
open(const char *path, uint8_t oflag=O_READ)FatFileinline
openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile
openRoot(FatVolume *vol)FatFile
peek()FatFile
printCreateDateTime(print_t *pr)FatFile
printFatDate(uint16_t fatDate)FatFileinlinestatic
printFatDate(print_t *pr, uint16_t fatDate)FatFilestatic
printFatTime(uint16_t fatTime)FatFileinlinestatic
printFatTime(print_t *pr, uint16_t fatTime)FatFilestatic
printField(float value, char term, uint8_t prec=2)FatFile
printField(int16_t value, char term)FatFile
printField(uint16_t value, char term)FatFile
printField(int32_t value, char term)FatFile
printField(uint32_t value, char term)FatFile
printFileSize(print_t *pr)FatFile
printModifyDateTime(print_t *pr)FatFile
printName()FatFileinline
printName(print_t *pr)FatFile
printSFN(print_t *pr)FatFile
read()FatFileinline
read(void *buf, size_t nbyte)FatFile
readDir(dir_t *dir)FatFile
remove()FatFile
remove(FatFile *dirFile, const char *path)FatFilestatic
rename(FatFile *dirFile, const char *newPath)FatFile
rewind()FatFileinline
rmdir()FatFile
rmRfStar()FatFile
seekCur(int32_t offset)FatFileinline
seekEnd(int32_t offset=0)FatFileinline
seekSet(uint32_t pos)FatFile
setCwd(FatFile *dir)FatFileinlinestatic
setpos(FatPos_t *pos)FatFile
sync()FatFile
timestamp(FatFile *file)FatFile
timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile
truncate(uint32_t length)FatFile
volume() const FatFileinline
write(const char *str)FatFileinline
write(uint8_t b)FatFileinline
write(const void *buf, size_t nbyte)FatFile
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_file.html b/libraries/SdFat/extras/html/class_fat_file.html deleted file mode 100644 index e9b283f..0000000 --- a/libraries/SdFat/extras/html/class_fat_file.html +++ /dev/null @@ -1,2989 +0,0 @@ - - - - - - -SdFat: FatFile Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Basic file class. - More...

- -

#include <FatFile.h>

-
-Inheritance diagram for FatFile:
-
-
Inheritance graph
- - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

uint32_t available ()
 
void clearError ()
 
void clearWriteError ()
 
bool close ()
 
bool contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
 
bool createContiguous (FatFile *dirFile, const char *path, uint32_t size)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
uint32_t dirSize ()
 
void dmpFile (print_t *pr, uint32_t pos, size_t n)
 
bool exists (const char *path)
 
 FatFile ()
 
 FatFile (const char *path, uint8_t oflag)
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
void getpos (FatPos_t *pos)
 
bool getSFN (char *name)
 
bool getWriteError ()
 
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
bool openRoot (FatVolume *vol)
 
int peek ()
 
bool printCreateDateTime (print_t *pr)
 
int printField (float value, char term, uint8_t prec=2)
 
int printField (int16_t value, char term)
 
int printField (uint16_t value, char term)
 
int printField (int32_t value, char term)
 
int printField (uint32_t value, char term)
 
size_t printFileSize (print_t *pr)
 
bool printModifyDateTime (print_t *pr)
 
size_t printName ()
 
size_t printName (print_t *pr)
 
size_t printSFN (print_t *pr)
 
int read ()
 
int read (void *buf, size_t nbyte)
 
int8_t readDir (dir_t *dir)
 
bool remove ()
 
bool rename (FatFile *dirFile, const char *newPath)
 
void rewind ()
 
bool rmdir ()
 
bool rmRfStar ()
 
bool seekCur (int32_t offset)
 
bool seekEnd (int32_t offset=0)
 
bool seekSet (uint32_t pos)
 
void setpos (FatPos_t *pos)
 
bool sync ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
int write (const char *str)
 
int write (uint8_t b)
 
int write (const void *buf, size_t nbyte)
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static FatFilecwd ()
 
static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
 
static void dateTimeCallbackCancel ()
 
static uint8_t dirName (const dir_t *dir, char *name)
 
static bool legal83Char (uint8_t c)
 
static void printFatDate (uint16_t fatDate)
 
static void printFatDate (print_t *pr, uint16_t fatDate)
 
static void printFatTime (uint16_t fatTime)
 
static void printFatTime (print_t *pr, uint16_t fatTime)
 
static bool remove (FatFile *dirFile, const char *path)
 
static bool setCwd (FatFile *dir)
 
-

Detailed Description

-

Basic file class.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
FatFile::FatFile ()
-
-inline
-
-

Create an instance.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
FatFile::FatFile (const char * path,
uint8_t oflag 
)
-
-inline
-
-

Create a file object and open it in the current working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::available ()
-
-inline
-
-
Returns
The number of bytes available from the current position to EOF for normal files. Zero is returned for directory files.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearError ()
-
-inline
-
-

Clear all error bits.

- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearWriteError ()
-
-inline
-
-

Set writeError to zero

- -
-
- -
-
- - - - - - - -
bool FatFile::close ()
-
-

Close a file and force cached data and directory information to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool FatFile::contiguousRange (uint32_t * bgnBlock,
uint32_t * endBlock 
)
-
-

Check for contiguous file and return its raw block range.

-
Parameters
- - - -
[out]bgnBlockthe first block address for the file.
[out]endBlockthe last block address for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (FatFiledirFile,
const char * path,
uint32_t size 
)
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - - -
[in]dirFileThe directory where the file will be created.
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (const char * path,
uint32_t size 
)
-
-inline
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - -
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curCluster () const
-
-inline
-
-
Returns
The current cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curPosition () const
-
-inline
-
-
Returns
The current position for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
static FatFile* FatFile::cwd ()
-
-inlinestatic
-
-
Returns
Current working directory
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::dateTimeCallback (void(*)(uint16_t *date, uint16_t *time) dateTime)
-
-inlinestatic
-
-

Set the date/time callback function

-
Parameters
- - -
[in]dateTimeThe user's call back function. The callback function is of the form:
-
-
-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

-

See the timestamp() function.

- -
-
- -
-
- - - - - -
- - - - - - - -
static void FatFile::dateTimeCallbackCancel ()
-
-inlinestatic
-
-

Cancel the date/time callback function.

- -
-
- -
-
- - - - - - - - -
bool FatFile::dirEntry (dir_tdir)
-
-

Return a file's directory entry.

-
Parameters
- - -
[out]dirLocation for return of the file's directory entry.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatFile::dirIndex ()
-
-inline
-
-
Returns
The index of this file in it's directory.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
uint8_t FatFile::dirName (const dir_tdir,
char * name 
)
-
-static
-
-

Format the name field of dir into the 13 byte array name in standard 8.3 short name format.

-
Parameters
- - - -
[in]dirThe directory structure containing the name.
[out]nameA 13 byte char array for the formatted name.
-
-
-
Returns
length of the name.
- -
-
- -
-
- - - - - - - -
uint32_t FatFile::dirSize ()
-
-
Returns
The number of bytes allocated to a directory or zero if an error occurs.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::dmpFile (print_tpr,
uint32_t pos,
size_t n 
)
-
-

Dump file in Hex

Parameters
- - - - -
[in]prPrint stream for list.
[in]posStart position in file.
[in]nnumber of locations to dump.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::exists (const char * path)
-
-inline
-
-

Test for the existence of a file in a directory

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-

The calling instance must be an open directory file.

-

dirFile.exists("TOFIND.TXT") searches for "TOFIND.TXT" in the directory dirFile.

-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int16_t FatFile::fgets (char * str,
int16_t num,
char * delim = 0 
)
-
-

Get a string from a file.

-

fgets() reads bytes from a file into the array pointed to by str, until num - 1 bytes are read, or a delimiter is read and transferred to str, or end-of-file is encountered. The string is then terminated with a null byte.

-

fgets() deletes CR, '\r', from the string. This insures only a '\n' terminates the string for Windows text files which use CRLF for newline.

-
Parameters
- - - - -
[out]strPointer to the array where the string is stored.
[in]numMaximum number of characters to be read (including the final null byte). Usually the length of the array str is used.
[in]delimOptional set of delimiters. The default is "\n".
-
-
-
Returns
For success fgets() returns the length of the string in str. If no data is read, fgets() returns zero for EOF or -1 if an error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::fileAttr () const
-
-inline
-
-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

-
Returns
The file or directory type.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::fileSize () const
-
-inline
-
-
Returns
The total number of bytes in a file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstBlock ()
-
-inline
-
-
Returns
first block of file or zero for empty file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstCluster () const
-
-inline
-
-
Returns
The first cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::getError ()
-
-inline
-
-
Returns
All error bits.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool FatFile::getName (char * name,
size_t size 
)
-
-

Get a file's name followed by a zero byte.

-
Parameters
- - - -
[out]nameAn array of characters for the file's name.
[in]sizeThe size of the array in bytes. The array must be at least 13 bytes long. The file's name will be truncated if the file's name is too long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - - - - -
void FatFile::getpos (FatPos_tpos)
-
-

get position for streams

Parameters
- - -
[out]posstruct to receive position
-
-
- -
-
- -
-
- - - - - - - - -
bool FatFile::getSFN (char * name)
-
-

Get a file's Short File Name followed by a zero byte.

-
Parameters
- - -
[out]nameAn array of characters for the file's name. The array must be at least 13 bytes long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::getWriteError ()
-
-inline
-
-
Returns
value of writeError
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isDir () const
-
-inline
-
-
Returns
True if this is a directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isFile () const
-
-inline
-
-
Returns
True if this is a normal file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isHidden () const
-
-inline
-
-
Returns
True if this is a hidden file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isLFN () const
-
-inline
-
-
Returns
true if this file has a Long File Name.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isOpen () const
-
-inline
-
-
Returns
True if this is an open file/directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isReadOnly () const
-
-inline
-
-
Returns
True if file is read-only
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot () const
-
-inline
-
-
Returns
True if this is the root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot32 () const
-
-inline
-
-
Returns
True if this is the FAT32 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRootFixed () const
-
-inline
-
-
Returns
True if this is the FAT12 of FAT16 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSubDir () const
-
-inline
-
-
Returns
True if this is a subdirectory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSystem () const
-
-inline
-
-
Returns
True if this is a system file else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::legal83Char (uint8_t c)
-
-inlinestatic
-
-

Check for a legal 8.3 character.

Parameters
- - -
[in]cCharacter to be checked.
-
-
-
Returns
true for a legal 8.3 character else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::ls (uint8_t flags = 0)
-
-inline
-
-

List directory contents.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::ls (print_tpr,
uint8_t flags = 0,
uint8_t indent = 0 
)
-
-

List directory contents.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

-
Parameters
- - -
[in]indentAmount of space before file name. Used for recursive list to indicate subdirectory level.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::mkdir (FatFiledir,
const char * path,
bool pFlag = true 
)
-
-

Make a new directory.

-
Parameters
- - - - -
[in]dirAn open FatFile instance for the directory that will contain the new directory.
[in]pathA path with a valid 8.3 DOS name for the new directory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFileSystemfs,
const char * path,
uint8_t oflag 
)
-
-

Open a file in the volume working directory of a FatFileSystem.

-
Parameters
- - - - -
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
uint16_t index,
uint8_t oflag 
)
-
-

Open a file by index.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
const char * path,
uint8_t oflag 
)
-
-

Open a file or directory by name.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

-

O_RDWR - Open for reading and writing.

-

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

-

O_AT_END - Set the initial position at the end of the file.

-

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

-

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

-

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

-
Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::open (const char * path,
uint8_t oflag = O_READ 
)
-
-inline
-
-

Open a file in the current working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool FatFile::openNext (FatFiledirFile,
uint8_t oflag = O_READ 
)
-
-

Open the next file or subdirectory in a directory.

-
Parameters
- - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - - - - -
bool FatFile::openRoot (FatVolumevol)
-
-

Open a volume's root directory.

-
Parameters
- - -
[in]volThe FAT volume containing the root directory to be opened.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - -
int FatFile::peek ()
-
-

Return the next available byte without consuming it.

-
Returns
The byte if no error and not at eof else -1;
- -
-
- -
-
- - - - - - - - -
bool FatFile::printCreateDateTime (print_tpr)
-
-

Print a file's creation date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatDate (uint16_t fatDate)
-
-inlinestatic
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - -
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatDate (print_tpr,
uint16_t fatDate 
)
-
-static
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatTime (uint16_t fatTime)
-
-inlinestatic
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - -
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatTime (print_tpr,
uint16_t fatTime 
)
-
-static
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int FatFile::printField (float value,
char term,
uint8_t prec = 2 
)
-
-

Print a number followed by a field terminator.

Parameters
- - - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int16_t value,
char term 
)
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint16_t value,
char term 
)
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int32_t value,
char term 
)
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint32_t value,
char term 
)
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - -
size_t FatFile::printFileSize (print_tpr)
-
-

Print a file's size.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool FatFile::printModifyDateTime (print_tpr)
-
-

Print a file's modify date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
size_t FatFile::printName ()
-
-inline
-
-

Print a file's name.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
size_t FatFile::printName (print_tpr)
-
-

Print a file's name

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
size_t FatFile::printSFN (print_tpr)
-
-

Print a file's Short File Name.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int FatFile::read ()
-
-inline
-
-

Read the next byte from a file.

-
Returns
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int FatFile::read (void * buf,
size_t nbyte 
)
-
-

Read data from a file starting at the current position.

-
Parameters
- - - -
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
-
-
-
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
- -
-
- -
-
- - - - - - - - -
int8_t FatFile::readDir (dir_tdir)
-
-

Read the next directory entry from a directory file.

-
Parameters
- - -
[out]dirThe dir_t struct that will receive the data.
-
-
-
Returns
For success readDir() returns the number of bytes read. A value of zero will be returned if end of file is reached. If an error occurs, readDir() returns -1. Possible errors include readDir() called before a directory has been opened, this is not a directory file or an I/O error occurred.
- -
-
- -
-
- - - - - - - -
bool FatFile::remove ()
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::remove (FatFiledirFile,
const char * path 
)
-
-static
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Parameters
- - - -
[in]dirFileThe directory that contains the file.
[in]pathPath for the file to be removed.
-
-
-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool FatFile::rename (FatFiledirFile,
const char * newPath 
)
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]dirFileDirectory for the new path.
[in]newPathNew path name for the file/directory.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::rewind ()
-
-inline
-
-

Set the file's current position to zero.

- -
-
- -
-
- - - - - - - -
bool FatFile::rmdir ()
-
-

Remove a directory file.

-

The directory file will be removed only if it is empty and is not the root directory. rmdir() follows DOS and Windows and ignores the read-only attribute for the directory.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. For example if a directory has the long name "New folder" you should not delete the 8.3 name "NEWFOL~1".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - -
bool FatFile::rmRfStar ()
-
-

Recursively delete a directory and all contained files.

-

This is like the Unix/Linux 'rm -rf *' if called with the root directory hence the name.

-

Warning - This will remove all contents of the directory including subdirectories. The directory will then be removed if it is not root. The read-only attribute for files will be ignored.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. See remove() and rmdir().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekCur (int32_t offset)
-
-inline
-
-

Set the files position to current position + pos. See seekSet().

Parameters
- - -
[in]offsetThe new position in bytes from the current position.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekEnd (int32_t offset = 0)
-
-inline
-
-

Set the files position to end-of-file + offset. See seekSet(). Can't be used for directory files since file size is not defined.

Parameters
- - -
[in]offsetThe new position in bytes from end-of-file.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - - - - -
bool FatFile::seekSet (uint32_t pos)
-
-

Sets a file's position.

-
Parameters
- - -
[in]posThe new position in bytes from the beginning of the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::setCwd (FatFiledir)
-
-inlinestatic
-
-

Set the current working directory.

-
Parameters
- - -
[in]dirNew current working directory.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - - - - -
void FatFile::setpos (FatPos_tpos)
-
-

set position for streams

Parameters
- - -
[out]posstruct with value for new position
-
-
- -
-
- -
-
- - - - - - - -
bool FatFile::sync ()
-
-

The sync() call causes all modified data and directory fields to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool FatFile::timestamp (FatFilefile)
-
-

Copy a file's timestamps

-
Parameters
- - -
[in]fileFile to copy timestamps from.
-
-
-
Note
Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::timestamp (uint8_t flags,
uint16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second 
)
-
-

Set a file's timestamps in its directory entry.

-
Parameters
- - -
[in]flagsValues for flags are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

T_ACCESS - Set the file's last access date.

-

T_CREATE - Set the file's creation date and time.

-

T_WRITE - Set the file's last write/modification date and time.

-
Parameters
- - - - - - - -
[in]yearValid range 1980 - 2107 inclusive.
[in]monthValid range 1 - 12 inclusive.
[in]dayValid range 1 - 31 inclusive.
[in]hourValid range 0 - 23 inclusive.
[in]minuteValid range 0 - 59 inclusive.
[in]secondValid range 0 - 59 inclusive
-
-
-
Note
It is possible to set an invalid date since there is no check for the number of days in a month.
-
-Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool FatFile::truncate (uint32_t length)
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - -
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFile::volume () const
-
-inline
-
-
Returns
FatVolume that contains this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int FatFile::write (const char * str)
-
-inline
-
-

Write a string to a file. Used by the Arduino Print class.

Parameters
- - -
[in]strPointer to the string. Use getWriteError to check for errors.
-
-
-
Returns
count of characters written for success or -1 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int FatFile::write (uint8_t b)
-
-inline
-
-

Write a single byte.

Parameters
- - -
[in]bThe byte to be written.
-
-
-
Returns
+1 for success or -1 for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int FatFile::write (const void * buf,
size_t nbyte 
)
-
-

Write data to an open file.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/FatLib/FatFile.h
  • -
  • Arduino/libraries/SdFat/src/FatLib/FatFile.cpp
  • -
  • Arduino/libraries/SdFat/src/FatLib/FatFileLFN.cpp
  • -
  • Arduino/libraries/SdFat/src/FatLib/FatFilePrint.cpp
  • -
  • Arduino/libraries/SdFat/src/FatLib/FatFileSFN.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_file__inherit__graph.png b/libraries/SdFat/extras/html/class_fat_file__inherit__graph.png deleted file mode 100644 index 6e13b3c..0000000 Binary files a/libraries/SdFat/extras/html/class_fat_file__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_fat_file_system-members.html b/libraries/SdFat/extras/html/class_fat_file_system-members.html deleted file mode 100644 index dae8a2e..0000000 --- a/libraries/SdFat/extras/html/class_fat_file_system-members.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
FatFileSystem Member List
-
-
- -

This is the complete list of members for FatFileSystem, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
init(uint8_t part)FatVolume
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_file_system.html b/libraries/SdFat/extras/html/class_fat_file_system.html deleted file mode 100644 index ac0b556..0000000 --- a/libraries/SdFat/extras/html/class_fat_file_system.html +++ /dev/null @@ -1,1339 +0,0 @@ - - - - - - -SdFat: FatFileSystem Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
FatFileSystem Class Reference
-
-
- -

Integration class for the FatLib library. - More...

- -

#include <FatFileSystem.h>

-
-Inheritance diagram for FatFileSystem:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
-
-Collaboration diagram for FatFileSystem:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool init ()
 
bool init (uint8_t part)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
File open (const String &path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
-

Detailed Description

-

Integration class for the FatLib library.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
-
-inline
-
-

Initialize an FatFileSystem object.

Parameters
- - - -
[in]blockDevDevice block driver.
[in]partpartition to initialize.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inlineinherited
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inlineinherited
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inlineinherited
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::chdir (bool set_cwd = false)
-
-inline
-
-

Change a volume's working directory to root

-

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

-
Parameters
- - -
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
-
-inline
-
-

Change a volume's working directory

-

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

-

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

-

If path is "/", the volume's working directory will be changed to the root directory

-
Parameters
- - - -
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFileSystem::chvol ()
-
-inline
-
-

Set the current working directory to a volume's working directory.

-

This is useful with multiple SD cards.

-

The current working directory is changed to this volume's working directory.

-

This is like the Windows/DOS <drive letter>: command.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inlineinherited
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inlineinherited
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inlineinherited
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::exists (const char * path)
-
-inline
-
-

Test for the existence of a file.

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inlineinherited
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inlineinherited
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - -
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-inherited
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inlineinherited
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-inherited
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFileSystem::ls (uint8_t flags = 0)
-
-inline
-
-

List the directory contents of the volume working directory to Serial.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
-
-inline
-
-

List the directory contents of a directory to Serial.

-
Parameters
- - - -
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
-
-inline
-
-

List the directory contents of the volume working directory.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
-
-inline
-
-

List the directory contents of a directory.

-
Parameters
- - - - -
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
-
-inline
-
-

Make a subdirectory in the volume working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const char * path,
uint8_t mode = FILE_READ 
)
-
-inline
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const String & path,
uint8_t mode = FILE_READ 
)
-
-inline
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::remove (const char * path)
-
-inline
-
-

Remove a file from the volume working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
-
-inline
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
-
-
-

The newPath object must not exist before the rename call.

-

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::rmdir (const char * path)
-
-inline
-
-

Remove a subdirectory from the volume's working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
-
-
-

The subdirectory file will be removed only if it is empty.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inlineinherited
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
-
-inline
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFileSystem::vol ()
-
-inline
-
-
Returns
a pointer to the FatVolume object.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inlineinherited
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - -
- - - - - - - -
FatFile* FatFileSystem::vwd ()
-
-inline
-
-
Returns
a pointer to the volume working directory.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::wipe (print_tpr = 0)
-
-inline
-
-

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_file_system__coll__graph.png b/libraries/SdFat/extras/html/class_fat_file_system__coll__graph.png deleted file mode 100644 index dcaf8f8..0000000 Binary files a/libraries/SdFat/extras/html/class_fat_file_system__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_fat_file_system__inherit__graph.png b/libraries/SdFat/extras/html/class_fat_file_system__inherit__graph.png deleted file mode 100644 index cbe4c17..0000000 Binary files a/libraries/SdFat/extras/html/class_fat_file_system__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_fat_stream_base-members.html b/libraries/SdFat/extras/html/class_fat_stream_base-members.html deleted file mode 100644 index 45cc445..0000000 --- a/libraries/SdFat/extras/html/class_fat_stream_base-members.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
FatStreamBase Member List
-
-
- -

This is the complete list of members for FatStreamBase, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
available()FatFileinlineprivate
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
clearError()FatFileinlineprivate
clearWriteError()FatFileinlineprivate
close()FatFileprivate
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFileprivate
createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFileprivate
createContiguous(const char *path, uint32_t size)FatFileinlineprivate
cur enum valueios_base
curCluster() const FatFileinlineprivate
curPosition() const FatFileinlineprivate
cwd()FatFileinlineprivatestatic
dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlineprivatestatic
dateTimeCallbackCancel()FatFileinlineprivatestatic
decios_basestatic
dirEntry(dir_t *dir)FatFileprivate
dirIndex()FatFileinlineprivate
dirName(const dir_t *dir, char *name)FatFileprivatestatic
dirSize()FatFileprivate
dmpFile(print_t *pr, uint32_t pos, size_t n)FatFileprivate
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
exists(const char *path)FatFileinlineprivate
fail() const iosinline
failbitios_basestatic
FatFile()FatFileinlineprivate
FatFile(const char *path, uint8_t oflag)FatFileinlineprivate
fgets(char *str, int16_t num, char *delim=0)FatFileprivate
fileAttr() const FatFileinlineprivate
fileSize() const FatFileinlineprivate
fill()ios_baseinline
fill(char c)ios_baseinline
firstBlock()FatFileinlineprivate
firstCluster() const FatFileinlineprivate
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
fmtflags typedefios_base
getError()FatFileinlineprivate
getName(char *name, size_t size)FatFileprivate
getpos(FatPos_t *pos)FatFileprivate
getSFN(char *name)FatFileprivate
getWriteError()FatFileinlineprivate
good() const iosinline
goodbitios_basestatic
hexios_basestatic
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
isDir() const FatFileinlineprivate
isFile() const FatFileinlineprivate
isHidden() const FatFileinlineprivate
isLFN() const FatFileinlineprivate
isOpen() const FatFileinlineprivate
isReadOnly() const FatFileinlineprivate
isRoot() const FatFileinlineprivate
isRoot32() const FatFileinlineprivate
isRootFixed() const FatFileinlineprivate
isSubDir() const FatFileinlineprivate
isSystem() const FatFileinlineprivate
leftios_basestatic
legal83Char(uint8_t c)FatFileinlineprivatestatic
ls(uint8_t flags=0)FatFileinlineprivate
ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFileprivate
mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFileprivate
octios_basestatic
off_type typedefios_base
open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate
open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate
open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate
open(const char *path, uint8_t oflag=O_READ)FatFileinlineprivate
openmode typedefios_base
openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFileprivate
openRoot(FatVolume *vol)FatFileprivate
operator const void *() const iosinline
operator!() const iosinline
outios_basestatic
peek()FatFileprivate
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
printCreateDateTime(print_t *pr)FatFileprivate
printFatDate(uint16_t fatDate)FatFileinlineprivatestatic
printFatDate(print_t *pr, uint16_t fatDate)FatFileprivatestatic
printFatTime(uint16_t fatTime)FatFileinlineprivatestatic
printFatTime(print_t *pr, uint16_t fatTime)FatFileprivatestatic
printField(float value, char term, uint8_t prec=2)FatFileprivate
printField(int16_t value, char term)FatFileprivate
printField(uint16_t value, char term)FatFileprivate
printField(int32_t value, char term)FatFileprivate
printField(uint32_t value, char term)FatFileprivate
printFileSize(print_t *pr)FatFileprivate
printModifyDateTime(print_t *pr)FatFileprivate
printName()FatFileinlineprivate
printName(print_t *pr)FatFileprivate
printSFN(print_t *pr)FatFileprivate
rdstate() const iosinline
read()FatFileinlineprivate
read(void *buf, size_t nbyte)FatFileprivate
readDir(dir_t *dir)FatFileprivate
remove()FatFileprivate
remove(FatFile *dirFile, const char *path)FatFileprivatestatic
rename(FatFile *dirFile, const char *newPath)FatFileprivate
rewind()FatFileinlineprivate
rightios_basestatic
rmdir()FatFileprivate
rmRfStar()FatFileprivate
seekCur(int32_t offset)FatFileinlineprivate
seekdir enum nameios_base
seekEnd(int32_t offset=0)FatFileinlineprivate
seekSet(uint32_t pos)FatFileprivate
setCwd(FatFile *dir)FatFileinlineprivatestatic
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setpos(FatPos_t *pos)FatFileprivate
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipwsios_basestatic
streamsize typedefios_base
sync()FatFileprivate
timestamp(FatFile *file)FatFileprivate
timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFileprivate
truncios_basestatic
truncate(uint32_t length)FatFileprivate
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
volume() const FatFileinlineprivate
width()ios_baseinline
width(unsigned n)ios_baseinline
write(const char *str)FatFileinlineprivate
write(uint8_t b)FatFileinlineprivate
write(const void *buf, size_t nbyte)FatFileprivate
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_stream_base.html b/libraries/SdFat/extras/html/class_fat_stream_base.html deleted file mode 100644 index 7fcc666..0000000 --- a/libraries/SdFat/extras/html/class_fat_stream_base.html +++ /dev/null @@ -1,1653 +0,0 @@ - - - - - - -SdFat: FatStreamBase Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Base class for C++ style streams. - More...

- -

#include <fstream.h>

-
-Inheritance diagram for FatStreamBase:
-
-
Inheritance graph
- - - - - - - - -
[legend]
-
-Collaboration diagram for FatStreamBase:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Private Member Functions

uint32_t available ()
 
void clearError ()
 
void clearWriteError ()
 
bool close ()
 
bool contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
 
bool createContiguous (FatFile *dirFile, const char *path, uint32_t size)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
uint32_t dirSize ()
 
void dmpFile (print_t *pr, uint32_t pos, size_t n)
 
bool exists (const char *path)
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
void getpos (FatPos_t *pos)
 
bool getSFN (char *name)
 
bool getWriteError ()
 
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
bool openRoot (FatVolume *vol)
 
int peek ()
 
bool printCreateDateTime (print_t *pr)
 
int printField (float value, char term, uint8_t prec=2)
 
int printField (int16_t value, char term)
 
int printField (uint16_t value, char term)
 
int printField (int32_t value, char term)
 
int printField (uint32_t value, char term)
 
size_t printFileSize (print_t *pr)
 
bool printModifyDateTime (print_t *pr)
 
size_t printName ()
 
size_t printName (print_t *pr)
 
size_t printSFN (print_t *pr)
 
int read ()
 
int read (void *buf, size_t nbyte)
 
int8_t readDir (dir_t *dir)
 
bool remove ()
 
bool rename (FatFile *dirFile, const char *newPath)
 
void rewind ()
 
bool rmdir ()
 
bool rmRfStar ()
 
bool seekCur (int32_t offset)
 
bool seekEnd (int32_t offset=0)
 
bool seekSet (uint32_t pos)
 
void setpos (FatPos_t *pos)
 
bool sync ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
int write (const char *str)
 
int write (uint8_t b)
 
int write (const void *buf, size_t nbyte)
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Static Private Member Functions

static FatFilecwd ()
 
static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
 
static void dateTimeCallbackCancel ()
 
static uint8_t dirName (const dir_t *dir, char *name)
 
static bool legal83Char (uint8_t c)
 
static void printFatDate (uint16_t fatDate)
 
static void printFatDate (print_t *pr, uint16_t fatDate)
 
static void printFatTime (uint16_t fatTime)
 
static void printFatTime (print_t *pr, uint16_t fatTime)
 
static bool remove (FatFile *dirFile, const char *path)
 
static bool setCwd (FatFile *dir)
 
-

Detailed Description

-

Base class for C++ style streams.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/fstream.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_stream_base__coll__graph.png b/libraries/SdFat/extras/html/class_fat_stream_base__coll__graph.png deleted file mode 100644 index 4b13c43..0000000 Binary files a/libraries/SdFat/extras/html/class_fat_stream_base__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_fat_stream_base__inherit__graph.png b/libraries/SdFat/extras/html/class_fat_stream_base__inherit__graph.png deleted file mode 100644 index 08e0c93..0000000 Binary files a/libraries/SdFat/extras/html/class_fat_stream_base__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_fat_volume-members.html b/libraries/SdFat/extras/html/class_fat_volume-members.html deleted file mode 100644 index 543d224..0000000 --- a/libraries/SdFat/extras/html/class_fat_volume-members.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
FatVolume Member List
-
-
- -

This is the complete list of members for FatVolume, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - -
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
FatCache (defined in FatVolume)FatVolumefriend
fatCount()FatVolumeinline
FatFile (defined in FatVolume)FatVolumefriend
FatFileSystem (defined in FatVolume)FatVolumefriend
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
init(uint8_t part)FatVolume
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
volumeBlockCount() const FatVolumeinline
wipe(print_t *pr=0)FatVolume
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_volume.html b/libraries/SdFat/extras/html/class_fat_volume.html deleted file mode 100644 index d7a8a99..0000000 --- a/libraries/SdFat/extras/html/class_fat_volume.html +++ /dev/null @@ -1,626 +0,0 @@ - - - - - - -SdFat: FatVolume Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
FatVolume Class Reference
-
-
- -

Access FAT16 and FAT32 volumes on raw file devices. - More...

- -

#include <FatVolume.h>

-
-Inheritance diagram for FatVolume:
-
-
Inheritance graph
- - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
 FatVolume ()
 
int32_t freeClusterCount ()
 
bool init ()
 
bool init (uint8_t part)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
uint32_t volumeBlockCount () const
 
bool wipe (print_t *pr=0)
 
- - - - - - - -

-Friends

-class FatCache
 
-class FatFile
 
-class FatFileSystem
 
-

Detailed Description

-

Access FAT16 and FAT32 volumes on raw file devices.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
FatVolume::FatVolume ()
-
-inline
-
-

Create an instance of FatVolume

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inline
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inline
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inline
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inline
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inline
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inline
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inline
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inline
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inline
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inline
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inline
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inline
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inline
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inline
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - - - - -
bool FatVolume::wipe (print_tpr = 0)
-
-

Wipe all data from the volume.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/FatLib/FatVolume.h
  • -
  • Arduino/libraries/SdFat/src/FatLib/FatVolume.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_fat_volume__inherit__graph.png b/libraries/SdFat/extras/html/class_fat_volume__inherit__graph.png deleted file mode 100644 index 7773a79..0000000 Binary files a/libraries/SdFat/extras/html/class_fat_volume__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_file-members.html b/libraries/SdFat/extras/html/class_file-members.html deleted file mode 100644 index 113bcf6..0000000 --- a/libraries/SdFat/extras/html/class_file-members.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
File Member List
-
-
- -

This is the complete list of members for File, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
available()Fileinline
clearError()FatFileinline
clearWriteError()FatFileinline
close()FatFile
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile
createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile
createContiguous(const char *path, uint32_t size)FatFileinline
curCluster() const FatFileinline
curPosition() const FatFileinline
cwd()FatFileinlinestatic
dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic
dateTimeCallbackCancel()FatFileinlinestatic
dirEntry(dir_t *dir)FatFile
dirIndex()FatFileinline
dirName(const dir_t *dir, char *name)FatFilestatic
dirSize()FatFile
dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile
exists(const char *path)FatFileinline
FatFile()FatFileinline
FatFile(const char *path, uint8_t oflag)FatFileinline
fgets(char *str, int16_t num, char *delim=0)FatFile
File() (defined in File)Fileinline
File(const char *path, uint8_t oflag)Fileinline
fileAttr() const FatFileinline
fileSize() const FatFileinline
firstBlock()FatFileinline
firstCluster() const FatFileinline
flush()Fileinline
getError()FatFileinline
getName(char *name, size_t size)FatFile
getpos(FatPos_t *pos)FatFile
getSFN(char *name)FatFile
getWriteError()FatFileinline
isDir() const FatFileinline
isDirectory()Fileinline
isFile() const FatFileinline
isHidden() const FatFileinline
isLFN() const FatFileinline
isOpen() const FatFileinline
isReadOnly() const FatFileinline
isRoot() const FatFileinline
isRoot32() const FatFileinline
isRootFixed() const FatFileinline
isSubDir() const FatFileinline
isSystem() const FatFileinline
legal83Char(uint8_t c)FatFileinlinestatic
ls(uint8_t flags=0)FatFileinline
ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile
mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile
name() const Fileinline
open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile
open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile
open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile
open(const char *path, uint8_t oflag=O_READ)FatFileinline
openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile
openNextFile(uint8_t mode=O_READ)Fileinline
openRoot(FatVolume *vol)FatFile
operator bool()Fileinline
peek()Fileinline
position()Fileinline
printCreateDateTime(print_t *pr)FatFile
printFatDate(uint16_t fatDate)FatFileinlinestatic
printFatDate(print_t *pr, uint16_t fatDate)FatFilestatic
printFatTime(uint16_t fatTime)FatFileinlinestatic
printFatTime(print_t *pr, uint16_t fatTime)FatFilestatic
printField(float value, char term, uint8_t prec=2)FatFile
printField(int16_t value, char term)FatFile
printField(uint16_t value, char term)FatFile
printField(int32_t value, char term)FatFile
printField(uint32_t value, char term)FatFile
printFileSize(print_t *pr)FatFile
printModifyDateTime(print_t *pr)FatFile
printName()FatFileinline
printName(print_t *pr)FatFile
printSFN(print_t *pr)FatFile
read()Fileinline
FatFile::read(void *buf, size_t nbyte)FatFile
readDir(dir_t *dir)FatFile
remove()FatFile
remove(FatFile *dirFile, const char *path)FatFilestatic
rename(FatFile *dirFile, const char *newPath)FatFile
rewind()FatFileinline
rewindDirectory()Fileinline
rmdir()FatFile
rmRfStar()FatFile
seek(uint32_t pos)Fileinline
seekCur(int32_t offset)FatFileinline
seekEnd(int32_t offset=0)FatFileinline
seekSet(uint32_t pos)FatFile
setCwd(FatFile *dir)FatFileinlinestatic
setpos(FatPos_t *pos)FatFile
size()Fileinline
sync()FatFile
timestamp(FatFile *file)FatFile
timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile
truncate(uint32_t length)FatFile
volume() const FatFileinline
write(uint8_t b)Fileinline
write(const uint8_t *buf, size_t size)Fileinline
FatFile::write(const char *str)FatFileinline
FatFile::write(const void *buf, size_t nbyte)FatFile
- - - - diff --git a/libraries/SdFat/extras/html/class_file.html b/libraries/SdFat/extras/html/class_file.html deleted file mode 100644 index 5e32727..0000000 --- a/libraries/SdFat/extras/html/class_file.html +++ /dev/null @@ -1,3585 +0,0 @@ - - - - - - -SdFat: File Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Arduino SD.h style File API. - More...

- -

#include <ArduinoFiles.h>

-
-Inheritance diagram for File:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for File:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

int available ()
 
void clearError ()
 
void clearWriteError ()
 
bool close ()
 
bool contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
 
bool createContiguous (FatFile *dirFile, const char *path, uint32_t size)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
uint32_t dirSize ()
 
void dmpFile (print_t *pr, uint32_t pos, size_t n)
 
bool exists (const char *path)
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
 File (const char *path, uint8_t oflag)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
void flush ()
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
void getpos (FatPos_t *pos)
 
bool getSFN (char *name)
 
bool getWriteError ()
 
bool isDir () const
 
bool isDirectory ()
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
const char * name () const
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
File openNextFile (uint8_t mode=O_READ)
 
bool openRoot (FatVolume *vol)
 
 operator bool ()
 
int peek ()
 
uint32_t position ()
 
bool printCreateDateTime (print_t *pr)
 
int printField (float value, char term, uint8_t prec=2)
 
int printField (int16_t value, char term)
 
int printField (uint16_t value, char term)
 
int printField (int32_t value, char term)
 
int printField (uint32_t value, char term)
 
size_t printFileSize (print_t *pr)
 
bool printModifyDateTime (print_t *pr)
 
size_t printName ()
 
size_t printName (print_t *pr)
 
size_t printSFN (print_t *pr)
 
int read ()
 
int read (void *buf, size_t nbyte)
 
int8_t readDir (dir_t *dir)
 
bool remove ()
 
bool rename (FatFile *dirFile, const char *newPath)
 
void rewind ()
 
void rewindDirectory ()
 
bool rmdir ()
 
bool rmRfStar ()
 
bool seek (uint32_t pos)
 
bool seekCur (int32_t offset)
 
bool seekEnd (int32_t offset=0)
 
bool seekSet (uint32_t pos)
 
void setpos (FatPos_t *pos)
 
uint32_t size ()
 
bool sync ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
size_t write (uint8_t b)
 
size_t write (const uint8_t *buf, size_t size)
 
int write (const char *str)
 
int write (const void *buf, size_t nbyte)
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static FatFilecwd ()
 
static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
 
static void dateTimeCallbackCancel ()
 
static uint8_t dirName (const dir_t *dir, char *name)
 
static bool legal83Char (uint8_t c)
 
static void printFatDate (uint16_t fatDate)
 
static void printFatDate (print_t *pr, uint16_t fatDate)
 
static void printFatTime (uint16_t fatTime)
 
static void printFatTime (print_t *pr, uint16_t fatTime)
 
static bool remove (FatFile *dirFile, const char *path)
 
static bool setCwd (FatFile *dir)
 
-

Detailed Description

-

Arduino SD.h style File API.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File::File (const char * path,
uint8_t oflag 
)
-
-inline
-
-

Create a file object and open it in the current working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
int File::available ()
-
-inline
-
-
Returns
number of bytes available from the current position to EOF or INT_MAX if more than INT_MAX bytes are available.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearError ()
-
-inlineinherited
-
-

Clear all error bits.

- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearWriteError ()
-
-inlineinherited
-
-

Set writeError to zero

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::close ()
-
-inherited
-
-

Close a file and force cached data and directory information to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::contiguousRange (uint32_t * bgnBlock,
uint32_t * endBlock 
)
-
-inherited
-
-

Check for contiguous file and return its raw block range.

-
Parameters
- - - -
[out]bgnBlockthe first block address for the file.
[out]endBlockthe last block address for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (FatFiledirFile,
const char * path,
uint32_t size 
)
-
-inherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - - -
[in]dirFileThe directory where the file will be created.
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (const char * path,
uint32_t size 
)
-
-inlineinherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - -
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curCluster () const
-
-inlineinherited
-
-
Returns
The current cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curPosition () const
-
-inlineinherited
-
-
Returns
The current position for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
static FatFile* FatFile::cwd ()
-
-inlinestaticinherited
-
-
Returns
Current working directory
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::dateTimeCallback (void(*)(uint16_t *date, uint16_t *time) dateTime)
-
-inlinestaticinherited
-
-

Set the date/time callback function

-
Parameters
- - -
[in]dateTimeThe user's call back function. The callback function is of the form:
-
-
-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

-

See the timestamp() function.

- -
-
- -
-
- - - - - -
- - - - - - - -
static void FatFile::dateTimeCallbackCancel ()
-
-inlinestaticinherited
-
-

Cancel the date/time callback function.

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::dirEntry (dir_tdir)
-
-inherited
-
-

Return a file's directory entry.

-
Parameters
- - -
[out]dirLocation for return of the file's directory entry.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatFile::dirIndex ()
-
-inlineinherited
-
-
Returns
The index of this file in it's directory.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
uint8_t FatFile::dirName (const dir_tdir,
char * name 
)
-
-staticinherited
-
-

Format the name field of dir into the 13 byte array name in standard 8.3 short name format.

-
Parameters
- - - -
[in]dirThe directory structure containing the name.
[out]nameA 13 byte char array for the formatted name.
-
-
-
Returns
length of the name.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::dirSize ()
-
-inherited
-
-
Returns
The number of bytes allocated to a directory or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::dmpFile (print_tpr,
uint32_t pos,
size_t n 
)
-
-inherited
-
-

Dump file in Hex

Parameters
- - - - -
[in]prPrint stream for list.
[in]posStart position in file.
[in]nnumber of locations to dump.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file in a directory

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-

The calling instance must be an open directory file.

-

dirFile.exists("TOFIND.TXT") searches for "TOFIND.TXT" in the directory dirFile.

-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int16_t FatFile::fgets (char * str,
int16_t num,
char * delim = 0 
)
-
-inherited
-
-

Get a string from a file.

-

fgets() reads bytes from a file into the array pointed to by str, until num - 1 bytes are read, or a delimiter is read and transferred to str, or end-of-file is encountered. The string is then terminated with a null byte.

-

fgets() deletes CR, '\r', from the string. This insures only a '\n' terminates the string for Windows text files which use CRLF for newline.

-
Parameters
- - - - -
[out]strPointer to the array where the string is stored.
[in]numMaximum number of characters to be read (including the final null byte). Usually the length of the array str is used.
[in]delimOptional set of delimiters. The default is "\n".
-
-
-
Returns
For success fgets() returns the length of the string in str. If no data is read, fgets() returns zero for EOF or -1 if an error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::fileAttr () const
-
-inlineinherited
-
-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

-
Returns
The file or directory type.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::fileSize () const
-
-inlineinherited
-
-
Returns
The total number of bytes in a file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstBlock ()
-
-inlineinherited
-
-
Returns
first block of file or zero for empty file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstCluster () const
-
-inlineinherited
-
-
Returns
The first cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
void File::flush ()
-
-inline
-
-

Ensure that any bytes written to the file are saved to the SD card.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::getError ()
-
-inlineinherited
-
-
Returns
All error bits.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::getName (char * name,
size_t size 
)
-
-inherited
-
-

Get a file's name followed by a zero byte.

-
Parameters
- - - -
[out]nameAn array of characters for the file's name.
[in]sizeThe size of the array in bytes. The array must be at least 13 bytes long. The file's name will be truncated if the file's name is too long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::getpos (FatPos_tpos)
-
-inherited
-
-

get position for streams

Parameters
- - -
[out]posstruct to receive position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::getSFN (char * name)
-
-inherited
-
-

Get a file's Short File Name followed by a zero byte.

-
Parameters
- - -
[out]nameAn array of characters for the file's name. The array must be at least 13 bytes long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::getWriteError ()
-
-inlineinherited
-
-
Returns
value of writeError
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isDir () const
-
-inlineinherited
-
-
Returns
True if this is a directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool File::isDirectory ()
-
-inline
-
-

This function reports if the current file is a directory or not.

Returns
true if the file is a directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isFile () const
-
-inlineinherited
-
-
Returns
True if this is a normal file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isHidden () const
-
-inlineinherited
-
-
Returns
True if this is a hidden file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isLFN () const
-
-inlineinherited
-
-
Returns
true if this file has a Long File Name.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isOpen () const
-
-inlineinherited
-
-
Returns
True if this is an open file/directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isReadOnly () const
-
-inlineinherited
-
-
Returns
True if file is read-only
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot () const
-
-inlineinherited
-
-
Returns
True if this is the root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot32 () const
-
-inlineinherited
-
-
Returns
True if this is the FAT32 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRootFixed () const
-
-inlineinherited
-
-
Returns
True if this is the FAT12 of FAT16 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSubDir () const
-
-inlineinherited
-
-
Returns
True if this is a subdirectory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSystem () const
-
-inlineinherited
-
-
Returns
True if this is a system file else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::legal83Char (uint8_t c)
-
-inlinestaticinherited
-
-

Check for a legal 8.3 character.

Parameters
- - -
[in]cCharacter to be checked.
-
-
-
Returns
true for a legal 8.3 character else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List directory contents.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::ls (print_tpr,
uint8_t flags = 0,
uint8_t indent = 0 
)
-
-inherited
-
-

List directory contents.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

-
Parameters
- - -
[in]indentAmount of space before file name. Used for recursive list to indicate subdirectory level.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::mkdir (FatFiledir,
const char * path,
bool pFlag = true 
)
-
-inherited
-
-

Make a new directory.

-
Parameters
- - - - -
[in]dirAn open FatFile instance for the directory that will contain the new directory.
[in]pathA path with a valid 8.3 DOS name for the new directory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
const char* File::name () const
-
-inline
-
-

No longer implemented due to Long File Names.

-

Use getName(char* name, size_t size).

Returns
a pointer to replacement suggestion.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFileSystemfs,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file in the volume working directory of a FatFileSystem.

-
Parameters
- - - - -
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
uint16_t index,
uint8_t oflag 
)
-
-inherited
-
-

Open a file by index.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file or directory by name.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

-

O_RDWR - Open for reading and writing.

-

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

-

O_AT_END - Set the initial position at the end of the file.

-

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

-

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

-

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

-
Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::open (const char * path,
uint8_t oflag = O_READ 
)
-
-inlineinherited
-
-

Open a file in the current working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::openNext (FatFiledirFile,
uint8_t oflag = O_READ 
)
-
-inherited
-
-

Open the next file or subdirectory in a directory.

-
Parameters
- - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
File File::openNextFile (uint8_t mode = O_READ)
-
-inline
-
-

Opens the next file or folder in a directory.

-
Parameters
- - -
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::openRoot (FatVolumevol)
-
-inherited
-
-

Open a volume's root directory.

-
Parameters
- - -
[in]volThe FAT volume containing the root directory to be opened.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
File::operator bool ()
-
-inline
-
-

The parenthesis operator.

-
Returns
true if a file is open.
- -
-
- -
-
- - - - - -
- - - - - - - -
int File::peek ()
-
-inline
-
-

Return the next available byte without consuming it.

-
Returns
The byte if no error and not at eof else -1;
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t File::position ()
-
-inline
-
-
Returns
the current file position.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printCreateDateTime (print_tpr)
-
-inherited
-
-

Print a file's creation date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatDate (uint16_t fatDate)
-
-inlinestaticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - -
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatDate (print_tpr,
uint16_t fatDate 
)
-
-staticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatTime (uint16_t fatTime)
-
-inlinestaticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - -
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatTime (print_tpr,
uint16_t fatTime 
)
-
-staticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int FatFile::printField (float value,
char term,
uint8_t prec = 2 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printFileSize (print_tpr)
-
-inherited
-
-

Print a file's size.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printModifyDateTime (print_tpr)
-
-inherited
-
-

Print a file's modify date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
size_t FatFile::printName ()
-
-inlineinherited
-
-

Print a file's name.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printName (print_tpr)
-
-inherited
-
-

Print a file's name

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printSFN (print_tpr)
-
-inherited
-
-

Print a file's Short File Name.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int File::read ()
-
-inline
-
-

Read the next byte from a file.

-
Returns
For success return the next byte in the file as an int. If an error occurs or end of file is reached return -1.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::read (void * buf,
size_t nbyte 
)
-
-inherited
-
-

Read data from a file starting at the current position.

-
Parameters
- - - -
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
-
-
-
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int8_t FatFile::readDir (dir_tdir)
-
-inherited
-
-

Read the next directory entry from a directory file.

-
Parameters
- - -
[out]dirThe dir_t struct that will receive the data.
-
-
-
Returns
For success readDir() returns the number of bytes read. A value of zero will be returned if end of file is reached. If an error occurs, readDir() returns -1. Possible errors include readDir() called before a directory has been opened, this is not a directory file or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::remove ()
-
-inherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::remove (FatFiledirFile,
const char * path 
)
-
-staticinherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Parameters
- - - -
[in]dirFileThe directory that contains the file.
[in]pathPath for the file to be removed.
-
-
-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::rename (FatFiledirFile,
const char * newPath 
)
-
-inherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]dirFileDirectory for the new path.
[in]newPathNew path name for the file/directory.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::rewind ()
-
-inlineinherited
-
-

Set the file's current position to zero.

- -
-
- -
-
- - - - - -
- - - - - - - -
void File::rewindDirectory ()
-
-inline
-
-

Rewind a file if it is a directory

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmdir ()
-
-inherited
-
-

Remove a directory file.

-

The directory file will be removed only if it is empty and is not the root directory. rmdir() follows DOS and Windows and ignores the read-only attribute for the directory.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. For example if a directory has the long name "New folder" you should not delete the 8.3 name "NEWFOL~1".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmRfStar ()
-
-inherited
-
-

Recursively delete a directory and all contained files.

-

This is like the Unix/Linux 'rm -rf *' if called with the root directory hence the name.

-

Warning - This will remove all contents of the directory including subdirectories. The directory will then be removed if it is not root. The read-only attribute for files will be ignored.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. See remove() and rmdir().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool File::seek (uint32_t pos)
-
-inline
-
-

Seek to a new position in the file, which must be between 0 and the size of the file (inclusive).

-
Parameters
- - -
[in]posthe new file position.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekCur (int32_t offset)
-
-inlineinherited
-
-

Set the files position to current position + pos. See seekSet().

Parameters
- - -
[in]offsetThe new position in bytes from the current position.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekEnd (int32_t offset = 0)
-
-inlineinherited
-
-

Set the files position to end-of-file + offset. See seekSet(). Can't be used for directory files since file size is not defined.

Parameters
- - -
[in]offsetThe new position in bytes from end-of-file.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekSet (uint32_t pos)
-
-inherited
-
-

Sets a file's position.

-
Parameters
- - -
[in]posThe new position in bytes from the beginning of the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::setCwd (FatFiledir)
-
-inlinestaticinherited
-
-

Set the current working directory.

-
Parameters
- - -
[in]dirNew current working directory.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::setpos (FatPos_tpos)
-
-inherited
-
-

set position for streams

Parameters
- - -
[out]posstruct with value for new position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t File::size ()
-
-inline
-
-
Returns
the file's size.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::sync ()
-
-inherited
-
-

The sync() call causes all modified data and directory fields to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::timestamp (FatFilefile)
-
-inherited
-
-

Copy a file's timestamps

-
Parameters
- - -
[in]fileFile to copy timestamps from.
-
-
-
Note
Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::timestamp (uint8_t flags,
uint16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second 
)
-
-inherited
-
-

Set a file's timestamps in its directory entry.

-
Parameters
- - -
[in]flagsValues for flags are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

T_ACCESS - Set the file's last access date.

-

T_CREATE - Set the file's creation date and time.

-

T_WRITE - Set the file's last write/modification date and time.

-
Parameters
- - - - - - - -
[in]yearValid range 1980 - 2107 inclusive.
[in]monthValid range 1 - 12 inclusive.
[in]dayValid range 1 - 31 inclusive.
[in]hourValid range 0 - 23 inclusive.
[in]minuteValid range 0 - 59 inclusive.
[in]secondValid range 0 - 59 inclusive
-
-
-
Note
It is possible to set an invalid date since there is no check for the number of days in a month.
-
-Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::truncate (uint32_t length)
-
-inherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - -
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFile::volume () const
-
-inlineinherited
-
-
Returns
FatVolume that contains this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t File::write (uint8_t b)
-
-inline
-
-

Write a byte to a file. Required by the Arduino Print class.

Parameters
- - -
[in]bthe byte to be written. Use getWriteError to check for errors.
-
-
-
Returns
1 for success and 0 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_t File::write (const uint8_t * buf,
size_t size 
)
-
-inline
-
-

Write data to an open file. Form required by Print.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]sizeNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int FatFile::write (const char * str)
-
-inlineinherited
-
-

Write a string to a file. Used by the Arduino Print class.

Parameters
- - -
[in]strPointer to the string. Use getWriteError to check for errors.
-
-
-
Returns
count of characters written for success or -1 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::write (const void * buf,
size_t nbyte 
)
-
-inherited
-
-

Write data to an open file.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/class_file__coll__graph.png b/libraries/SdFat/extras/html/class_file__coll__graph.png deleted file mode 100644 index b65001b..0000000 Binary files a/libraries/SdFat/extras/html/class_file__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_file__inherit__graph.png b/libraries/SdFat/extras/html/class_file__inherit__graph.png deleted file mode 100644 index b65001b..0000000 Binary files a/libraries/SdFat/extras/html/class_file__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_minimum_serial-members.html b/libraries/SdFat/extras/html/class_minimum_serial-members.html deleted file mode 100644 index 472096d..0000000 --- a/libraries/SdFat/extras/html/class_minimum_serial-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
MinimumSerial Member List
-
-
- -

This is the complete list of members for MinimumSerial, including all inherited members.

- - - - - - - -
available()MinimumSerial
begin(uint32_t baud)MinimumSerial
flush()MinimumSerial
operator bool()MinimumSerialinline
read()MinimumSerial
write(uint8_t b)MinimumSerial
- - - - diff --git a/libraries/SdFat/extras/html/class_minimum_serial.html b/libraries/SdFat/extras/html/class_minimum_serial.html deleted file mode 100644 index 27b4e05..0000000 --- a/libraries/SdFat/extras/html/class_minimum_serial.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - -SdFat: MinimumSerial Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
MinimumSerial Class Reference
-
-
- -

mini serial class for the SdFat library. - More...

- -

#include <MinimumSerial.h>

-
-Inheritance diagram for MinimumSerial:
-
-
Inheritance graph
- - -
[legend]
-
-Collaboration diagram for MinimumSerial:
-
-
Collaboration graph
- - -
[legend]
- - - - - - - - - - - - - - -

-Public Member Functions

int available ()
 
void begin (uint32_t baud)
 
void flush ()
 
 operator bool ()
 
int read ()
 
size_t write (uint8_t b)
 
-

Detailed Description

-

mini serial class for the SdFat library.

-

Member Function Documentation

- -
-
- - - - - - - -
int MinimumSerial::available ()
-
-
Returns
one if data is available.
- -
-
- -
-
- - - - - - - - -
void MinimumSerial::begin (uint32_t baud)
-
-

Set baud rate for serial port zero and enable in non interrupt mode. Do not call this function if you use another serial library.

Parameters
- - -
[in]baudrate
-
-
- -
-
- -
-
- - - - - - - -
void MinimumSerial::flush ()
-
-

Wait for write done.

- -
-
- -
-
- - - - - -
- - - - - - - -
MinimumSerial::operator bool ()
-
-inline
-
-
Returns
true for hardware serial
- -
-
- -
-
- - - - - - - -
int MinimumSerial::read ()
-
-

Unbuffered read

Returns
-1 if no character is available or an available character.
- -
-
- -
-
- - - - - - - - -
size_t MinimumSerial::write (uint8_t b)
-
-

Unbuffered write

-
Parameters
- - -
[in]bbyte to write.
-
-
-
Returns
1
- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/MinimumSerial.h
  • -
  • Arduino/libraries/SdFat/src/MinimumSerial.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_minimum_serial__coll__graph.png b/libraries/SdFat/extras/html/class_minimum_serial__coll__graph.png deleted file mode 100644 index b5ad74f..0000000 Binary files a/libraries/SdFat/extras/html/class_minimum_serial__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_minimum_serial__inherit__graph.png b/libraries/SdFat/extras/html/class_minimum_serial__inherit__graph.png deleted file mode 100644 index b5ad74f..0000000 Binary files a/libraries/SdFat/extras/html/class_minimum_serial__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_print_file-members.html b/libraries/SdFat/extras/html/class_print_file-members.html deleted file mode 100644 index 44473ff..0000000 --- a/libraries/SdFat/extras/html/class_print_file-members.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
PrintFile Member List
-
-
- -

This is the complete list of members for PrintFile, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
available()PrintFileinline
clearError()FatFileinline
clearWriteError()FatFileinline
close()FatFile
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile
createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile
createContiguous(const char *path, uint32_t size)FatFileinline
curCluster() const FatFileinline
curPosition() const FatFileinline
cwd()FatFileinlinestatic
dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic
dateTimeCallbackCancel()FatFileinlinestatic
dirEntry(dir_t *dir)FatFile
dirIndex()FatFileinline
dirName(const dir_t *dir, char *name)FatFilestatic
dirSize()FatFile
dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile
exists(const char *path)FatFileinline
FatFile()FatFileinline
FatFile(const char *path, uint8_t oflag)FatFileinline
fgets(char *str, int16_t num, char *delim=0)FatFile
fileAttr() const FatFileinline
fileSize() const FatFileinline
firstBlock()FatFileinline
firstCluster() const FatFileinline
flush()PrintFileinline
getError()FatFileinline
getName(char *name, size_t size)FatFile
getpos(FatPos_t *pos)FatFile
getSFN(char *name)FatFile
getWriteError()FatFileinline
isDir() const FatFileinline
isFile() const FatFileinline
isHidden() const FatFileinline
isLFN() const FatFileinline
isOpen() const FatFileinline
isReadOnly() const FatFileinline
isRoot() const FatFileinline
isRoot32() const FatFileinline
isRootFixed() const FatFileinline
isSubDir() const FatFileinline
isSystem() const FatFileinline
legal83Char(uint8_t c)FatFileinlinestatic
ls(uint8_t flags=0)FatFileinline
ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile
mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile
open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile
open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile
open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile
open(const char *path, uint8_t oflag=O_READ)FatFileinline
openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile
openRoot(FatVolume *vol)FatFile
peek()PrintFileinline
printCreateDateTime(print_t *pr)FatFile
printFatDate(uint16_t fatDate)FatFileinlinestatic
printFatDate(print_t *pr, uint16_t fatDate)FatFilestatic
printFatTime(uint16_t fatTime)FatFileinlinestatic
printFatTime(print_t *pr, uint16_t fatTime)FatFilestatic
printField(float value, char term, uint8_t prec=2)FatFile
printField(int16_t value, char term)FatFile
printField(uint16_t value, char term)FatFile
printField(int32_t value, char term)FatFile
printField(uint32_t value, char term)FatFile
PrintFile() (defined in PrintFile)PrintFileinline
PrintFile(const char *path, uint8_t oflag)PrintFileinline
printFileSize(print_t *pr)FatFile
printModifyDateTime(print_t *pr)FatFile
printName()FatFileinline
printName(print_t *pr)FatFile
printSFN(print_t *pr)FatFile
read()FatFileinline
read(void *buf, size_t nbyte)FatFile
readDir(dir_t *dir)FatFile
remove()FatFile
remove(FatFile *dirFile, const char *path)FatFilestatic
rename(FatFile *dirFile, const char *newPath)FatFile
rewind()FatFileinline
rmdir()FatFile
rmRfStar()FatFile
seekCur(int32_t offset)FatFileinline
seekEnd(int32_t offset=0)FatFileinline
seekSet(uint32_t pos)FatFile
setCwd(FatFile *dir)FatFileinlinestatic
setpos(FatPos_t *pos)FatFile
sync()FatFile
timestamp(FatFile *file)FatFile
timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile
truncate(uint32_t length)FatFile
volume() const FatFileinline
write(uint8_t b)PrintFileinline
write(const uint8_t *buf, size_t size)PrintFileinline
FatFile::write(const char *str)FatFileinline
FatFile::write(const void *buf, size_t nbyte)FatFile
- - - - diff --git a/libraries/SdFat/extras/html/class_print_file.html b/libraries/SdFat/extras/html/class_print_file.html deleted file mode 100644 index ec56bef..0000000 --- a/libraries/SdFat/extras/html/class_print_file.html +++ /dev/null @@ -1,3362 +0,0 @@ - - - - - - -SdFat: PrintFile Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

FatFile with Print. - More...

- -

#include <ArduinoFiles.h>

-
-Inheritance diagram for PrintFile:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for PrintFile:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

int available ()
 
void clearError ()
 
void clearWriteError ()
 
bool close ()
 
bool contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
 
bool createContiguous (FatFile *dirFile, const char *path, uint32_t size)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
uint32_t dirSize ()
 
void dmpFile (print_t *pr, uint32_t pos, size_t n)
 
bool exists (const char *path)
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
void flush ()
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
void getpos (FatPos_t *pos)
 
bool getSFN (char *name)
 
bool getWriteError ()
 
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
bool openRoot (FatVolume *vol)
 
int peek ()
 
bool printCreateDateTime (print_t *pr)
 
int printField (float value, char term, uint8_t prec=2)
 
int printField (int16_t value, char term)
 
int printField (uint16_t value, char term)
 
int printField (int32_t value, char term)
 
int printField (uint32_t value, char term)
 
 PrintFile (const char *path, uint8_t oflag)
 
size_t printFileSize (print_t *pr)
 
bool printModifyDateTime (print_t *pr)
 
size_t printName ()
 
size_t printName (print_t *pr)
 
size_t printSFN (print_t *pr)
 
int read ()
 
int read (void *buf, size_t nbyte)
 
int8_t readDir (dir_t *dir)
 
bool remove ()
 
bool rename (FatFile *dirFile, const char *newPath)
 
void rewind ()
 
bool rmdir ()
 
bool rmRfStar ()
 
bool seekCur (int32_t offset)
 
bool seekEnd (int32_t offset=0)
 
bool seekSet (uint32_t pos)
 
void setpos (FatPos_t *pos)
 
bool sync ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
size_t write (uint8_t b)
 
size_t write (const uint8_t *buf, size_t size)
 
int write (const char *str)
 
int write (const void *buf, size_t nbyte)
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static FatFilecwd ()
 
static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
 
static void dateTimeCallbackCancel ()
 
static uint8_t dirName (const dir_t *dir, char *name)
 
static bool legal83Char (uint8_t c)
 
static void printFatDate (uint16_t fatDate)
 
static void printFatDate (print_t *pr, uint16_t fatDate)
 
static void printFatTime (uint16_t fatTime)
 
static void printFatTime (print_t *pr, uint16_t fatTime)
 
static bool remove (FatFile *dirFile, const char *path)
 
static bool setCwd (FatFile *dir)
 
-

Detailed Description

-

FatFile with Print.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
PrintFile::PrintFile (const char * path,
uint8_t oflag 
)
-
-inline
-
-

Create a file object and open it in the current working directory.

-
Parameters
- - - -
[in]pathA path for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
int PrintFile::available ()
-
-inline
-
-
Returns
number of bytes available from the current position to EOF or INT_MAX if more than INT_MAX bytes are available.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearError ()
-
-inlineinherited
-
-

Clear all error bits.

- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearWriteError ()
-
-inlineinherited
-
-

Set writeError to zero

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::close ()
-
-inherited
-
-

Close a file and force cached data and directory information to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::contiguousRange (uint32_t * bgnBlock,
uint32_t * endBlock 
)
-
-inherited
-
-

Check for contiguous file and return its raw block range.

-
Parameters
- - - -
[out]bgnBlockthe first block address for the file.
[out]endBlockthe last block address for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (FatFiledirFile,
const char * path,
uint32_t size 
)
-
-inherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - - -
[in]dirFileThe directory where the file will be created.
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (const char * path,
uint32_t size 
)
-
-inlineinherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - -
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curCluster () const
-
-inlineinherited
-
-
Returns
The current cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curPosition () const
-
-inlineinherited
-
-
Returns
The current position for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
static FatFile* FatFile::cwd ()
-
-inlinestaticinherited
-
-
Returns
Current working directory
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::dateTimeCallback (void(*)(uint16_t *date, uint16_t *time) dateTime)
-
-inlinestaticinherited
-
-

Set the date/time callback function

-
Parameters
- - -
[in]dateTimeThe user's call back function. The callback function is of the form:
-
-
-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

-

See the timestamp() function.

- -
-
- -
-
- - - - - -
- - - - - - - -
static void FatFile::dateTimeCallbackCancel ()
-
-inlinestaticinherited
-
-

Cancel the date/time callback function.

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::dirEntry (dir_tdir)
-
-inherited
-
-

Return a file's directory entry.

-
Parameters
- - -
[out]dirLocation for return of the file's directory entry.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatFile::dirIndex ()
-
-inlineinherited
-
-
Returns
The index of this file in it's directory.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
uint8_t FatFile::dirName (const dir_tdir,
char * name 
)
-
-staticinherited
-
-

Format the name field of dir into the 13 byte array name in standard 8.3 short name format.

-
Parameters
- - - -
[in]dirThe directory structure containing the name.
[out]nameA 13 byte char array for the formatted name.
-
-
-
Returns
length of the name.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::dirSize ()
-
-inherited
-
-
Returns
The number of bytes allocated to a directory or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::dmpFile (print_tpr,
uint32_t pos,
size_t n 
)
-
-inherited
-
-

Dump file in Hex

Parameters
- - - - -
[in]prPrint stream for list.
[in]posStart position in file.
[in]nnumber of locations to dump.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file in a directory

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-

The calling instance must be an open directory file.

-

dirFile.exists("TOFIND.TXT") searches for "TOFIND.TXT" in the directory dirFile.

-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int16_t FatFile::fgets (char * str,
int16_t num,
char * delim = 0 
)
-
-inherited
-
-

Get a string from a file.

-

fgets() reads bytes from a file into the array pointed to by str, until num - 1 bytes are read, or a delimiter is read and transferred to str, or end-of-file is encountered. The string is then terminated with a null byte.

-

fgets() deletes CR, '\r', from the string. This insures only a '\n' terminates the string for Windows text files which use CRLF for newline.

-
Parameters
- - - - -
[out]strPointer to the array where the string is stored.
[in]numMaximum number of characters to be read (including the final null byte). Usually the length of the array str is used.
[in]delimOptional set of delimiters. The default is "\n".
-
-
-
Returns
For success fgets() returns the length of the string in str. If no data is read, fgets() returns zero for EOF or -1 if an error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::fileAttr () const
-
-inlineinherited
-
-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

-
Returns
The file or directory type.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::fileSize () const
-
-inlineinherited
-
-
Returns
The total number of bytes in a file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstBlock ()
-
-inlineinherited
-
-
Returns
first block of file or zero for empty file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstCluster () const
-
-inlineinherited
-
-
Returns
The first cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
void PrintFile::flush ()
-
-inline
-
-

Ensure that any bytes written to the file are saved to the SD card.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::getError ()
-
-inlineinherited
-
-
Returns
All error bits.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::getName (char * name,
size_t size 
)
-
-inherited
-
-

Get a file's name followed by a zero byte.

-
Parameters
- - - -
[out]nameAn array of characters for the file's name.
[in]sizeThe size of the array in bytes. The array must be at least 13 bytes long. The file's name will be truncated if the file's name is too long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::getpos (FatPos_tpos)
-
-inherited
-
-

get position for streams

Parameters
- - -
[out]posstruct to receive position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::getSFN (char * name)
-
-inherited
-
-

Get a file's Short File Name followed by a zero byte.

-
Parameters
- - -
[out]nameAn array of characters for the file's name. The array must be at least 13 bytes long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::getWriteError ()
-
-inlineinherited
-
-
Returns
value of writeError
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isDir () const
-
-inlineinherited
-
-
Returns
True if this is a directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isFile () const
-
-inlineinherited
-
-
Returns
True if this is a normal file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isHidden () const
-
-inlineinherited
-
-
Returns
True if this is a hidden file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isLFN () const
-
-inlineinherited
-
-
Returns
true if this file has a Long File Name.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isOpen () const
-
-inlineinherited
-
-
Returns
True if this is an open file/directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isReadOnly () const
-
-inlineinherited
-
-
Returns
True if file is read-only
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot () const
-
-inlineinherited
-
-
Returns
True if this is the root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot32 () const
-
-inlineinherited
-
-
Returns
True if this is the FAT32 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRootFixed () const
-
-inlineinherited
-
-
Returns
True if this is the FAT12 of FAT16 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSubDir () const
-
-inlineinherited
-
-
Returns
True if this is a subdirectory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSystem () const
-
-inlineinherited
-
-
Returns
True if this is a system file else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::legal83Char (uint8_t c)
-
-inlinestaticinherited
-
-

Check for a legal 8.3 character.

Parameters
- - -
[in]cCharacter to be checked.
-
-
-
Returns
true for a legal 8.3 character else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List directory contents.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::ls (print_tpr,
uint8_t flags = 0,
uint8_t indent = 0 
)
-
-inherited
-
-

List directory contents.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

-
Parameters
- - -
[in]indentAmount of space before file name. Used for recursive list to indicate subdirectory level.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::mkdir (FatFiledir,
const char * path,
bool pFlag = true 
)
-
-inherited
-
-

Make a new directory.

-
Parameters
- - - - -
[in]dirAn open FatFile instance for the directory that will contain the new directory.
[in]pathA path with a valid 8.3 DOS name for the new directory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFileSystemfs,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file in the volume working directory of a FatFileSystem.

-
Parameters
- - - - -
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
uint16_t index,
uint8_t oflag 
)
-
-inherited
-
-

Open a file by index.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file or directory by name.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

-

O_RDWR - Open for reading and writing.

-

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

-

O_AT_END - Set the initial position at the end of the file.

-

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

-

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

-

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

-
Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::open (const char * path,
uint8_t oflag = O_READ 
)
-
-inlineinherited
-
-

Open a file in the current working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::openNext (FatFiledirFile,
uint8_t oflag = O_READ 
)
-
-inherited
-
-

Open the next file or subdirectory in a directory.

-
Parameters
- - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::openRoot (FatVolumevol)
-
-inherited
-
-

Open a volume's root directory.

-
Parameters
- - -
[in]volThe FAT volume containing the root directory to be opened.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int PrintFile::peek ()
-
-inline
-
-

Return the next available byte without consuming it.

-
Returns
The byte if no error and not at eof else -1;
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printCreateDateTime (print_tpr)
-
-inherited
-
-

Print a file's creation date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatDate (uint16_t fatDate)
-
-inlinestaticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - -
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatDate (print_tpr,
uint16_t fatDate 
)
-
-staticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatTime (uint16_t fatTime)
-
-inlinestaticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - -
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatTime (print_tpr,
uint16_t fatTime 
)
-
-staticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int FatFile::printField (float value,
char term,
uint8_t prec = 2 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printFileSize (print_tpr)
-
-inherited
-
-

Print a file's size.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printModifyDateTime (print_tpr)
-
-inherited
-
-

Print a file's modify date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
size_t FatFile::printName ()
-
-inlineinherited
-
-

Print a file's name.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printName (print_tpr)
-
-inherited
-
-

Print a file's name

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printSFN (print_tpr)
-
-inherited
-
-

Print a file's Short File Name.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int FatFile::read ()
-
-inlineinherited
-
-

Read the next byte from a file.

-
Returns
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::read (void * buf,
size_t nbyte 
)
-
-inherited
-
-

Read data from a file starting at the current position.

-
Parameters
- - - -
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
-
-
-
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int8_t FatFile::readDir (dir_tdir)
-
-inherited
-
-

Read the next directory entry from a directory file.

-
Parameters
- - -
[out]dirThe dir_t struct that will receive the data.
-
-
-
Returns
For success readDir() returns the number of bytes read. A value of zero will be returned if end of file is reached. If an error occurs, readDir() returns -1. Possible errors include readDir() called before a directory has been opened, this is not a directory file or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::remove ()
-
-inherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::remove (FatFiledirFile,
const char * path 
)
-
-staticinherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Parameters
- - - -
[in]dirFileThe directory that contains the file.
[in]pathPath for the file to be removed.
-
-
-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::rename (FatFiledirFile,
const char * newPath 
)
-
-inherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]dirFileDirectory for the new path.
[in]newPathNew path name for the file/directory.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::rewind ()
-
-inlineinherited
-
-

Set the file's current position to zero.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmdir ()
-
-inherited
-
-

Remove a directory file.

-

The directory file will be removed only if it is empty and is not the root directory. rmdir() follows DOS and Windows and ignores the read-only attribute for the directory.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. For example if a directory has the long name "New folder" you should not delete the 8.3 name "NEWFOL~1".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmRfStar ()
-
-inherited
-
-

Recursively delete a directory and all contained files.

-

This is like the Unix/Linux 'rm -rf *' if called with the root directory hence the name.

-

Warning - This will remove all contents of the directory including subdirectories. The directory will then be removed if it is not root. The read-only attribute for files will be ignored.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. See remove() and rmdir().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekCur (int32_t offset)
-
-inlineinherited
-
-

Set the files position to current position + pos. See seekSet().

Parameters
- - -
[in]offsetThe new position in bytes from the current position.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekEnd (int32_t offset = 0)
-
-inlineinherited
-
-

Set the files position to end-of-file + offset. See seekSet(). Can't be used for directory files since file size is not defined.

Parameters
- - -
[in]offsetThe new position in bytes from end-of-file.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekSet (uint32_t pos)
-
-inherited
-
-

Sets a file's position.

-
Parameters
- - -
[in]posThe new position in bytes from the beginning of the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::setCwd (FatFiledir)
-
-inlinestaticinherited
-
-

Set the current working directory.

-
Parameters
- - -
[in]dirNew current working directory.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::setpos (FatPos_tpos)
-
-inherited
-
-

set position for streams

Parameters
- - -
[out]posstruct with value for new position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::sync ()
-
-inherited
-
-

The sync() call causes all modified data and directory fields to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::timestamp (FatFilefile)
-
-inherited
-
-

Copy a file's timestamps

-
Parameters
- - -
[in]fileFile to copy timestamps from.
-
-
-
Note
Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::timestamp (uint8_t flags,
uint16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second 
)
-
-inherited
-
-

Set a file's timestamps in its directory entry.

-
Parameters
- - -
[in]flagsValues for flags are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

T_ACCESS - Set the file's last access date.

-

T_CREATE - Set the file's creation date and time.

-

T_WRITE - Set the file's last write/modification date and time.

-
Parameters
- - - - - - - -
[in]yearValid range 1980 - 2107 inclusive.
[in]monthValid range 1 - 12 inclusive.
[in]dayValid range 1 - 31 inclusive.
[in]hourValid range 0 - 23 inclusive.
[in]minuteValid range 0 - 59 inclusive.
[in]secondValid range 0 - 59 inclusive
-
-
-
Note
It is possible to set an invalid date since there is no check for the number of days in a month.
-
-Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::truncate (uint32_t length)
-
-inherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - -
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFile::volume () const
-
-inlineinherited
-
-
Returns
FatVolume that contains this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t PrintFile::write (uint8_t b)
-
-inline
-
-

Read the next byte from a file.

-
Returns
For success return the next byte in the file as an int. If an error occurs or end of file is reached return -1. Write a byte to a file. Required by the Arduino Print class.
-
Parameters
- - -
[in]bthe byte to be written. Use getWriteError to check for errors.
-
-
-
Returns
1 for success and 0 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_t PrintFile::write (const uint8_t * buf,
size_t size 
)
-
-inline
-
-

Write data to an open file. Form required by Print.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]sizeNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int FatFile::write (const char * str)
-
-inlineinherited
-
-

Write a string to a file. Used by the Arduino Print class.

Parameters
- - -
[in]strPointer to the string. Use getWriteError to check for errors.
-
-
-
Returns
count of characters written for success or -1 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::write (const void * buf,
size_t nbyte 
)
-
-inherited
-
-

Write data to an open file.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/class_print_file__coll__graph.png b/libraries/SdFat/extras/html/class_print_file__coll__graph.png deleted file mode 100644 index 36319e9..0000000 Binary files a/libraries/SdFat/extras/html/class_print_file__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_print_file__inherit__graph.png b/libraries/SdFat/extras/html/class_print_file__inherit__graph.png deleted file mode 100644 index 3706975..0000000 Binary files a/libraries/SdFat/extras/html/class_print_file__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd2_card-members.html b/libraries/SdFat/extras/html/class_sd2_card-members.html deleted file mode 100644 index 0ad99b4..0000000 --- a/libraries/SdFat/extras/html/class_sd2_card-members.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
Sd2Card Member List
-
-
- -

This is the complete list of members for Sd2Card, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(uint8_t csPin=SS, SPISettings settings=SD_SCK_MHZ(50))Sd2Cardinline
SdSpiCard::begin(SdSpiDriver *spi, uint8_t csPin, SPISettings spiSettings)SdSpiCard
cardSize()SdSpiCard
erase(uint32_t firstBlock, uint32_t lastBlock)SdSpiCard
eraseSingleBlockEnable()SdSpiCard
error(uint8_t code)SdSpiCardinline
errorCode() const SdSpiCardinline
errorData() const SdSpiCardinline
isBusy()SdSpiCard
readBlock(uint32_t lba, uint8_t *dst)SdSpiCard
readBlocks(uint32_t lba, uint8_t *dst, size_t nb)SdSpiCard
readCID(cid_t *cid)SdSpiCardinline
readCSD(csd_t *csd)SdSpiCardinline
readData(uint8_t *dst)SdSpiCard
readOCR(uint32_t *ocr)SdSpiCard
readStart(uint32_t blockNumber)SdSpiCard
readStatus(uint8_t *status)SdSpiCard
readStop()SdSpiCard
SdSpiCard()SdSpiCardinline
spiStart()SdSpiCard
spiStop()SdSpiCard
syncBlocks()SdSpiCardinline
type() const SdSpiCardinline
writeBlock(uint32_t lba, const uint8_t *src)SdSpiCard
writeBlocks(uint32_t lba, const uint8_t *src, size_t nb)SdSpiCard
writeData(const uint8_t *src)SdSpiCard
writeStart(uint32_t blockNumber)SdSpiCard
writeStart(uint32_t blockNumber, uint32_t eraseCount)SdSpiCard
writeStop()SdSpiCard
- - - - diff --git a/libraries/SdFat/extras/html/class_sd2_card.html b/libraries/SdFat/extras/html/class_sd2_card.html deleted file mode 100644 index 1ba9a57..0000000 --- a/libraries/SdFat/extras/html/class_sd2_card.html +++ /dev/null @@ -1,1106 +0,0 @@ - - - - - - -SdFat: Sd2Card Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
Sd2Card Class Reference
-
-
- -

Raw access to SD and SDHC card using default SPI library. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for Sd2Card:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for Sd2Card:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (SdSpiDriver *spi, uint8_t csPin, SPISettings spiSettings)
 
bool begin (uint8_t csPin=SS, SPISettings settings=SD_SCK_MHZ(50))
 
uint32_t cardSize ()
 
bool erase (uint32_t firstBlock, uint32_t lastBlock)
 
bool eraseSingleBlockEnable ()
 
void error (uint8_t code)
 
int errorCode () const
 
int errorData () const
 
bool isBusy ()
 
bool readBlock (uint32_t lba, uint8_t *dst)
 
bool readBlocks (uint32_t lba, uint8_t *dst, size_t nb)
 
bool readCID (cid_t *cid)
 
bool readCSD (csd_t *csd)
 
bool readData (uint8_t *dst)
 
bool readOCR (uint32_t *ocr)
 
bool readStart (uint32_t blockNumber)
 
bool readStatus (uint8_t *status)
 
bool readStop ()
 
void spiStart ()
 
void spiStop ()
 
bool syncBlocks ()
 
int type () const
 
bool writeBlock (uint32_t lba, const uint8_t *src)
 
bool writeBlocks (uint32_t lba, const uint8_t *src, size_t nb)
 
bool writeData (const uint8_t *src)
 
bool writeStart (uint32_t blockNumber)
 
bool writeStart (uint32_t blockNumber, uint32_t eraseCount)
 
bool writeStop ()
 
-

Detailed Description

-

Raw access to SD and SDHC card using default SPI library.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCard::begin (SdSpiDriver * spi,
uint8_t csPin,
SPISettings spiSettings 
)
-
-inherited
-
-

Initialize the SD card.

Parameters
- - - - -
[in]spiSPI driver for card.
[in]csPincard chip select pin.
[in]spiSettingsSPI speed, mode, and bit order.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool Sd2Card::begin (uint8_t csPin = SS,
SPISettings settings = SD_SCK_MHZ(50) 
)
-
-inline
-
-

Initialize the SD card.

Parameters
- - - -
[in]csPinSD chip select pin.
[in]settingsSPI speed, mode, and bit order.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t SdSpiCard::cardSize ()
-
-inherited
-
-

Determine the size of an SD flash memory card.

-
Returns
The number of 512 byte data blocks in the card or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::erase (uint32_t firstBlock,
uint32_t lastBlock 
)
-
-inherited
-
-

Erase a range of blocks.

-
Parameters
- - - -
[in]firstBlockThe address of the first block in the range.
[in]lastBlockThe address of the last block in the range.
-
-
-
Note
This function requests the SD card to do a flash erase for a range of blocks. The data on the card after an erase operation is either 0 or 1, depends on the card vendor. The card must support single block erase.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::eraseSingleBlockEnable ()
-
-inherited
-
-

Determine if card supports single block erase.

-
Returns
true is returned if single block erase is supported. false is returned if single block erase is not supported.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdSpiCard::error (uint8_t code)
-
-inlineinherited
-
-

Set SD error code.

Parameters
- - -
[in]codevalue for error code.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::errorCode () const
-
-inlineinherited
-
-
Returns
code for the last error. See SdInfo.h for a list of error codes.
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::errorData () const
-
-inlineinherited
-
-
Returns
error data for last error.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::isBusy ()
-
-inherited
-
-

Check for busy. MISO low indicates the card is busy.

-
Returns
true if busy else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::readBlock (uint32_t lba,
uint8_t * dst 
)
-
-inherited
-
-

Read a 512 byte block from an SD card.

-
Parameters
- - - -
[in]lbaLogical block to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCard::readBlocks (uint32_t lba,
uint8_t * dst,
size_t nb 
)
-
-inherited
-
-

Read multiple 512 byte blocks from an SD card.

-
Parameters
- - - - -
[in]lbaLogical block to be read.
[in]nbNumber of blocks to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readCID (cid_t * cid)
-
-inlineinherited
-
-

Read a card's CID register. The CID contains card identification information such as Manufacturer ID, Product name, Product serial number and Manufacturing date.

-
Parameters
- - -
[out]cidpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readCSD (csd_t * csd)
-
-inlineinherited
-
-

Read a card's CSD register. The CSD contains Card-Specific Data that provides information regarding access to the card's contents.

-
Parameters
- - -
[out]csdpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readData (uint8_t * dst)
-
-inherited
-
-

Read one data block in a multiple block read sequence

-
Parameters
- - -
[out]dstPointer to the location for the data to be read.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readOCR (uint32_t * ocr)
-
-inherited
-
-

Read OCR register.

-
Parameters
- - -
[out]ocrValue of OCR register.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readStart (uint32_t blockNumber)
-
-inherited
-
-

Start a read multiple blocks sequence.

-
Parameters
- - -
[in]blockNumberAddress of first block in sequence.
-
-
-
Note
This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readStatus (uint8_t * status)
-
-inherited
-
-

Return the 64 byte card status

Parameters
- - -
[out]statuslocation for 64 status bytes.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::readStop ()
-
-inherited
-
-

End a read multiple blocks sequence.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdSpiCard::spiStart ()
-
-inherited
-
-

Set CS low and activate the card.

- -
-
- -
-
- - - - - -
- - - - - - - -
void SdSpiCard::spiStop ()
-
-inherited
-
-

Set CS high and deactivate the card.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::syncBlocks ()
-
-inlineinherited
-
-
Returns
success if sync successful. Not for user apps.
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::type () const
-
-inlineinherited
-
-

Return the card type: SD V1, SD V2 or SDHC

Returns
0 - SD V1, 1 - SD V2, or 3 - SDHC.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::writeBlock (uint32_t lba,
const uint8_t * src 
)
-
-inherited
-
-

Writes a 512 byte block to an SD card.

-
Parameters
- - - -
[in]lbaLogical block to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCard::writeBlocks (uint32_t lba,
const uint8_t * src,
size_t nb 
)
-
-inherited
-
-

Write multiple 512 byte blocks to an SD card.

-
Parameters
- - - - -
[in]lbaLogical block to be written.
[in]nbNumber of blocks to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::writeData (const uint8_t * src)
-
-inherited
-
-

Write one data block in a multiple block write sequence.

Parameters
- - -
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::writeStart (uint32_t blockNumber)
-
-inherited
-
-

Start a write multiple blocks sequence.

-
Parameters
- - -
[in]blockNumberAddress of first block in sequence.
-
-
-
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::writeStart (uint32_t blockNumber,
uint32_t eraseCount 
)
-
-inherited
-
-

Start a write multiple blocks sequence with pre-erase.

-
Parameters
- - - -
[in]blockNumberAddress of first block in sequence.
[in]eraseCountThe number of blocks to be pre-erased.
-
-
-
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::writeStop ()
-
-inherited
-
-

End a write multiple blocks sequence.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd2_card__coll__graph.png b/libraries/SdFat/extras/html/class_sd2_card__coll__graph.png deleted file mode 100644 index 023d327..0000000 Binary files a/libraries/SdFat/extras/html/class_sd2_card__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd2_card__inherit__graph.png b/libraries/SdFat/extras/html/class_sd2_card__inherit__graph.png deleted file mode 100644 index 023d327..0000000 Binary files a/libraries/SdFat/extras/html/class_sd2_card__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_base_file-members.html b/libraries/SdFat/extras/html/class_sd_base_file-members.html deleted file mode 100644 index 72f47a4..0000000 --- a/libraries/SdFat/extras/html/class_sd_base_file-members.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdBaseFile Member List
-
-
- -

This is the complete list of members for SdBaseFile, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
available()FatFileinline
clearError()FatFileinline
clearWriteError()FatFileinline
close()FatFile
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile
createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile
createContiguous(const char *path, uint32_t size)FatFileinline
curCluster() const FatFileinline
curPosition() const FatFileinline
cwd()FatFileinlinestatic
dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic
dateTimeCallbackCancel()FatFileinlinestatic
dirEntry(dir_t *dir)FatFile
dirIndex()FatFileinline
dirName(const dir_t *dir, char *name)FatFilestatic
dirSize()FatFile
dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile
exists(const char *path)FatFileinline
FatFile()FatFileinline
FatFile(const char *path, uint8_t oflag)FatFileinline
fgets(char *str, int16_t num, char *delim=0)FatFile
fileAttr() const FatFileinline
fileSize() const FatFileinline
firstBlock()FatFileinline
firstCluster() const FatFileinline
getError()FatFileinline
getName(char *name, size_t size)FatFile
getpos(FatPos_t *pos)FatFile
getSFN(char *name)FatFile
getWriteError()FatFileinline
isDir() const FatFileinline
isFile() const FatFileinline
isHidden() const FatFileinline
isLFN() const FatFileinline
isOpen() const FatFileinline
isReadOnly() const FatFileinline
isRoot() const FatFileinline
isRoot32() const FatFileinline
isRootFixed() const FatFileinline
isSubDir() const FatFileinline
isSystem() const FatFileinline
legal83Char(uint8_t c)FatFileinlinestatic
ls(uint8_t flags=0)FatFileinline
ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile
mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile
open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile
open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile
open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile
open(const char *path, uint8_t oflag=O_READ)FatFileinline
openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile
openRoot(FatVolume *vol)FatFile
peek()FatFile
printCreateDateTime(print_t *pr)FatFile
printFatDate(uint16_t fatDate)FatFileinlinestatic
printFatDate(print_t *pr, uint16_t fatDate)FatFilestatic
printFatTime(uint16_t fatTime)FatFileinlinestatic
printFatTime(print_t *pr, uint16_t fatTime)FatFilestatic
printField(float value, char term, uint8_t prec=2)FatFile
printField(int16_t value, char term)FatFile
printField(uint16_t value, char term)FatFile
printField(int32_t value, char term)FatFile
printField(uint32_t value, char term)FatFile
printFileSize(print_t *pr)FatFile
printModifyDateTime(print_t *pr)FatFile
printName()FatFileinline
printName(print_t *pr)FatFile
printSFN(print_t *pr)FatFile
read()FatFileinline
read(void *buf, size_t nbyte)FatFile
readDir(dir_t *dir)FatFile
remove()FatFile
remove(FatFile *dirFile, const char *path)FatFilestatic
rename(FatFile *dirFile, const char *newPath)FatFile
rewind()FatFileinline
rmdir()FatFile
rmRfStar()FatFile
SdBaseFile() (defined in SdBaseFile)SdBaseFileinline
SdBaseFile(const char *path, uint8_t oflag)SdBaseFileinline
seekCur(int32_t offset)FatFileinline
seekEnd(int32_t offset=0)FatFileinline
seekSet(uint32_t pos)FatFile
setCwd(FatFile *dir)FatFileinlinestatic
setpos(FatPos_t *pos)FatFile
sync()FatFile
timestamp(FatFile *file)FatFile
timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile
truncate(uint32_t length)FatFile
volume() const FatFileinline
write(const char *str)FatFileinline
write(uint8_t b)FatFileinline
write(const void *buf, size_t nbyte)FatFile
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_base_file.html b/libraries/SdFat/extras/html/class_sd_base_file.html deleted file mode 100644 index 525c284..0000000 --- a/libraries/SdFat/extras/html/class_sd_base_file.html +++ /dev/null @@ -1,3287 +0,0 @@ - - - - - - -SdFat: SdBaseFile Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Class for backward compatibility. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdBaseFile:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for SdBaseFile:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

uint32_t available ()
 
void clearError ()
 
void clearWriteError ()
 
bool close ()
 
bool contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
 
bool createContiguous (FatFile *dirFile, const char *path, uint32_t size)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
uint32_t dirSize ()
 
void dmpFile (print_t *pr, uint32_t pos, size_t n)
 
bool exists (const char *path)
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
void getpos (FatPos_t *pos)
 
bool getSFN (char *name)
 
bool getWriteError ()
 
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
bool openRoot (FatVolume *vol)
 
int peek ()
 
bool printCreateDateTime (print_t *pr)
 
int printField (float value, char term, uint8_t prec=2)
 
int printField (int16_t value, char term)
 
int printField (uint16_t value, char term)
 
int printField (int32_t value, char term)
 
int printField (uint32_t value, char term)
 
size_t printFileSize (print_t *pr)
 
bool printModifyDateTime (print_t *pr)
 
size_t printName ()
 
size_t printName (print_t *pr)
 
size_t printSFN (print_t *pr)
 
int read ()
 
int read (void *buf, size_t nbyte)
 
int8_t readDir (dir_t *dir)
 
bool remove ()
 
bool rename (FatFile *dirFile, const char *newPath)
 
void rewind ()
 
bool rmdir ()
 
bool rmRfStar ()
 
 SdBaseFile (const char *path, uint8_t oflag)
 
bool seekCur (int32_t offset)
 
bool seekEnd (int32_t offset=0)
 
bool seekSet (uint32_t pos)
 
void setpos (FatPos_t *pos)
 
bool sync ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
int write (const char *str)
 
int write (uint8_t b)
 
int write (const void *buf, size_t nbyte)
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static FatFilecwd ()
 
static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
 
static void dateTimeCallbackCancel ()
 
static uint8_t dirName (const dir_t *dir, char *name)
 
static bool legal83Char (uint8_t c)
 
static void printFatDate (uint16_t fatDate)
 
static void printFatDate (print_t *pr, uint16_t fatDate)
 
static void printFatTime (uint16_t fatTime)
 
static void printFatTime (print_t *pr, uint16_t fatTime)
 
static bool remove (FatFile *dirFile, const char *path)
 
static bool setCwd (FatFile *dir)
 
-

Detailed Description

-

Class for backward compatibility.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
SdBaseFile::SdBaseFile (const char * path,
uint8_t oflag 
)
-
-inline
-
-

Create a file object and open it in the current working directory.

-
Parameters
- - - -
[in]pathA path for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::available ()
-
-inlineinherited
-
-
Returns
The number of bytes available from the current position to EOF for normal files. Zero is returned for directory files.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearError ()
-
-inlineinherited
-
-

Clear all error bits.

- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearWriteError ()
-
-inlineinherited
-
-

Set writeError to zero

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::close ()
-
-inherited
-
-

Close a file and force cached data and directory information to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::contiguousRange (uint32_t * bgnBlock,
uint32_t * endBlock 
)
-
-inherited
-
-

Check for contiguous file and return its raw block range.

-
Parameters
- - - -
[out]bgnBlockthe first block address for the file.
[out]endBlockthe last block address for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (FatFiledirFile,
const char * path,
uint32_t size 
)
-
-inherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - - -
[in]dirFileThe directory where the file will be created.
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (const char * path,
uint32_t size 
)
-
-inlineinherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - -
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curCluster () const
-
-inlineinherited
-
-
Returns
The current cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curPosition () const
-
-inlineinherited
-
-
Returns
The current position for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
static FatFile* FatFile::cwd ()
-
-inlinestaticinherited
-
-
Returns
Current working directory
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::dateTimeCallback (void(*)(uint16_t *date, uint16_t *time) dateTime)
-
-inlinestaticinherited
-
-

Set the date/time callback function

-
Parameters
- - -
[in]dateTimeThe user's call back function. The callback function is of the form:
-
-
-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

-

See the timestamp() function.

- -
-
- -
-
- - - - - -
- - - - - - - -
static void FatFile::dateTimeCallbackCancel ()
-
-inlinestaticinherited
-
-

Cancel the date/time callback function.

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::dirEntry (dir_tdir)
-
-inherited
-
-

Return a file's directory entry.

-
Parameters
- - -
[out]dirLocation for return of the file's directory entry.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatFile::dirIndex ()
-
-inlineinherited
-
-
Returns
The index of this file in it's directory.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
uint8_t FatFile::dirName (const dir_tdir,
char * name 
)
-
-staticinherited
-
-

Format the name field of dir into the 13 byte array name in standard 8.3 short name format.

-
Parameters
- - - -
[in]dirThe directory structure containing the name.
[out]nameA 13 byte char array for the formatted name.
-
-
-
Returns
length of the name.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::dirSize ()
-
-inherited
-
-
Returns
The number of bytes allocated to a directory or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::dmpFile (print_tpr,
uint32_t pos,
size_t n 
)
-
-inherited
-
-

Dump file in Hex

Parameters
- - - - -
[in]prPrint stream for list.
[in]posStart position in file.
[in]nnumber of locations to dump.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file in a directory

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-

The calling instance must be an open directory file.

-

dirFile.exists("TOFIND.TXT") searches for "TOFIND.TXT" in the directory dirFile.

-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int16_t FatFile::fgets (char * str,
int16_t num,
char * delim = 0 
)
-
-inherited
-
-

Get a string from a file.

-

fgets() reads bytes from a file into the array pointed to by str, until num - 1 bytes are read, or a delimiter is read and transferred to str, or end-of-file is encountered. The string is then terminated with a null byte.

-

fgets() deletes CR, '\r', from the string. This insures only a '\n' terminates the string for Windows text files which use CRLF for newline.

-
Parameters
- - - - -
[out]strPointer to the array where the string is stored.
[in]numMaximum number of characters to be read (including the final null byte). Usually the length of the array str is used.
[in]delimOptional set of delimiters. The default is "\n".
-
-
-
Returns
For success fgets() returns the length of the string in str. If no data is read, fgets() returns zero for EOF or -1 if an error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::fileAttr () const
-
-inlineinherited
-
-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

-
Returns
The file or directory type.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::fileSize () const
-
-inlineinherited
-
-
Returns
The total number of bytes in a file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstBlock ()
-
-inlineinherited
-
-
Returns
first block of file or zero for empty file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstCluster () const
-
-inlineinherited
-
-
Returns
The first cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::getError ()
-
-inlineinherited
-
-
Returns
All error bits.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::getName (char * name,
size_t size 
)
-
-inherited
-
-

Get a file's name followed by a zero byte.

-
Parameters
- - - -
[out]nameAn array of characters for the file's name.
[in]sizeThe size of the array in bytes. The array must be at least 13 bytes long. The file's name will be truncated if the file's name is too long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::getpos (FatPos_tpos)
-
-inherited
-
-

get position for streams

Parameters
- - -
[out]posstruct to receive position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::getSFN (char * name)
-
-inherited
-
-

Get a file's Short File Name followed by a zero byte.

-
Parameters
- - -
[out]nameAn array of characters for the file's name. The array must be at least 13 bytes long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::getWriteError ()
-
-inlineinherited
-
-
Returns
value of writeError
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isDir () const
-
-inlineinherited
-
-
Returns
True if this is a directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isFile () const
-
-inlineinherited
-
-
Returns
True if this is a normal file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isHidden () const
-
-inlineinherited
-
-
Returns
True if this is a hidden file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isLFN () const
-
-inlineinherited
-
-
Returns
true if this file has a Long File Name.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isOpen () const
-
-inlineinherited
-
-
Returns
True if this is an open file/directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isReadOnly () const
-
-inlineinherited
-
-
Returns
True if file is read-only
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot () const
-
-inlineinherited
-
-
Returns
True if this is the root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot32 () const
-
-inlineinherited
-
-
Returns
True if this is the FAT32 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRootFixed () const
-
-inlineinherited
-
-
Returns
True if this is the FAT12 of FAT16 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSubDir () const
-
-inlineinherited
-
-
Returns
True if this is a subdirectory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSystem () const
-
-inlineinherited
-
-
Returns
True if this is a system file else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::legal83Char (uint8_t c)
-
-inlinestaticinherited
-
-

Check for a legal 8.3 character.

Parameters
- - -
[in]cCharacter to be checked.
-
-
-
Returns
true for a legal 8.3 character else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List directory contents.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::ls (print_tpr,
uint8_t flags = 0,
uint8_t indent = 0 
)
-
-inherited
-
-

List directory contents.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

-
Parameters
- - -
[in]indentAmount of space before file name. Used for recursive list to indicate subdirectory level.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::mkdir (FatFiledir,
const char * path,
bool pFlag = true 
)
-
-inherited
-
-

Make a new directory.

-
Parameters
- - - - -
[in]dirAn open FatFile instance for the directory that will contain the new directory.
[in]pathA path with a valid 8.3 DOS name for the new directory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFileSystemfs,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file in the volume working directory of a FatFileSystem.

-
Parameters
- - - - -
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
uint16_t index,
uint8_t oflag 
)
-
-inherited
-
-

Open a file by index.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file or directory by name.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

-

O_RDWR - Open for reading and writing.

-

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

-

O_AT_END - Set the initial position at the end of the file.

-

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

-

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

-

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

-
Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::open (const char * path,
uint8_t oflag = O_READ 
)
-
-inlineinherited
-
-

Open a file in the current working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::openNext (FatFiledirFile,
uint8_t oflag = O_READ 
)
-
-inherited
-
-

Open the next file or subdirectory in a directory.

-
Parameters
- - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::openRoot (FatVolumevol)
-
-inherited
-
-

Open a volume's root directory.

-
Parameters
- - -
[in]volThe FAT volume containing the root directory to be opened.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int FatFile::peek ()
-
-inherited
-
-

Return the next available byte without consuming it.

-
Returns
The byte if no error and not at eof else -1;
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printCreateDateTime (print_tpr)
-
-inherited
-
-

Print a file's creation date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatDate (uint16_t fatDate)
-
-inlinestaticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - -
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatDate (print_tpr,
uint16_t fatDate 
)
-
-staticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatTime (uint16_t fatTime)
-
-inlinestaticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - -
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatTime (print_tpr,
uint16_t fatTime 
)
-
-staticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int FatFile::printField (float value,
char term,
uint8_t prec = 2 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printFileSize (print_tpr)
-
-inherited
-
-

Print a file's size.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printModifyDateTime (print_tpr)
-
-inherited
-
-

Print a file's modify date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
size_t FatFile::printName ()
-
-inlineinherited
-
-

Print a file's name.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printName (print_tpr)
-
-inherited
-
-

Print a file's name

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printSFN (print_tpr)
-
-inherited
-
-

Print a file's Short File Name.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int FatFile::read ()
-
-inlineinherited
-
-

Read the next byte from a file.

-
Returns
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::read (void * buf,
size_t nbyte 
)
-
-inherited
-
-

Read data from a file starting at the current position.

-
Parameters
- - - -
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
-
-
-
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int8_t FatFile::readDir (dir_tdir)
-
-inherited
-
-

Read the next directory entry from a directory file.

-
Parameters
- - -
[out]dirThe dir_t struct that will receive the data.
-
-
-
Returns
For success readDir() returns the number of bytes read. A value of zero will be returned if end of file is reached. If an error occurs, readDir() returns -1. Possible errors include readDir() called before a directory has been opened, this is not a directory file or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::remove ()
-
-inherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::remove (FatFiledirFile,
const char * path 
)
-
-staticinherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Parameters
- - - -
[in]dirFileThe directory that contains the file.
[in]pathPath for the file to be removed.
-
-
-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::rename (FatFiledirFile,
const char * newPath 
)
-
-inherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]dirFileDirectory for the new path.
[in]newPathNew path name for the file/directory.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::rewind ()
-
-inlineinherited
-
-

Set the file's current position to zero.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmdir ()
-
-inherited
-
-

Remove a directory file.

-

The directory file will be removed only if it is empty and is not the root directory. rmdir() follows DOS and Windows and ignores the read-only attribute for the directory.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. For example if a directory has the long name "New folder" you should not delete the 8.3 name "NEWFOL~1".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmRfStar ()
-
-inherited
-
-

Recursively delete a directory and all contained files.

-

This is like the Unix/Linux 'rm -rf *' if called with the root directory hence the name.

-

Warning - This will remove all contents of the directory including subdirectories. The directory will then be removed if it is not root. The read-only attribute for files will be ignored.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. See remove() and rmdir().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekCur (int32_t offset)
-
-inlineinherited
-
-

Set the files position to current position + pos. See seekSet().

Parameters
- - -
[in]offsetThe new position in bytes from the current position.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekEnd (int32_t offset = 0)
-
-inlineinherited
-
-

Set the files position to end-of-file + offset. See seekSet(). Can't be used for directory files since file size is not defined.

Parameters
- - -
[in]offsetThe new position in bytes from end-of-file.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekSet (uint32_t pos)
-
-inherited
-
-

Sets a file's position.

-
Parameters
- - -
[in]posThe new position in bytes from the beginning of the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::setCwd (FatFiledir)
-
-inlinestaticinherited
-
-

Set the current working directory.

-
Parameters
- - -
[in]dirNew current working directory.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::setpos (FatPos_tpos)
-
-inherited
-
-

set position for streams

Parameters
- - -
[out]posstruct with value for new position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::sync ()
-
-inherited
-
-

The sync() call causes all modified data and directory fields to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::timestamp (FatFilefile)
-
-inherited
-
-

Copy a file's timestamps

-
Parameters
- - -
[in]fileFile to copy timestamps from.
-
-
-
Note
Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::timestamp (uint8_t flags,
uint16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second 
)
-
-inherited
-
-

Set a file's timestamps in its directory entry.

-
Parameters
- - -
[in]flagsValues for flags are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

T_ACCESS - Set the file's last access date.

-

T_CREATE - Set the file's creation date and time.

-

T_WRITE - Set the file's last write/modification date and time.

-
Parameters
- - - - - - - -
[in]yearValid range 1980 - 2107 inclusive.
[in]monthValid range 1 - 12 inclusive.
[in]dayValid range 1 - 31 inclusive.
[in]hourValid range 0 - 23 inclusive.
[in]minuteValid range 0 - 59 inclusive.
[in]secondValid range 0 - 59 inclusive
-
-
-
Note
It is possible to set an invalid date since there is no check for the number of days in a month.
-
-Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::truncate (uint32_t length)
-
-inherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - -
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFile::volume () const
-
-inlineinherited
-
-
Returns
FatVolume that contains this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int FatFile::write (const char * str)
-
-inlineinherited
-
-

Write a string to a file. Used by the Arduino Print class.

Parameters
- - -
[in]strPointer to the string. Use getWriteError to check for errors.
-
-
-
Returns
count of characters written for success or -1 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int FatFile::write (uint8_t b)
-
-inlineinherited
-
-

Write a single byte.

Parameters
- - -
[in]bThe byte to be written.
-
-
-
Returns
+1 for success or -1 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::write (const void * buf,
size_t nbyte 
)
-
-inherited
-
-

Write data to an open file.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_base_file__coll__graph.png b/libraries/SdFat/extras/html/class_sd_base_file__coll__graph.png deleted file mode 100644 index 6337c9e..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_base_file__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_base_file__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_base_file__inherit__graph.png deleted file mode 100644 index 6337c9e..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_base_file__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat-members.html b/libraries/SdFat/extras/html/class_sd_fat-members.html deleted file mode 100644 index 4ea22a4..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat-members.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdFat Member List
-
-
- -

This is the complete list of members for SdFat, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatinline
SdFileSystem< SdSpiCard >::begin()SdFileSystem< SdSpiCard >inline
FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
card()SdFileSystem< SdSpiCard >inline
cardBegin(uint8_t csPin=SS, SPISettings settings=SPI_FULL_SPEED)SdFatinline
cardErrorCode()SdFileSystem< SdSpiCard >inline
cardErrorData()SdFileSystem< SdSpiCard >inline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
errorHalt()SdFileSystem< SdSpiCard >inline
errorHalt(Print *pr)SdFileSystem< SdSpiCard >inline
errorHalt(char const *msg)SdFileSystem< SdSpiCard >inline
errorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
errorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
errorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
errorPrint()SdFileSystem< SdSpiCard >inline
errorPrint(Print *pr)SdFileSystem< SdSpiCard >inline
errorPrint(const char *msg)SdFileSystem< SdSpiCard >inline
errorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
errorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
fsBegin()SdFatinline
init()FatVolumeinline
init(uint8_t part)FatVolume
initErrorHalt()SdFileSystem< SdSpiCard >inline
initErrorHalt(Print *pr)SdFileSystem< SdSpiCard >inline
initErrorHalt(char const *msg)SdFileSystem< SdSpiCard >inline
initErrorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
initErrorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
initErrorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint()SdFileSystem< SdSpiCard >inline
initErrorPrint(Print *pr)SdFileSystem< SdSpiCard >inline
initErrorPrint(char const *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
SdFat() (defined in SdFat)SdFatinline
SdFat(uint8_t spiPort)SdFatinlineexplicit
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat.html b/libraries/SdFat/extras/html/class_sd_fat.html deleted file mode 100644 index 96214e7..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat.html +++ /dev/null @@ -1,2436 +0,0 @@ - - - - - - -SdFat: SdFat Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdFat Class Reference
-
-
- -

Main file system class for SdFat library. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdFat:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for SdFat:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
bool begin ()
 
bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
SdSpiCardcard ()
 
bool cardBegin (uint8_t csPin=SS, SPISettings settings=SPI_FULL_SPEED)
 
uint8_t cardErrorCode ()
 
uint32_t cardErrorData ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
void errorHalt ()
 
void errorHalt (Print *pr)
 
void errorHalt (char const *msg)
 
void errorHalt (Print *pr, char const *msg)
 
void errorHalt (const __FlashStringHelper *msg)
 
void errorHalt (Print *pr, const __FlashStringHelper *msg)
 
void errorPrint ()
 
void errorPrint (Print *pr)
 
void errorPrint (const char *msg)
 
void errorPrint (Print *pr, char const *msg)
 
void errorPrint (const __FlashStringHelper *msg)
 
void errorPrint (Print *pr, const __FlashStringHelper *msg)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool fsBegin ()
 
bool init ()
 
bool init (uint8_t part)
 
void initErrorHalt ()
 
void initErrorHalt (Print *pr)
 
void initErrorHalt (char const *msg)
 
void initErrorHalt (Print *pr, char const *msg)
 
void initErrorHalt (const __FlashStringHelper *msg)
 
void initErrorHalt (Print *pr, const __FlashStringHelper *msg)
 
void initErrorPrint ()
 
void initErrorPrint (Print *pr)
 
void initErrorPrint (char const *msg)
 
void initErrorPrint (Print *pr, char const *msg)
 
void initErrorPrint (const __FlashStringHelper *msg)
 
void initErrorPrint (Print *pr, const __FlashStringHelper *msg)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
File open (const String &path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
 SdFat (uint8_t spiPort)
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
-

Detailed Description

-

Main file system class for SdFat library.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
SdFat::SdFat (uint8_t spiPort)
-
-inlineexplicit
-
-

Constructor with SPI port selection.

Parameters
- - -
[in]spiPortSPI port number.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
-
-inlineinherited
-
-

Initialize an FatFileSystem object.

Parameters
- - - -
[in]blockDevDevice block driver.
[in]partpartition to initialize.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFileSystem< SdSpiCard >::begin ()
-
-inlineinherited
-
-

Initialize file system.

Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdFat::begin (uint8_t csPin = SS,
SPISettings spiSettings = SPI_FULL_SPEED 
)
-
-inline
-
-

Initialize SD card and file system.

-
Parameters
- - - -
[in]csPinSD card chip select pin.
[in]spiSettingsSPI speed, mode, and bit order.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inlineinherited
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inlineinherited
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inlineinherited
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
SdSpiCard * SdFileSystem< SdSpiCard >::card ()
-
-inlineinherited
-
-
Returns
Pointer to SD card object
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdFat::cardBegin (uint8_t csPin = SS,
SPISettings settings = SPI_FULL_SPEED 
)
-
-inline
-
-

Initialize SD card for diagnostic use only.

-
Parameters
- - - -
[in]csPinSD card chip select pin.
[in]settingsSPI speed, mode, and bit order.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t SdFileSystem< SdSpiCard >::cardErrorCode ()
-
-inlineinherited
-
-
Returns
The card error code
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t SdFileSystem< SdSpiCard >::cardErrorData ()
-
-inlineinherited
-
-
Returns
the card error data
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::chdir (bool set_cwd = false)
-
-inlineinherited
-
-

Change a volume's working directory to root

-

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

-
Parameters
- - -
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
-
-inlineinherited
-
-

Change a volume's working directory

-

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

-

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

-

If path is "/", the volume's working directory will be changed to the root directory

-
Parameters
- - - -
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFileSystem::chvol ()
-
-inlineinherited
-
-

Set the current working directory to a volume's working directory.

-

This is useful with multiple SD cards.

-

The current working directory is changed to this volume's working directory.

-

This is like the Windows/DOS <drive letter>: command.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inlineinherited
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inlineinherited
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inlineinherited
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt ()
-
-inlineinherited
-
-

Print any SD error code to Serial and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (Print * pr)
-
-inlineinherited
-
-

Print any SD error code and halt.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (char const * msg)
-
-inlineinherited
-
-

Print msg, any SD error code and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint ()
-
-inlineinherited
-
-

Print any SD error code to Serial

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (Print * pr)
-
-inlineinherited
-
-

Print any SD error code.

Parameters
- - -
[in]prPrint device.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (const char * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file.

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inlineinherited
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inlineinherited
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - -
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-inherited
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFat::fsBegin ()
-
-inline
-
-

Initialize file system for diagnostic use only.

Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inlineinherited
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-inherited
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt ()
-
-inlineinherited
-
-

Print any SD error code and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (Print * pr)
-
-inlineinherited
-
-

Print error details and halt after begin fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (char const * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device for message.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint ()
-
-inlineinherited
-
-

Print error details after begin() fails.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (Print * pr)
-
-inlineinherited
-
-

Print error details after begin() fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (char const * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFileSystem::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List the directory contents of the volume working directory to Serial.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of a directory to Serial.

-
Parameters
- - - -
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of the volume working directory.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
-
-inlineinherited
-
-

List the directory contents of a directory.

-
Parameters
- - - - -
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
-
-inlineinherited
-
-

Make a subdirectory in the volume working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const char * path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const String & path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::remove (const char * path)
-
-inlineinherited
-
-

Remove a file from the volume working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
-
-inlineinherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
-
-
-

The newPath object must not exist before the rename call.

-

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::rmdir (const char * path)
-
-inlineinherited
-
-

Remove a subdirectory from the volume's working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
-
-
-

The subdirectory file will be removed only if it is empty.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inlineinherited
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
-
-inlineinherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFileSystem::vol ()
-
-inlineinherited
-
-
Returns
a pointer to the FatVolume object.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inlineinherited
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - -
- - - - - - - -
FatFile* FatFileSystem::vwd ()
-
-inlineinherited
-
-
Returns
a pointer to the volume working directory.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::wipe (print_tpr = 0)
-
-inlineinherited
-
-

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat__coll__graph.png b/libraries/SdFat/extras/html/class_sd_fat__coll__graph.png deleted file mode 100644 index 323a75e..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_fat__inherit__graph.png deleted file mode 100644 index 323a75e..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_e_x-members.html b/libraries/SdFat/extras/html/class_sd_fat_e_x-members.html deleted file mode 100644 index b283f66..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_e_x-members.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdFatEX Member List
-
-
- -

This is the complete list of members for SdFatEX, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatEXinline
SdFileSystem< SdSpiCardEX >::begin()SdFileSystem< SdSpiCardEX >inline
FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
card()SdFileSystem< SdSpiCardEX >inline
cardErrorCode()SdFileSystem< SdSpiCardEX >inline
cardErrorData()SdFileSystem< SdSpiCardEX >inline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
errorHalt()SdFileSystem< SdSpiCardEX >inline
errorHalt(Print *pr)SdFileSystem< SdSpiCardEX >inline
errorHalt(char const *msg)SdFileSystem< SdSpiCardEX >inline
errorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
errorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
errorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint()SdFileSystem< SdSpiCardEX >inline
errorPrint(Print *pr)SdFileSystem< SdSpiCardEX >inline
errorPrint(const char *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
init(uint8_t part)FatVolume
initErrorHalt()SdFileSystem< SdSpiCardEX >inline
initErrorHalt(Print *pr)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint()SdFileSystem< SdSpiCardEX >inline
initErrorPrint(Print *pr)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
SdFatEX() (defined in SdFatEX)SdFatEXinline
SdFatEX(uint8_t spiPort)SdFatEXinlineexplicit
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_e_x.html b/libraries/SdFat/extras/html/class_sd_fat_e_x.html deleted file mode 100644 index 33f77ab..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_e_x.html +++ /dev/null @@ -1,2365 +0,0 @@ - - - - - - -SdFat: SdFatEX Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdFatEX Class Reference
-
-
- -

SdFat class with extended SD I/O. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdFatEX:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for SdFatEX:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
bool begin ()
 
bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
SdSpiCardEXcard ()
 
uint8_t cardErrorCode ()
 
uint32_t cardErrorData ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
void errorHalt ()
 
void errorHalt (Print *pr)
 
void errorHalt (char const *msg)
 
void errorHalt (Print *pr, char const *msg)
 
void errorHalt (const __FlashStringHelper *msg)
 
void errorHalt (Print *pr, const __FlashStringHelper *msg)
 
void errorPrint ()
 
void errorPrint (Print *pr)
 
void errorPrint (const char *msg)
 
void errorPrint (Print *pr, char const *msg)
 
void errorPrint (const __FlashStringHelper *msg)
 
void errorPrint (Print *pr, const __FlashStringHelper *msg)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool init ()
 
bool init (uint8_t part)
 
void initErrorHalt ()
 
void initErrorHalt (Print *pr)
 
void initErrorHalt (char const *msg)
 
void initErrorHalt (Print *pr, char const *msg)
 
void initErrorHalt (const __FlashStringHelper *msg)
 
void initErrorHalt (Print *pr, const __FlashStringHelper *msg)
 
void initErrorPrint ()
 
void initErrorPrint (Print *pr)
 
void initErrorPrint (char const *msg)
 
void initErrorPrint (Print *pr, char const *msg)
 
void initErrorPrint (const __FlashStringHelper *msg)
 
void initErrorPrint (Print *pr, const __FlashStringHelper *msg)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
File open (const String &path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
 SdFatEX (uint8_t spiPort)
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
-

Detailed Description

-

SdFat class with extended SD I/O.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
SdFatEX::SdFatEX (uint8_t spiPort)
-
-inlineexplicit
-
-

Constructor with SPI port selection.

Parameters
- - -
[in]spiPortSPI port number.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
-
-inlineinherited
-
-

Initialize an FatFileSystem object.

Parameters
- - - -
[in]blockDevDevice block driver.
[in]partpartition to initialize.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFileSystem< SdSpiCardEX >::begin ()
-
-inlineinherited
-
-

Initialize file system.

Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdFatEX::begin (uint8_t csPin = SS,
SPISettings spiSettings = SPI_FULL_SPEED 
)
-
-inline
-
-

Initialize SD card and file system.

-
Parameters
- - - -
[in]csPinSD card chip select pin.
[in]spiSettingsSPI speed, mode, and bit order.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inlineinherited
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inlineinherited
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inlineinherited
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
SdSpiCardEX * SdFileSystem< SdSpiCardEX >::card ()
-
-inlineinherited
-
-
Returns
Pointer to SD card object
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t SdFileSystem< SdSpiCardEX >::cardErrorCode ()
-
-inlineinherited
-
-
Returns
The card error code
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t SdFileSystem< SdSpiCardEX >::cardErrorData ()
-
-inlineinherited
-
-
Returns
the card error data
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::chdir (bool set_cwd = false)
-
-inlineinherited
-
-

Change a volume's working directory to root

-

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

-
Parameters
- - -
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
-
-inlineinherited
-
-

Change a volume's working directory

-

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

-

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

-

If path is "/", the volume's working directory will be changed to the root directory

-
Parameters
- - - -
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFileSystem::chvol ()
-
-inlineinherited
-
-

Set the current working directory to a volume's working directory.

-

This is useful with multiple SD cards.

-

The current working directory is changed to this volume's working directory.

-

This is like the Windows/DOS <drive letter>: command.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inlineinherited
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inlineinherited
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inlineinherited
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt ()
-
-inlineinherited
-
-

Print any SD error code to Serial and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (Print * pr)
-
-inlineinherited
-
-

Print any SD error code and halt.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (char const * msg)
-
-inlineinherited
-
-

Print msg, any SD error code and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint ()
-
-inlineinherited
-
-

Print any SD error code to Serial

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (Print * pr)
-
-inlineinherited
-
-

Print any SD error code.

Parameters
- - -
[in]prPrint device.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (const char * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file.

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inlineinherited
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inlineinherited
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - -
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-inherited
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inlineinherited
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-inherited
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt ()
-
-inlineinherited
-
-

Print any SD error code and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (Print * pr)
-
-inlineinherited
-
-

Print error details and halt after begin fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (char const * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device for message.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint ()
-
-inlineinherited
-
-

Print error details after begin() fails.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (Print * pr)
-
-inlineinherited
-
-

Print error details after begin() fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (char const * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFileSystem::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List the directory contents of the volume working directory to Serial.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of a directory to Serial.

-
Parameters
- - - -
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of the volume working directory.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
-
-inlineinherited
-
-

List the directory contents of a directory.

-
Parameters
- - - - -
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
-
-inlineinherited
-
-

Make a subdirectory in the volume working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const char * path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const String & path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::remove (const char * path)
-
-inlineinherited
-
-

Remove a file from the volume working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
-
-inlineinherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
-
-
-

The newPath object must not exist before the rename call.

-

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::rmdir (const char * path)
-
-inlineinherited
-
-

Remove a subdirectory from the volume's working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
-
-
-

The subdirectory file will be removed only if it is empty.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inlineinherited
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
-
-inlineinherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFileSystem::vol ()
-
-inlineinherited
-
-
Returns
a pointer to the FatVolume object.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inlineinherited
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - -
- - - - - - - -
FatFile* FatFileSystem::vwd ()
-
-inlineinherited
-
-
Returns
a pointer to the volume working directory.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::wipe (print_tpr = 0)
-
-inlineinherited
-
-

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_e_x__coll__graph.png b/libraries/SdFat/extras/html/class_sd_fat_e_x__coll__graph.png deleted file mode 100644 index 4a85bc6..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_e_x__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_e_x__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_fat_e_x__inherit__graph.png deleted file mode 100644 index 4a85bc6..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_e_x__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_sdio-members.html b/libraries/SdFat/extras/html/class_sd_fat_sdio-members.html deleted file mode 100644 index 902f6a8..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_sdio-members.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdFatSdio Member List
-
-
- -

This is the complete list of members for SdFatSdio, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin()SdFatSdioinline
FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
card()SdFileSystem< SdioCard >inline
cardBegin()SdFatSdioinline
cardErrorCode()SdFileSystem< SdioCard >inline
cardErrorData()SdFileSystem< SdioCard >inline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
errorHalt()SdFileSystem< SdioCard >inline
errorHalt(Print *pr)SdFileSystem< SdioCard >inline
errorHalt(char const *msg)SdFileSystem< SdioCard >inline
errorHalt(Print *pr, char const *msg)SdFileSystem< SdioCard >inline
errorHalt(const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
errorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
errorPrint()SdFileSystem< SdioCard >inline
errorPrint(Print *pr)SdFileSystem< SdioCard >inline
errorPrint(const char *msg)SdFileSystem< SdioCard >inline
errorPrint(Print *pr, char const *msg)SdFileSystem< SdioCard >inline
errorPrint(const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
fsBegin()SdFatSdioinline
init()FatVolumeinline
init(uint8_t part)FatVolume
initErrorHalt()SdFileSystem< SdioCard >inline
initErrorHalt(Print *pr)SdFileSystem< SdioCard >inline
initErrorHalt(char const *msg)SdFileSystem< SdioCard >inline
initErrorHalt(Print *pr, char const *msg)SdFileSystem< SdioCard >inline
initErrorHalt(const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
initErrorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
initErrorPrint()SdFileSystem< SdioCard >inline
initErrorPrint(Print *pr)SdFileSystem< SdioCard >inline
initErrorPrint(char const *msg)SdFileSystem< SdioCard >inline
initErrorPrint(Print *pr, char const *msg)SdFileSystem< SdioCard >inline
initErrorPrint(const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
initErrorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdioCard >inline
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_sdio.html b/libraries/SdFat/extras/html/class_sd_fat_sdio.html deleted file mode 100644 index b876bb1..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_sdio.html +++ /dev/null @@ -1,2340 +0,0 @@ - - - - - - -SdFat: SdFatSdio Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdFatSdio Class Reference
-
-
- -

SdFat class using SDIO. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdFatSdio:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for SdFatSdio:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
bool begin ()
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
SdioCardcard ()
 
bool cardBegin ()
 
uint8_t cardErrorCode ()
 
uint32_t cardErrorData ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
void errorHalt ()
 
void errorHalt (Print *pr)
 
void errorHalt (char const *msg)
 
void errorHalt (Print *pr, char const *msg)
 
void errorHalt (const __FlashStringHelper *msg)
 
void errorHalt (Print *pr, const __FlashStringHelper *msg)
 
void errorPrint ()
 
void errorPrint (Print *pr)
 
void errorPrint (const char *msg)
 
void errorPrint (Print *pr, char const *msg)
 
void errorPrint (const __FlashStringHelper *msg)
 
void errorPrint (Print *pr, const __FlashStringHelper *msg)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool fsBegin ()
 
bool init ()
 
bool init (uint8_t part)
 
void initErrorHalt ()
 
void initErrorHalt (Print *pr)
 
void initErrorHalt (char const *msg)
 
void initErrorHalt (Print *pr, char const *msg)
 
void initErrorHalt (const __FlashStringHelper *msg)
 
void initErrorHalt (Print *pr, const __FlashStringHelper *msg)
 
void initErrorPrint ()
 
void initErrorPrint (Print *pr)
 
void initErrorPrint (char const *msg)
 
void initErrorPrint (Print *pr, char const *msg)
 
void initErrorPrint (const __FlashStringHelper *msg)
 
void initErrorPrint (Print *pr, const __FlashStringHelper *msg)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
File open (const String &path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
-

Detailed Description

-

SdFat class using SDIO.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
-
-inlineinherited
-
-

Initialize an FatFileSystem object.

Parameters
- - - -
[in]blockDevDevice block driver.
[in]partpartition to initialize.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFatSdio::begin ()
-
-inline
-
-

Initialize SD card and file system.

Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inlineinherited
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inlineinherited
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inlineinherited
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
SdioCard * SdFileSystem< SdioCard >::card ()
-
-inlineinherited
-
-
Returns
Pointer to SD card object
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFatSdio::cardBegin ()
-
-inline
-
-

Initialize SD card for diagnostic use only.

-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t SdFileSystem< SdioCard >::cardErrorCode ()
-
-inlineinherited
-
-
Returns
The card error code
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t SdFileSystem< SdioCard >::cardErrorData ()
-
-inlineinherited
-
-
Returns
the card error data
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::chdir (bool set_cwd = false)
-
-inlineinherited
-
-

Change a volume's working directory to root

-

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

-
Parameters
- - -
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
-
-inlineinherited
-
-

Change a volume's working directory

-

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

-

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

-

If path is "/", the volume's working directory will be changed to the root directory

-
Parameters
- - - -
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFileSystem::chvol ()
-
-inlineinherited
-
-

Set the current working directory to a volume's working directory.

-

This is useful with multiple SD cards.

-

The current working directory is changed to this volume's working directory.

-

This is like the Windows/DOS <drive letter>: command.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inlineinherited
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inlineinherited
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inlineinherited
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdioCard >::errorHalt ()
-
-inlineinherited
-
-

Print any SD error code to Serial and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::errorHalt (Print * pr)
-
-inlineinherited
-
-

Print any SD error code and halt.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::errorHalt (char const * msg)
-
-inlineinherited
-
-

Print msg, any SD error code and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::errorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::errorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::errorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdioCard >::errorPrint ()
-
-inlineinherited
-
-

Print any SD error code to Serial

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::errorPrint (Print * pr)
-
-inlineinherited
-
-

Print any SD error code.

Parameters
- - -
[in]prPrint device.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::errorPrint (const char * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::errorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::errorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::errorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file.

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inlineinherited
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inlineinherited
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - -
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-inherited
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFatSdio::fsBegin ()
-
-inline
-
-

Initialize file system for diagnostic use only.

Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inlineinherited
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-inherited
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdioCard >::initErrorHalt ()
-
-inlineinherited
-
-

Print any SD error code and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::initErrorHalt (Print * pr)
-
-inlineinherited
-
-

Print error details and halt after begin fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::initErrorHalt (char const * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::initErrorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::initErrorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::initErrorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device for message.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdioCard >::initErrorPrint ()
-
-inlineinherited
-
-

Print error details after begin() fails.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::initErrorPrint (Print * pr)
-
-inlineinherited
-
-

Print error details after begin() fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::initErrorPrint (char const * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::initErrorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdioCard >::initErrorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdioCard >::initErrorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFileSystem::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List the directory contents of the volume working directory to Serial.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of a directory to Serial.

-
Parameters
- - - -
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of the volume working directory.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
-
-inlineinherited
-
-

List the directory contents of a directory.

-
Parameters
- - - - -
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
-
-inlineinherited
-
-

Make a subdirectory in the volume working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const char * path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const String & path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::remove (const char * path)
-
-inlineinherited
-
-

Remove a file from the volume working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
-
-inlineinherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
-
-
-

The newPath object must not exist before the rename call.

-

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::rmdir (const char * path)
-
-inlineinherited
-
-

Remove a subdirectory from the volume's working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
-
-
-

The subdirectory file will be removed only if it is empty.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inlineinherited
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
-
-inlineinherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFileSystem::vol ()
-
-inlineinherited
-
-
Returns
a pointer to the FatVolume object.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inlineinherited
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - -
- - - - - - - -
FatFile* FatFileSystem::vwd ()
-
-inlineinherited
-
-
Returns
a pointer to the volume working directory.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::wipe (print_tpr = 0)
-
-inlineinherited
-
-

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_sdio__coll__graph.png b/libraries/SdFat/extras/html/class_sd_fat_sdio__coll__graph.png deleted file mode 100644 index b8803e8..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_sdio__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_sdio__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_fat_sdio__inherit__graph.png deleted file mode 100644 index b8803e8..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_sdio__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi-members.html b/libraries/SdFat/extras/html/class_sd_fat_soft_spi-members.html deleted file mode 100644 index a5fa07f..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_soft_spi-members.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdFatSoftSpi< MisoPin, MosiPin, SckPin > Member List
-
-
- -

This is the complete list of members for SdFatSoftSpi< MisoPin, MosiPin, SckPin >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatSoftSpi< MisoPin, MosiPin, SckPin >inline
SdFileSystem< SdSpiCard >::begin()SdFileSystem< SdSpiCard >inline
FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
card()SdFileSystem< SdSpiCard >inline
cardErrorCode()SdFileSystem< SdSpiCard >inline
cardErrorData()SdFileSystem< SdSpiCard >inline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
errorHalt()SdFileSystem< SdSpiCard >inline
errorHalt(Print *pr)SdFileSystem< SdSpiCard >inline
errorHalt(char const *msg)SdFileSystem< SdSpiCard >inline
errorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
errorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
errorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
errorPrint()SdFileSystem< SdSpiCard >inline
errorPrint(Print *pr)SdFileSystem< SdSpiCard >inline
errorPrint(const char *msg)SdFileSystem< SdSpiCard >inline
errorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
errorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
init(uint8_t part)FatVolume
initErrorHalt()SdFileSystem< SdSpiCard >inline
initErrorHalt(Print *pr)SdFileSystem< SdSpiCard >inline
initErrorHalt(char const *msg)SdFileSystem< SdSpiCard >inline
initErrorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
initErrorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
initErrorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint()SdFileSystem< SdSpiCard >inline
initErrorPrint(Print *pr)SdFileSystem< SdSpiCard >inline
initErrorPrint(char const *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
initErrorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCard >inline
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi.html b/libraries/SdFat/extras/html/class_sd_fat_soft_spi.html deleted file mode 100644 index ae13854..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_soft_spi.html +++ /dev/null @@ -1,2337 +0,0 @@ - - - - - - -SdFat: SdFatSoftSpi< MisoPin, MosiPin, SckPin > Class Template Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdFatSoftSpi< MisoPin, MosiPin, SckPin > Class Template Reference
-
-
- -

SdFat class using software SPI. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdFatSoftSpi< MisoPin, MosiPin, SckPin >:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for SdFatSoftSpi< MisoPin, MosiPin, SckPin >:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
bool begin ()
 
bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
SdSpiCardcard ()
 
uint8_t cardErrorCode ()
 
uint32_t cardErrorData ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
void errorHalt ()
 
void errorHalt (Print *pr)
 
void errorHalt (char const *msg)
 
void errorHalt (Print *pr, char const *msg)
 
void errorHalt (const __FlashStringHelper *msg)
 
void errorHalt (Print *pr, const __FlashStringHelper *msg)
 
void errorPrint ()
 
void errorPrint (Print *pr)
 
void errorPrint (const char *msg)
 
void errorPrint (Print *pr, char const *msg)
 
void errorPrint (const __FlashStringHelper *msg)
 
void errorPrint (Print *pr, const __FlashStringHelper *msg)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool init ()
 
bool init (uint8_t part)
 
void initErrorHalt ()
 
void initErrorHalt (Print *pr)
 
void initErrorHalt (char const *msg)
 
void initErrorHalt (Print *pr, char const *msg)
 
void initErrorHalt (const __FlashStringHelper *msg)
 
void initErrorHalt (Print *pr, const __FlashStringHelper *msg)
 
void initErrorPrint ()
 
void initErrorPrint (Print *pr)
 
void initErrorPrint (char const *msg)
 
void initErrorPrint (Print *pr, char const *msg)
 
void initErrorPrint (const __FlashStringHelper *msg)
 
void initErrorPrint (Print *pr, const __FlashStringHelper *msg)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
File open (const String &path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
-

Detailed Description

-

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin>
-class SdFatSoftSpi< MisoPin, MosiPin, SckPin >

- -

SdFat class using software SPI.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
-
-inlineinherited
-
-

Initialize an FatFileSystem object.

Parameters
- - - -
[in]blockDevDevice block driver.
[in]partpartition to initialize.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFileSystem< SdSpiCard >::begin ()
-
-inlineinherited
-
-

Initialize file system.

Returns
true for success else false.
- -
-
- -
-
-
-template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdFatSoftSpi< MisoPin, MosiPin, SckPin >::begin (uint8_t csPin = SS,
SPISettings spiSettings = SPI_FULL_SPEED 
)
-
-inline
-
-

Initialize SD card and file system.

-
Parameters
- - - -
[in]csPinSD card chip select pin.
[in]spiSettingsignored for software SPI..
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inlineinherited
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inlineinherited
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inlineinherited
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
SdSpiCard * SdFileSystem< SdSpiCard >::card ()
-
-inlineinherited
-
-
Returns
Pointer to SD card object
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t SdFileSystem< SdSpiCard >::cardErrorCode ()
-
-inlineinherited
-
-
Returns
The card error code
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t SdFileSystem< SdSpiCard >::cardErrorData ()
-
-inlineinherited
-
-
Returns
the card error data
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::chdir (bool set_cwd = false)
-
-inlineinherited
-
-

Change a volume's working directory to root

-

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

-
Parameters
- - -
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
-
-inlineinherited
-
-

Change a volume's working directory

-

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

-

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

-

If path is "/", the volume's working directory will be changed to the root directory

-
Parameters
- - - -
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFileSystem::chvol ()
-
-inlineinherited
-
-

Set the current working directory to a volume's working directory.

-

This is useful with multiple SD cards.

-

The current working directory is changed to this volume's working directory.

-

This is like the Windows/DOS <drive letter>: command.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inlineinherited
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inlineinherited
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inlineinherited
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt ()
-
-inlineinherited
-
-

Print any SD error code to Serial and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (Print * pr)
-
-inlineinherited
-
-

Print any SD error code and halt.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (char const * msg)
-
-inlineinherited
-
-

Print msg, any SD error code and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint ()
-
-inlineinherited
-
-

Print any SD error code to Serial

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (Print * pr)
-
-inlineinherited
-
-

Print any SD error code.

Parameters
- - -
[in]prPrint device.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (const char * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::errorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file.

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inlineinherited
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inlineinherited
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - -
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-inherited
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inlineinherited
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-inherited
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt ()
-
-inlineinherited
-
-

Print any SD error code and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (Print * pr)
-
-inlineinherited
-
-

Print error details and halt after begin fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (char const * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device for message.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint ()
-
-inlineinherited
-
-

Print error details after begin() fails.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (Print * pr)
-
-inlineinherited
-
-

Print error details after begin() fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (char const * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCard >::initErrorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFileSystem::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List the directory contents of the volume working directory to Serial.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of a directory to Serial.

-
Parameters
- - - -
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of the volume working directory.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
-
-inlineinherited
-
-

List the directory contents of a directory.

-
Parameters
- - - - -
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
-
-inlineinherited
-
-

Make a subdirectory in the volume working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const char * path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const String & path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::remove (const char * path)
-
-inlineinherited
-
-

Remove a file from the volume working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
-
-inlineinherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
-
-
-

The newPath object must not exist before the rename call.

-

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::rmdir (const char * path)
-
-inlineinherited
-
-

Remove a subdirectory from the volume's working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
-
-
-

The subdirectory file will be removed only if it is empty.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inlineinherited
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
-
-inlineinherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFileSystem::vol ()
-
-inlineinherited
-
-
Returns
a pointer to the FatVolume object.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inlineinherited
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - -
- - - - - - - -
FatFile* FatFileSystem::vwd ()
-
-inlineinherited
-
-
Returns
a pointer to the volume working directory.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::wipe (print_tpr = 0)
-
-inlineinherited
-
-

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi__coll__graph.png b/libraries/SdFat/extras/html/class_sd_fat_soft_spi__coll__graph.png deleted file mode 100644 index e868a3c..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_soft_spi__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_fat_soft_spi__inherit__graph.png deleted file mode 100644 index e868a3c..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_soft_spi__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x-members.html b/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x-members.html deleted file mode 100644 index 48d8df9..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x-members.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdFatSoftSpiEX< MisoPin, MosiPin, SckPin > Member List
-
-
- -

This is the complete list of members for SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >inline
SdFileSystem< SdSpiCardEX >::begin()SdFileSystem< SdSpiCardEX >inline
FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
card()SdFileSystem< SdSpiCardEX >inline
cardErrorCode()SdFileSystem< SdSpiCardEX >inline
cardErrorData()SdFileSystem< SdSpiCardEX >inline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
errorHalt()SdFileSystem< SdSpiCardEX >inline
errorHalt(Print *pr)SdFileSystem< SdSpiCardEX >inline
errorHalt(char const *msg)SdFileSystem< SdSpiCardEX >inline
errorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
errorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
errorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint()SdFileSystem< SdSpiCardEX >inline
errorPrint(Print *pr)SdFileSystem< SdSpiCardEX >inline
errorPrint(const char *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
init(uint8_t part)FatVolume
initErrorHalt()SdFileSystem< SdSpiCardEX >inline
initErrorHalt(Print *pr)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
initErrorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint()SdFileSystem< SdSpiCardEX >inline
initErrorPrint(Print *pr)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(Print *pr, char const *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
initErrorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdSpiCardEX >inline
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x.html b/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x.html deleted file mode 100644 index c0058d3..0000000 --- a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x.html +++ /dev/null @@ -1,2337 +0,0 @@ - - - - - - -SdFat: SdFatSoftSpiEX< MisoPin, MosiPin, SckPin > Class Template Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdFatSoftSpiEX< MisoPin, MosiPin, SckPin > Class Template Reference
-
-
- -

SdFat class using software SPI and extended SD I/O. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
bool begin ()
 
bool begin (uint8_t csPin=SS, SPISettings spiSettings=SPI_FULL_SPEED)
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
SdSpiCardEXcard ()
 
uint8_t cardErrorCode ()
 
uint32_t cardErrorData ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
void errorHalt ()
 
void errorHalt (Print *pr)
 
void errorHalt (char const *msg)
 
void errorHalt (Print *pr, char const *msg)
 
void errorHalt (const __FlashStringHelper *msg)
 
void errorHalt (Print *pr, const __FlashStringHelper *msg)
 
void errorPrint ()
 
void errorPrint (Print *pr)
 
void errorPrint (const char *msg)
 
void errorPrint (Print *pr, char const *msg)
 
void errorPrint (const __FlashStringHelper *msg)
 
void errorPrint (Print *pr, const __FlashStringHelper *msg)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool init ()
 
bool init (uint8_t part)
 
void initErrorHalt ()
 
void initErrorHalt (Print *pr)
 
void initErrorHalt (char const *msg)
 
void initErrorHalt (Print *pr, char const *msg)
 
void initErrorHalt (const __FlashStringHelper *msg)
 
void initErrorHalt (Print *pr, const __FlashStringHelper *msg)
 
void initErrorPrint ()
 
void initErrorPrint (Print *pr)
 
void initErrorPrint (char const *msg)
 
void initErrorPrint (Print *pr, char const *msg)
 
void initErrorPrint (const __FlashStringHelper *msg)
 
void initErrorPrint (Print *pr, const __FlashStringHelper *msg)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
File open (const String &path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
-

Detailed Description

-

template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin>
-class SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >

- -

SdFat class using software SPI and extended SD I/O.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
-
-inlineinherited
-
-

Initialize an FatFileSystem object.

Parameters
- - - -
[in]blockDevDevice block driver.
[in]partpartition to initialize.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdFileSystem< SdSpiCardEX >::begin ()
-
-inlineinherited
-
-

Initialize file system.

Returns
true for success else false.
- -
-
- -
-
-
-template<uint8_t MisoPin, uint8_t MosiPin, uint8_t SckPin>
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdFatSoftSpiEX< MisoPin, MosiPin, SckPin >::begin (uint8_t csPin = SS,
SPISettings spiSettings = SPI_FULL_SPEED 
)
-
-inline
-
-

Initialize SD card and file system.

-
Parameters
- - - -
[in]csPinSD card chip select pin.
[in]spiSettingsignored for software SPI.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inlineinherited
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inlineinherited
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inlineinherited
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
SdSpiCardEX * SdFileSystem< SdSpiCardEX >::card ()
-
-inlineinherited
-
-
Returns
Pointer to SD card object
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t SdFileSystem< SdSpiCardEX >::cardErrorCode ()
-
-inlineinherited
-
-
Returns
The card error code
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t SdFileSystem< SdSpiCardEX >::cardErrorData ()
-
-inlineinherited
-
-
Returns
the card error data
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::chdir (bool set_cwd = false)
-
-inlineinherited
-
-

Change a volume's working directory to root

-

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

-
Parameters
- - -
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
-
-inlineinherited
-
-

Change a volume's working directory

-

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

-

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

-

If path is "/", the volume's working directory will be changed to the root directory

-
Parameters
- - - -
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFileSystem::chvol ()
-
-inlineinherited
-
-

Set the current working directory to a volume's working directory.

-

This is useful with multiple SD cards.

-

The current working directory is changed to this volume's working directory.

-

This is like the Windows/DOS <drive letter>: command.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inlineinherited
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inlineinherited
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inlineinherited
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt ()
-
-inlineinherited
-
-

Print any SD error code to Serial and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (Print * pr)
-
-inlineinherited
-
-

Print any SD error code and halt.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (char const * msg)
-
-inlineinherited
-
-

Print msg, any SD error code and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint ()
-
-inlineinherited
-
-

Print any SD error code to Serial

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (Print * pr)
-
-inlineinherited
-
-

Print any SD error code.

Parameters
- - -
[in]prPrint device.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (const char * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::errorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file.

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inlineinherited
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inlineinherited
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - -
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-inherited
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inlineinherited
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-inherited
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt ()
-
-inlineinherited
-
-

Print any SD error code and halt.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (Print * pr)
-
-inlineinherited
-
-

Print error details and halt after begin fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (char const * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device for message.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint ()
-
-inlineinherited
-
-

Print error details after begin() fails.

- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (Print * pr)
-
-inlineinherited
-
-

Print error details after begin() fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (char const * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (Print * pr,
char const * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (const __FlashStringHelper * msg)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdSpiCardEX >::initErrorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inlineinherited
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFileSystem::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List the directory contents of the volume working directory to Serial.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of a directory to Serial.

-
Parameters
- - - -
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of the volume working directory.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
-
-inlineinherited
-
-

List the directory contents of a directory.

-
Parameters
- - - - -
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
-
-inlineinherited
-
-

Make a subdirectory in the volume working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const char * path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const String & path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::remove (const char * path)
-
-inlineinherited
-
-

Remove a file from the volume working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
-
-inlineinherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
-
-
-

The newPath object must not exist before the rename call.

-

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::rmdir (const char * path)
-
-inlineinherited
-
-

Remove a subdirectory from the volume's working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
-
-
-

The subdirectory file will be removed only if it is empty.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inlineinherited
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
-
-inlineinherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFileSystem::vol ()
-
-inlineinherited
-
-
Returns
a pointer to the FatVolume object.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inlineinherited
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - -
- - - - - - - -
FatFile* FatFileSystem::vwd ()
-
-inlineinherited
-
-
Returns
a pointer to the volume working directory.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::wipe (print_tpr = 0)
-
-inlineinherited
-
-

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x__coll__graph.png b/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x__coll__graph.png deleted file mode 100644 index 470ddc4..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x__inherit__graph.png deleted file mode 100644 index 470ddc4..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_fat_soft_spi_e_x__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_file-members.html b/libraries/SdFat/extras/html/class_sd_file-members.html deleted file mode 100644 index b087726..0000000 --- a/libraries/SdFat/extras/html/class_sd_file-members.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdFile Member List
-
-
- -

This is the complete list of members for SdFile, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
available()PrintFileinline
clearError()FatFileinline
clearWriteError()FatFileinline
close()FatFile
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFile
createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFile
createContiguous(const char *path, uint32_t size)FatFileinline
curCluster() const FatFileinline
curPosition() const FatFileinline
cwd()FatFileinlinestatic
dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlinestatic
dateTimeCallbackCancel()FatFileinlinestatic
dirEntry(dir_t *dir)FatFile
dirIndex()FatFileinline
dirName(const dir_t *dir, char *name)FatFilestatic
dirSize()FatFile
dmpFile(print_t *pr, uint32_t pos, size_t n)FatFile
exists(const char *path)FatFileinline
FatFile()FatFileinline
FatFile(const char *path, uint8_t oflag)FatFileinline
fgets(char *str, int16_t num, char *delim=0)FatFile
fileAttr() const FatFileinline
fileSize() const FatFileinline
firstBlock()FatFileinline
firstCluster() const FatFileinline
flush()PrintFileinline
getError()FatFileinline
getName(char *name, size_t size)FatFile
getpos(FatPos_t *pos)FatFile
getSFN(char *name)FatFile
getWriteError()FatFileinline
isDir() const FatFileinline
isFile() const FatFileinline
isHidden() const FatFileinline
isLFN() const FatFileinline
isOpen() const FatFileinline
isReadOnly() const FatFileinline
isRoot() const FatFileinline
isRoot32() const FatFileinline
isRootFixed() const FatFileinline
isSubDir() const FatFileinline
isSystem() const FatFileinline
legal83Char(uint8_t c)FatFileinlinestatic
ls(uint8_t flags=0)FatFileinline
ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFile
mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFile
open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFile
open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFile
open(FatFile *dirFile, const char *path, uint8_t oflag)FatFile
open(const char *path, uint8_t oflag=O_READ)FatFileinline
openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFile
openRoot(FatVolume *vol)FatFile
peek()PrintFileinline
printCreateDateTime(print_t *pr)FatFile
printFatDate(uint16_t fatDate)FatFileinlinestatic
printFatDate(print_t *pr, uint16_t fatDate)FatFilestatic
printFatTime(uint16_t fatTime)FatFileinlinestatic
printFatTime(print_t *pr, uint16_t fatTime)FatFilestatic
printField(float value, char term, uint8_t prec=2)FatFile
printField(int16_t value, char term)FatFile
printField(uint16_t value, char term)FatFile
printField(int32_t value, char term)FatFile
printField(uint32_t value, char term)FatFile
PrintFile() (defined in PrintFile)PrintFileinline
PrintFile(const char *path, uint8_t oflag)PrintFileinline
printFileSize(print_t *pr)FatFile
printModifyDateTime(print_t *pr)FatFile
printName()FatFileinline
printName(print_t *pr)FatFile
printSFN(print_t *pr)FatFile
read()FatFileinline
read(void *buf, size_t nbyte)FatFile
readDir(dir_t *dir)FatFile
remove()FatFile
remove(FatFile *dirFile, const char *path)FatFilestatic
rename(FatFile *dirFile, const char *newPath)FatFile
rewind()FatFileinline
rmdir()FatFile
rmRfStar()FatFile
SdFile() (defined in SdFile)SdFileinline
SdFile(const char *path, uint8_t oflag)SdFileinline
seekCur(int32_t offset)FatFileinline
seekEnd(int32_t offset=0)FatFileinline
seekSet(uint32_t pos)FatFile
setCwd(FatFile *dir)FatFileinlinestatic
setpos(FatPos_t *pos)FatFile
sync()FatFile
timestamp(FatFile *file)FatFile
timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFile
truncate(uint32_t length)FatFile
volume() const FatFileinline
write(uint8_t b)PrintFileinline
write(const uint8_t *buf, size_t size)PrintFileinline
FatFile::write(const char *str)FatFileinline
FatFile::write(const void *buf, size_t nbyte)FatFile
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_file.html b/libraries/SdFat/extras/html/class_sd_file.html deleted file mode 100644 index 4d80643..0000000 --- a/libraries/SdFat/extras/html/class_sd_file.html +++ /dev/null @@ -1,3363 +0,0 @@ - - - - - - -SdFat: SdFile Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Class for backward compatibility. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdFile:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for SdFile:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

int available ()
 
void clearError ()
 
void clearWriteError ()
 
bool close ()
 
bool contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
 
bool createContiguous (FatFile *dirFile, const char *path, uint32_t size)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
uint32_t dirSize ()
 
void dmpFile (print_t *pr, uint32_t pos, size_t n)
 
bool exists (const char *path)
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
void flush ()
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
void getpos (FatPos_t *pos)
 
bool getSFN (char *name)
 
bool getWriteError ()
 
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
bool openRoot (FatVolume *vol)
 
int peek ()
 
bool printCreateDateTime (print_t *pr)
 
int printField (float value, char term, uint8_t prec=2)
 
int printField (int16_t value, char term)
 
int printField (uint16_t value, char term)
 
int printField (int32_t value, char term)
 
int printField (uint32_t value, char term)
 
size_t printFileSize (print_t *pr)
 
bool printModifyDateTime (print_t *pr)
 
size_t printName ()
 
size_t printName (print_t *pr)
 
size_t printSFN (print_t *pr)
 
int read ()
 
int read (void *buf, size_t nbyte)
 
int8_t readDir (dir_t *dir)
 
bool remove ()
 
bool rename (FatFile *dirFile, const char *newPath)
 
void rewind ()
 
bool rmdir ()
 
bool rmRfStar ()
 
 SdFile (const char *path, uint8_t oflag)
 
bool seekCur (int32_t offset)
 
bool seekEnd (int32_t offset=0)
 
bool seekSet (uint32_t pos)
 
void setpos (FatPos_t *pos)
 
bool sync ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
size_t write (uint8_t b)
 
size_t write (const uint8_t *buf, size_t size)
 
int write (const char *str)
 
int write (const void *buf, size_t nbyte)
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Member Functions

static FatFilecwd ()
 
static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
 
static void dateTimeCallbackCancel ()
 
static uint8_t dirName (const dir_t *dir, char *name)
 
static bool legal83Char (uint8_t c)
 
static void printFatDate (uint16_t fatDate)
 
static void printFatDate (print_t *pr, uint16_t fatDate)
 
static void printFatTime (uint16_t fatTime)
 
static void printFatTime (print_t *pr, uint16_t fatTime)
 
static bool remove (FatFile *dirFile, const char *path)
 
static bool setCwd (FatFile *dir)
 
-

Detailed Description

-

Class for backward compatibility.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
SdFile::SdFile (const char * path,
uint8_t oflag 
)
-
-inline
-
-

Create a file object and open it in the current working directory.

-
Parameters
- - - -
[in]pathA path for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of open flags. see FatFile::open(FatFile*, const char*, uint8_t).
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
int PrintFile::available ()
-
-inlineinherited
-
-
Returns
number of bytes available from the current position to EOF or INT_MAX if more than INT_MAX bytes are available.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearError ()
-
-inlineinherited
-
-

Clear all error bits.

- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::clearWriteError ()
-
-inlineinherited
-
-

Set writeError to zero

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::close ()
-
-inherited
-
-

Close a file and force cached data and directory information to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::contiguousRange (uint32_t * bgnBlock,
uint32_t * endBlock 
)
-
-inherited
-
-

Check for contiguous file and return its raw block range.

-
Parameters
- - - -
[out]bgnBlockthe first block address for the file.
[out]endBlockthe last block address for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (FatFiledirFile,
const char * path,
uint32_t size 
)
-
-inherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - - -
[in]dirFileThe directory where the file will be created.
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::createContiguous (const char * path,
uint32_t size 
)
-
-inlineinherited
-
-

Create and open a new contiguous file of a specified size.

-
Parameters
- - - -
[in]pathA path with a validfile name.
[in]sizeThe desired file size.
-
-
-
Returns
The value true is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curCluster () const
-
-inlineinherited
-
-
Returns
The current cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::curPosition () const
-
-inlineinherited
-
-
Returns
The current position for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
static FatFile* FatFile::cwd ()
-
-inlinestaticinherited
-
-
Returns
Current working directory
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::dateTimeCallback (void(*)(uint16_t *date, uint16_t *time) dateTime)
-
-inlinestaticinherited
-
-

Set the date/time callback function

-
Parameters
- - -
[in]dateTimeThe user's call back function. The callback function is of the form:
-
-
-
void dateTime(uint16_t* date, uint16_t* time) {
-
uint16_t year;
-
uint8_t month, day, hour, minute, second;
-
-
// User gets date and time from GPS or real-time clock here
-
-
// return date using FAT_DATE macro to format fields
-
*date = FAT_DATE(year, month, day);
-
-
// return time using FAT_TIME macro to format fields
-
*time = FAT_TIME(hour, minute, second);
-
}
-

Sets the function that is called when a file is created or when a file's directory entry is modified by sync(). All timestamps, access, creation, and modify, are set when a file is created. sync() maintains the last access date and last modify date/time.

-

See the timestamp() function.

- -
-
- -
-
- - - - - -
- - - - - - - -
static void FatFile::dateTimeCallbackCancel ()
-
-inlinestaticinherited
-
-

Cancel the date/time callback function.

- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::dirEntry (dir_tdir)
-
-inherited
-
-

Return a file's directory entry.

-
Parameters
- - -
[out]dirLocation for return of the file's directory entry.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatFile::dirIndex ()
-
-inlineinherited
-
-
Returns
The index of this file in it's directory.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
uint8_t FatFile::dirName (const dir_tdir,
char * name 
)
-
-staticinherited
-
-

Format the name field of dir into the 13 byte array name in standard 8.3 short name format.

-
Parameters
- - - -
[in]dirThe directory structure containing the name.
[out]nameA 13 byte char array for the formatted name.
-
-
-
Returns
length of the name.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::dirSize ()
-
-inherited
-
-
Returns
The number of bytes allocated to a directory or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::dmpFile (print_tpr,
uint32_t pos,
size_t n 
)
-
-inherited
-
-

Dump file in Hex

Parameters
- - - - -
[in]prPrint stream for list.
[in]posStart position in file.
[in]nnumber of locations to dump.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file in a directory

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-

The calling instance must be an open directory file.

-

dirFile.exists("TOFIND.TXT") searches for "TOFIND.TXT" in the directory dirFile.

-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int16_t FatFile::fgets (char * str,
int16_t num,
char * delim = 0 
)
-
-inherited
-
-

Get a string from a file.

-

fgets() reads bytes from a file into the array pointed to by str, until num - 1 bytes are read, or a delimiter is read and transferred to str, or end-of-file is encountered. The string is then terminated with a null byte.

-

fgets() deletes CR, '\r', from the string. This insures only a '\n' terminates the string for Windows text files which use CRLF for newline.

-
Parameters
- - - - -
[out]strPointer to the array where the string is stored.
[in]numMaximum number of characters to be read (including the final null byte). Usually the length of the array str is used.
[in]delimOptional set of delimiters. The default is "\n".
-
-
-
Returns
For success fgets() returns the length of the string in str. If no data is read, fgets() returns zero for EOF or -1 if an error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::fileAttr () const
-
-inlineinherited
-
-

Type of file. You should use isFile() or isDir() instead of fileType() if possible.

-
Returns
The file or directory type.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::fileSize () const
-
-inlineinherited
-
-
Returns
The total number of bytes in a file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstBlock ()
-
-inlineinherited
-
-
Returns
first block of file or zero for empty file.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatFile::firstCluster () const
-
-inlineinherited
-
-
Returns
The first cluster number for a file or directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
void PrintFile::flush ()
-
-inlineinherited
-
-

Ensure that any bytes written to the file are saved to the SD card.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatFile::getError ()
-
-inlineinherited
-
-
Returns
All error bits.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::getName (char * name,
size_t size 
)
-
-inherited
-
-

Get a file's name followed by a zero byte.

-
Parameters
- - - -
[out]nameAn array of characters for the file's name.
[in]sizeThe size of the array in bytes. The array must be at least 13 bytes long. The file's name will be truncated if the file's name is too long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::getpos (FatPos_tpos)
-
-inherited
-
-

get position for streams

Parameters
- - -
[out]posstruct to receive position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::getSFN (char * name)
-
-inherited
-
-

Get a file's Short File Name followed by a zero byte.

-
Parameters
- - -
[out]nameAn array of characters for the file's name. The array must be at least 13 bytes long.
-
-
-
Returns
The value true, is returned for success and the value false, is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::getWriteError ()
-
-inlineinherited
-
-
Returns
value of writeError
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isDir () const
-
-inlineinherited
-
-
Returns
True if this is a directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isFile () const
-
-inlineinherited
-
-
Returns
True if this is a normal file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isHidden () const
-
-inlineinherited
-
-
Returns
True if this is a hidden file else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isLFN () const
-
-inlineinherited
-
-
Returns
true if this file has a Long File Name.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isOpen () const
-
-inlineinherited
-
-
Returns
True if this is an open file/directory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isReadOnly () const
-
-inlineinherited
-
-
Returns
True if file is read-only
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot () const
-
-inlineinherited
-
-
Returns
True if this is the root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRoot32 () const
-
-inlineinherited
-
-
Returns
True if this is the FAT32 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isRootFixed () const
-
-inlineinherited
-
-
Returns
True if this is the FAT12 of FAT16 root directory.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSubDir () const
-
-inlineinherited
-
-
Returns
True if this is a subdirectory else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::isSystem () const
-
-inlineinherited
-
-
Returns
True if this is a system file else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::legal83Char (uint8_t c)
-
-inlinestaticinherited
-
-

Check for a legal 8.3 character.

Parameters
- - -
[in]cCharacter to be checked.
-
-
-
Returns
true for a legal 8.3 character else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List directory contents.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFile::ls (print_tpr,
uint8_t flags = 0,
uint8_t indent = 0 
)
-
-inherited
-
-

List directory contents.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

-
Parameters
- - -
[in]indentAmount of space before file name. Used for recursive list to indicate subdirectory level.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::mkdir (FatFiledir,
const char * path,
bool pFlag = true 
)
-
-inherited
-
-

Make a new directory.

-
Parameters
- - - - -
[in]dirAn open FatFile instance for the directory that will contain the new directory.
[in]pathA path with a valid 8.3 DOS name for the new directory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFileSystemfs,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file in the volume working directory of a FatFileSystem.

-
Parameters
- - - - -
[in]fsFile System where the file is located.
[in]pathwith a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
uint16_t index,
uint8_t oflag 
)
-
-inherited
-
-

Open a file by index.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory.
[in]indexThe index of the directory entry for the file to be opened. The value for index is (directory file position)/32.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-

See open() by path for definition of flags.

Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::open (FatFiledirFile,
const char * path,
uint8_t oflag 
)
-
-inherited
-
-

Open a file or directory by name.

-
Parameters
- - - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagValues for oflag are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

O_READ - Open for reading.

-

O_RDONLY - Same as O_READ.

-

O_WRITE - Open for writing.

-

O_WRONLY - Same as O_WRITE.

-

O_RDWR - Open for reading and writing.

-

O_APPEND - If set, the file offset shall be set to the end of the file prior to each write.

-

O_AT_END - Set the initial position at the end of the file.

-

O_CREAT - If the file exists, this flag has no effect except as noted under O_EXCL below. Otherwise, the file shall be created

-

O_EXCL - If O_CREAT and O_EXCL are set, open() shall fail if the file exists.

-

O_SYNC - Call sync() after each write. This flag should not be used with write(uint8_t) or any functions do character at a time writes since sync() will be called after each byte.

-

O_TRUNC - If the file exists and is a regular file, and the file is successfully opened and is not read only, its length shall be truncated to 0.

-

WARNING: A given file must not be opened by more than one FatFile object or file corruption may occur.

-
Note
Directory files must be opened read only. Write and truncation is not allowed for directory files.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::open (const char * path,
uint8_t oflag = O_READ 
)
-
-inlineinherited
-
-

Open a file in the current working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for a file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::openNext (FatFiledirFile,
uint8_t oflag = O_READ 
)
-
-inherited
-
-

Open the next file or subdirectory in a directory.

-
Parameters
- - - -
[in]dirFileAn open FatFile instance for the directory containing the file to be opened.
[in]oflagbitwise-inclusive OR of open mode flags. See see FatFile::open(FatFile*, const char*, uint8_t).
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::openRoot (FatVolumevol)
-
-inherited
-
-

Open a volume's root directory.

-
Parameters
- - -
[in]volThe FAT volume containing the root directory to be opened.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int PrintFile::peek ()
-
-inlineinherited
-
-

Return the next available byte without consuming it.

-
Returns
The byte if no error and not at eof else -1;
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printCreateDateTime (print_tpr)
-
-inherited
-
-

Print a file's creation date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatDate (uint16_t fatDate)
-
-inlinestaticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - -
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatDate (print_tpr,
uint16_t fatDate 
)
-
-staticinherited
-
-

Print a directory date field.

-

Format is yyyy-mm-dd.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatDateThe date field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
static void FatFile::printFatTime (uint16_t fatTime)
-
-inlinestaticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - -
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFile::printFatTime (print_tpr,
uint16_t fatTime 
)
-
-staticinherited
-
-

Print a directory time field.

-

Format is hh:mm:ss.

-
Parameters
- - - -
[in]prPrint stream for output.
[in]fatTimeThe time field from a directory entry.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int FatFile::printField (float value,
char term,
uint8_t prec = 2 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint16_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (int32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::printField (uint32_t value,
char term 
)
-
-inherited
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator. Use '\n' for CR LF.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printFileSize (print_tpr)
-
-inherited
-
-

Print a file's size.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::printModifyDateTime (print_tpr)
-
-inherited
-
-

Print a file's modify date and time

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
size_t FatFile::printName ()
-
-inlineinherited
-
-

Print a file's name.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printName (print_tpr)
-
-inherited
-
-

Print a file's name

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t FatFile::printSFN (print_tpr)
-
-inherited
-
-

Print a file's Short File Name.

-
Parameters
- - -
[in]prPrint stream for output.
-
-
-
Returns
The number of characters printed is returned for success and zero is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int FatFile::read ()
-
-inlineinherited
-
-

Read the next byte from a file.

-
Returns
For success read returns the next byte in the file as an int. If an error occurs or end of file is reached -1 is returned.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::read (void * buf,
size_t nbyte 
)
-
-inherited
-
-

Read data from a file starting at the current position.

-
Parameters
- - - -
[out]bufPointer to the location that will receive the data.
[in]nbyteMaximum number of bytes to read.
-
-
-
Returns
For success read() returns the number of bytes read. A value less than nbyte, including zero, will be returned if end of file is reached. If an error occurs, read() returns -1. Possible errors include read() called before a file has been opened, corrupt file system or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int8_t FatFile::readDir (dir_tdir)
-
-inherited
-
-

Read the next directory entry from a directory file.

-
Parameters
- - -
[out]dirThe dir_t struct that will receive the data.
-
-
-
Returns
For success readDir() returns the number of bytes read. A value of zero will be returned if end of file is reached. If an error occurs, readDir() returns -1. Possible errors include readDir() called before a directory has been opened, this is not a directory file or an I/O error occurred.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::remove ()
-
-inherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::remove (FatFiledirFile,
const char * path 
)
-
-staticinherited
-
-

Remove a file.

-

The directory entry and all data for the file are deleted.

-
Parameters
- - - -
[in]dirFileThe directory that contains the file.
[in]pathPath for the file to be removed.
-
-
-
Note
This function should not be used to delete the 8.3 version of a file that has a long name. For example if a file has the long name "New Text Document.txt" you should not delete the 8.3 name "NEWTEX~1.TXT".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFile::rename (FatFiledirFile,
const char * newPath 
)
-
-inherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]dirFileDirectory for the new path.
[in]newPathNew path name for the file/directory.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFile::rewind ()
-
-inlineinherited
-
-

Set the file's current position to zero.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmdir ()
-
-inherited
-
-

Remove a directory file.

-

The directory file will be removed only if it is empty and is not the root directory. rmdir() follows DOS and Windows and ignores the read-only attribute for the directory.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. For example if a directory has the long name "New folder" you should not delete the 8.3 name "NEWFOL~1".
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::rmRfStar ()
-
-inherited
-
-

Recursively delete a directory and all contained files.

-

This is like the Unix/Linux 'rm -rf *' if called with the root directory hence the name.

-

Warning - This will remove all contents of the directory including subdirectories. The directory will then be removed if it is not root. The read-only attribute for files will be ignored.

-
Note
This function should not be used to delete the 8.3 version of a directory that has a long name. See remove() and rmdir().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekCur (int32_t offset)
-
-inlineinherited
-
-

Set the files position to current position + pos. See seekSet().

Parameters
- - -
[in]offsetThe new position in bytes from the current position.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekEnd (int32_t offset = 0)
-
-inlineinherited
-
-

Set the files position to end-of-file + offset. See seekSet(). Can't be used for directory files since file size is not defined.

Parameters
- - -
[in]offsetThe new position in bytes from end-of-file.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::seekSet (uint32_t pos)
-
-inherited
-
-

Sets a file's position.

-
Parameters
- - -
[in]posThe new position in bytes from the beginning of the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
static bool FatFile::setCwd (FatFiledir)
-
-inlinestaticinherited
-
-

Set the current working directory.

-
Parameters
- - -
[in]dirNew current working directory.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFile::setpos (FatPos_tpos)
-
-inherited
-
-

set position for streams

Parameters
- - -
[out]posstruct with value for new position
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatFile::sync ()
-
-inherited
-
-

The sync() call causes all modified data and directory fields to be written to the storage device.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::timestamp (FatFilefile)
-
-inherited
-
-

Copy a file's timestamps

-
Parameters
- - -
[in]fileFile to copy timestamps from.
-
-
-
Note
Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool FatFile::timestamp (uint8_t flags,
uint16_t year,
uint8_t month,
uint8_t day,
uint8_t hour,
uint8_t minute,
uint8_t second 
)
-
-inherited
-
-

Set a file's timestamps in its directory entry.

-
Parameters
- - -
[in]flagsValues for flags are constructed by a bitwise-inclusive OR of flags from the following list
-
-
-

T_ACCESS - Set the file's last access date.

-

T_CREATE - Set the file's creation date and time.

-

T_WRITE - Set the file's last write/modification date and time.

-
Parameters
- - - - - - - -
[in]yearValid range 1980 - 2107 inclusive.
[in]monthValid range 1 - 12 inclusive.
[in]dayValid range 1 - 31 inclusive.
[in]hourValid range 0 - 23 inclusive.
[in]minuteValid range 0 - 59 inclusive.
[in]secondValid range 0 - 59 inclusive
-
-
-
Note
It is possible to set an invalid date since there is no check for the number of days in a month.
-
-Modify and access timestamps may be overwritten if a date time callback function has been set by dateTimeCallback().
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFile::truncate (uint32_t length)
-
-inherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - -
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFile::volume () const
-
-inlineinherited
-
-
Returns
FatVolume that contains this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t PrintFile::write (uint8_t b)
-
-inlineinherited
-
-

Read the next byte from a file.

-
Returns
For success return the next byte in the file as an int. If an error occurs or end of file is reached return -1. Write a byte to a file. Required by the Arduino Print class.
-
Parameters
- - -
[in]bthe byte to be written. Use getWriteError to check for errors.
-
-
-
Returns
1 for success and 0 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_t PrintFile::write (const uint8_t * buf,
size_t size 
)
-
-inlineinherited
-
-

Write data to an open file. Form required by Print.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]sizeNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int FatFile::write (const char * str)
-
-inlineinherited
-
-

Write a string to a file. Used by the Arduino Print class.

Parameters
- - -
[in]strPointer to the string. Use getWriteError to check for errors.
-
-
-
Returns
count of characters written for success or -1 for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int FatFile::write (const void * buf,
size_t nbyte 
)
-
-inherited
-
-

Write data to an open file.

-
Note
Data is moved to the cache but may not be written to the storage device until sync() is called.
-
Parameters
- - - -
[in]bufPointer to the location of the data to be written.
[in]nbyteNumber of bytes to write.
-
-
-
Returns
For success write() returns the number of bytes written, always nbyte. If an error occurs, write() returns -1. Possible errors include write() is called before a file has been opened, write is called for a read-only file, device is full, a corrupt file system or an I/O error.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_file__coll__graph.png b/libraries/SdFat/extras/html/class_sd_file__coll__graph.png deleted file mode 100644 index 5112d4b..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_file__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_file__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_file__inherit__graph.png deleted file mode 100644 index 5112d4b..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_file__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_file_system-members.html b/libraries/SdFat/extras/html/class_sd_file_system-members.html deleted file mode 100644 index a73d5a8..0000000 --- a/libraries/SdFat/extras/html/class_sd_file_system-members.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdFileSystem< SdDriverClass > Member List
-
-
- -

This is the complete list of members for SdFileSystem< SdDriverClass >, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin()SdFileSystem< SdDriverClass >inline
FatFileSystem::begin(BlockDriver *blockDev, uint8_t part=0)FatFileSysteminline
blocksPerCluster() const FatVolumeinline
blocksPerFat() const FatVolumeinline
cacheClear()FatVolumeinline
card()SdFileSystem< SdDriverClass >inline
cardErrorCode()SdFileSystem< SdDriverClass >inline
cardErrorData()SdFileSystem< SdDriverClass >inline
chdir(bool set_cwd=false)FatFileSysteminline
chdir(const char *path, bool set_cwd=false)FatFileSysteminline
chvol()FatFileSysteminline
clusterCount() const FatVolumeinline
clusterSizeShift() const FatVolumeinline
dataStartBlock() const FatVolumeinline
dbgFat(uint32_t n, uint32_t *v)FatVolumeinline
errorHalt()SdFileSystem< SdDriverClass >inline
errorHalt(Print *pr)SdFileSystem< SdDriverClass >inline
errorHalt(char const *msg)SdFileSystem< SdDriverClass >inline
errorHalt(Print *pr, char const *msg)SdFileSystem< SdDriverClass >inline
errorHalt(const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
errorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
errorPrint()SdFileSystem< SdDriverClass >inline
errorPrint(Print *pr)SdFileSystem< SdDriverClass >inline
errorPrint(const char *msg)SdFileSystem< SdDriverClass >inline
errorPrint(Print *pr, char const *msg)SdFileSystem< SdDriverClass >inline
errorPrint(const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
errorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
exists(const char *path)FatFileSysteminline
fatCount()FatVolumeinline
fatStartBlock() const FatVolumeinline
fatType() const FatVolumeinline
FatVolume()FatVolumeinline
freeClusterCount()FatVolume
init()FatVolumeinline
init(uint8_t part)FatVolume
initErrorHalt()SdFileSystem< SdDriverClass >inline
initErrorHalt(Print *pr)SdFileSystem< SdDriverClass >inline
initErrorHalt(char const *msg)SdFileSystem< SdDriverClass >inline
initErrorHalt(Print *pr, char const *msg)SdFileSystem< SdDriverClass >inline
initErrorHalt(const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
initErrorHalt(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
initErrorPrint()SdFileSystem< SdDriverClass >inline
initErrorPrint(Print *pr)SdFileSystem< SdDriverClass >inline
initErrorPrint(char const *msg)SdFileSystem< SdDriverClass >inline
initErrorPrint(Print *pr, char const *msg)SdFileSystem< SdDriverClass >inline
initErrorPrint(const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
initErrorPrint(Print *pr, const __FlashStringHelper *msg)SdFileSystem< SdDriverClass >inline
ls(uint8_t flags=0)FatFileSysteminline
ls(const char *path, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, uint8_t flags=0)FatFileSysteminline
ls(print_t *pr, const char *path, uint8_t flags)FatFileSysteminline
mkdir(const char *path, bool pFlag=true)FatFileSysteminline
open(const char *path, uint8_t mode=FILE_READ)FatFileSysteminline
open(const String &path, uint8_t mode=FILE_READ)FatFileSysteminline
remove(const char *path)FatFileSysteminline
rename(const char *oldPath, const char *newPath)FatFileSysteminline
rmdir(const char *path)FatFileSysteminline
rootDirEntryCount() const FatVolumeinline
rootDirStart() const FatVolumeinline
truncate(const char *path, uint32_t length)FatFileSysteminline
vol()FatFileSysteminline
volumeBlockCount() const FatVolumeinline
vwd()FatFileSysteminline
wipe(print_t *pr=0)FatFileSysteminline
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_file_system.html b/libraries/SdFat/extras/html/class_sd_file_system.html deleted file mode 100644 index 299e676..0000000 --- a/libraries/SdFat/extras/html/class_sd_file_system.html +++ /dev/null @@ -1,2344 +0,0 @@ - - - - - - -SdFat: SdFileSystem< SdDriverClass > Class Template Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdFileSystem< SdDriverClass > Class Template Reference
-
-
- -

Virtual base class for SdFat library. - More...

- -

#include <SdFat.h>

-
-Inheritance diagram for SdFileSystem< SdDriverClass >:
-
-
Inheritance graph
- - - - -
[legend]
-
-Collaboration diagram for SdFileSystem< SdDriverClass >:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (BlockDriver *blockDev, uint8_t part=0)
 
bool begin ()
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
SdDriverClass * card ()
 
uint8_t cardErrorCode ()
 
uint32_t cardErrorData ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
void errorHalt ()
 
void errorHalt (Print *pr)
 
void errorHalt (char const *msg)
 
void errorHalt (Print *pr, char const *msg)
 
void errorHalt (const __FlashStringHelper *msg)
 
void errorHalt (Print *pr, const __FlashStringHelper *msg)
 
void errorPrint ()
 
void errorPrint (Print *pr)
 
void errorPrint (const char *msg)
 
void errorPrint (Print *pr, char const *msg)
 
void errorPrint (const __FlashStringHelper *msg)
 
void errorPrint (Print *pr, const __FlashStringHelper *msg)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool init ()
 
bool init (uint8_t part)
 
void initErrorHalt ()
 
void initErrorHalt (Print *pr)
 
void initErrorHalt (char const *msg)
 
void initErrorHalt (Print *pr, char const *msg)
 
void initErrorHalt (const __FlashStringHelper *msg)
 
void initErrorHalt (Print *pr, const __FlashStringHelper *msg)
 
void initErrorPrint ()
 
void initErrorPrint (Print *pr)
 
void initErrorPrint (char const *msg)
 
void initErrorPrint (Print *pr, char const *msg)
 
void initErrorPrint (const __FlashStringHelper *msg)
 
void initErrorPrint (Print *pr, const __FlashStringHelper *msg)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
File open (const String &path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 
-

Detailed Description

-

template<class SdDriverClass>
-class SdFileSystem< SdDriverClass >

- -

Virtual base class for SdFat library.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::begin (BlockDriverblockDev,
uint8_t part = 0 
)
-
-inlineinherited
-
-

Initialize an FatFileSystem object.

Parameters
- - - -
[in]blockDevDevice block driver.
[in]partpartition to initialize.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
bool SdFileSystem< SdDriverClass >::begin ()
-
-inline
-
-

Initialize file system.

Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::blocksPerCluster () const
-
-inlineinherited
-
-
Returns
The volume's cluster size in blocks.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::blocksPerFat () const
-
-inlineinherited
-
-
Returns
The number of blocks in one FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
cache_t* FatVolume::cacheClear ()
-
-inlineinherited
-
-

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
SdDriverClass* SdFileSystem< SdDriverClass >::card ()
-
-inline
-
-
Returns
Pointer to SD card object
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
uint8_t SdFileSystem< SdDriverClass >::cardErrorCode ()
-
-inline
-
-
Returns
The card error code
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
uint32_t SdFileSystem< SdDriverClass >::cardErrorData ()
-
-inline
-
-
Returns
the card error data
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::chdir (bool set_cwd = false)
-
-inlineinherited
-
-

Change a volume's working directory to root

-

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

-
Parameters
- - -
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::chdir (const char * path,
bool set_cwd = false 
)
-
-inlineinherited
-
-

Change a volume's working directory

-

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

-

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

-

If path is "/", the volume's working directory will be changed to the root directory

-
Parameters
- - - -
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void FatFileSystem::chvol ()
-
-inlineinherited
-
-

Set the current working directory to a volume's working directory.

-

This is useful with multiple SD cards.

-

The current working directory is changed to this volume's working directory.

-

This is like the Windows/DOS <drive letter>: command.

- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::clusterCount () const
-
-inlineinherited
-
-
Returns
The total number of clusters in the volume.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::clusterSizeShift () const
-
-inlineinherited
-
-
Returns
The shift count required to multiply by blocksPerCluster.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::dataStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of file data.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int8_t FatVolume::dbgFat (uint32_t n,
uint32_t * v 
)
-
-inlineinherited
-
-

Debug access to FAT table

-
Parameters
- - - -
[in]ncluster number.
[out]vvalue of entry
-
-
-
Returns
true for success or false for failure
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
void SdFileSystem< SdDriverClass >::errorHalt ()
-
-inline
-
-

Print any SD error code to Serial and halt.

- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::errorHalt (Print * pr)
-
-inline
-
-

Print any SD error code and halt.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::errorHalt (char const * msg)
-
-inline
-
-

Print msg, any SD error code and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::errorHalt (Print * pr,
char const * msg 
)
-
-inline
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::errorHalt (const __FlashStringHelper * msg)
-
-inline
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::errorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inline
-
-

Print msg, any SD error code, and halt.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
void SdFileSystem< SdDriverClass >::errorPrint ()
-
-inline
-
-

Print any SD error code to Serial

- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::errorPrint (Print * pr)
-
-inline
-
-

Print any SD error code.

Parameters
- - -
[in]prPrint device.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::errorPrint (const char * msg)
-
-inline
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::errorPrint (Print * pr,
char const * msg 
)
-
-inline
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::errorPrint (const __FlashStringHelper * msg)
-
-inline
-
-

Print msg, any SD error code.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::errorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inline
-
-

Print msg, any SD error code.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::exists (const char * path)
-
-inlineinherited
-
-

Test for the existence of a file.

-
Parameters
- - -
[in]pathPath of the file to be tested for.
-
-
-
Returns
true if the file exists else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatCount ()
-
-inlineinherited
-
-
Returns
The number of File Allocation Tables.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::fatStartBlock () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the first FAT.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint8_t FatVolume::fatType () const
-
-inlineinherited
-
-
Returns
The FAT type of the volume. Values are 12, 16 or 32.
- -
-
- -
-
- - - - - -
- - - - - - - -
int32_t FatVolume::freeClusterCount ()
-
-inherited
-
-

Volume free space in clusters.

-
Returns
Count of free clusters for success or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool FatVolume::init ()
-
-inlineinherited
-
-

Initialize a FAT volume. Try partition one first then try super floppy format.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatVolume::init (uint8_t part)
-
-inherited
-
-

Initialize a FAT volume.

-
Parameters
- - -
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorHalt ()
-
-inline
-
-

Print any SD error code and halt.

- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorHalt (Print * pr)
-
-inline
-
-

Print error details and halt after begin fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorHalt (char const * msg)
-
-inline
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorHalt (Print * pr,
char const * msg 
)
-
-inline
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device.
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorHalt (const __FlashStringHelper * msg)
-
-inline
-
-

Print message, error details, and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorHalt (Print * pr,
const __FlashStringHelper * msg 
)
-
-inline
-
-

Print message, error details, and halt after begin() fails.

Parameters
- - - -
[in]prPrint device for message.
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorPrint ()
-
-inline
-
-

Print error details after begin() fails.

- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorPrint (Print * pr)
-
-inline
-
-

Print error details after begin() fails.

-
Parameters
- - -
[in]prPrint destination.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorPrint (char const * msg)
-
-inline
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorPrint (Print * pr,
char const * msg 
)
-
-inline
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorPrint (const __FlashStringHelper * msg)
-
-inline
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - -
[in]msgMessage to print.
-
-
- -
-
- -
-
-
-template<class SdDriverClass>
- - - - - -
- - - - - - - - - - - - - - - - - - -
void SdFileSystem< SdDriverClass >::initErrorPrint (Print * pr,
const __FlashStringHelper * msg 
)
-
-inline
-
-

Print message and error details and halt after begin() fails.

-
Parameters
- - - -
[in]prPrint destination.
[in]msgMessage to print.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void FatFileSystem::ls (uint8_t flags = 0)
-
-inlineinherited
-
-

List the directory contents of the volume working directory to Serial.

-
Parameters
- - -
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (const char * path,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of a directory to Serial.

-
Parameters
- - - -
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
uint8_t flags = 0 
)
-
-inlineinherited
-
-

List the directory contents of the volume working directory.

-
Parameters
- - - -
[in]prPrint stream for list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
void FatFileSystem::ls (print_tpr,
const char * path,
uint8_t flags 
)
-
-inlineinherited
-
-

List the directory contents of a directory.

-
Parameters
- - - - -
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of
-
-
-

LS_DATE - Print file modification date

-

LS_SIZE - Print file size.

-

LS_R - Recursive list of subdirectories.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::mkdir (const char * path,
bool pFlag = true 
)
-
-inlineinherited
-
-

Make a subdirectory in the volume working directory.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const char * path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
File FatFileSystem::open (const String & path,
uint8_t mode = FILE_READ 
)
-
-inlineinherited
-
-

open a file

-
Parameters
- - - -
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
-
-
-
Returns
a File object.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::remove (const char * path)
-
-inlineinherited
-
-

Remove a file from the volume working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::rename (const char * oldPath,
const char * newPath 
)
-
-inlineinherited
-
-

Rename a file or subdirectory.

-
Parameters
- - - -
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.
-
-
-

The newPath object must not exist before the rename call.

-

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::rmdir (const char * path)
-
-inlineinherited
-
-

Remove a subdirectory from the volume's working directory.

-
Parameters
- - -
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
-
-
-

The subdirectory file will be removed only if it is empty.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint16_t FatVolume::rootDirEntryCount () const
-
-inlineinherited
-
-
Returns
The number of entries in the root directory for FAT16 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::rootDirStart () const
-
-inlineinherited
-
-
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool FatFileSystem::truncate (const char * path,
uint32_t length 
)
-
-inlineinherited
-
-

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

-
Parameters
- - - -
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
FatVolume* FatFileSystem::vol ()
-
-inlineinherited
-
-
Returns
a pointer to the FatVolume object.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t FatVolume::volumeBlockCount () const
-
-inlineinherited
-
-
Returns
The number of blocks in the volume
- -
-
- -
-
- - - - - -
- - - - - - - -
FatFile* FatFileSystem::vwd ()
-
-inlineinherited
-
-
Returns
a pointer to the volume working directory.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool FatFileSystem::wipe (print_tpr = 0)
-
-inlineinherited
-
-

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
- - -
[in]prprint stream for status dots.
-
-
-
Returns
true for success else false.
- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdFat.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_file_system__coll__graph.png b/libraries/SdFat/extras/html/class_sd_file_system__coll__graph.png deleted file mode 100644 index 1eb49f1..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_file_system__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_file_system__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_file_system__inherit__graph.png deleted file mode 100644 index 1eb49f1..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_file_system__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_spi_card-members.html b/libraries/SdFat/extras/html/class_sd_spi_card-members.html deleted file mode 100644 index e318e6a..0000000 --- a/libraries/SdFat/extras/html/class_sd_spi_card-members.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdSpiCard Member List
-
-
- -

This is the complete list of members for SdSpiCard, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(SdSpiDriver *spi, uint8_t csPin, SPISettings spiSettings)SdSpiCard
cardSize()SdSpiCard
erase(uint32_t firstBlock, uint32_t lastBlock)SdSpiCard
eraseSingleBlockEnable()SdSpiCard
error(uint8_t code)SdSpiCardinline
errorCode() const SdSpiCardinline
errorData() const SdSpiCardinline
isBusy()SdSpiCard
readBlock(uint32_t lba, uint8_t *dst)SdSpiCard
readBlocks(uint32_t lba, uint8_t *dst, size_t nb)SdSpiCard
readCID(cid_t *cid)SdSpiCardinline
readCSD(csd_t *csd)SdSpiCardinline
readData(uint8_t *dst)SdSpiCard
readOCR(uint32_t *ocr)SdSpiCard
readStart(uint32_t blockNumber)SdSpiCard
readStatus(uint8_t *status)SdSpiCard
readStop()SdSpiCard
SdSpiCard()SdSpiCardinline
spiStart()SdSpiCard
spiStop()SdSpiCard
syncBlocks()SdSpiCardinline
type() const SdSpiCardinline
writeBlock(uint32_t lba, const uint8_t *src)SdSpiCard
writeBlocks(uint32_t lba, const uint8_t *src, size_t nb)SdSpiCard
writeData(const uint8_t *src)SdSpiCard
writeStart(uint32_t blockNumber)SdSpiCard
writeStart(uint32_t blockNumber, uint32_t eraseCount)SdSpiCard
writeStop()SdSpiCard
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_spi_card.html b/libraries/SdFat/extras/html/class_sd_spi_card.html deleted file mode 100644 index 406a316..0000000 --- a/libraries/SdFat/extras/html/class_sd_spi_card.html +++ /dev/null @@ -1,923 +0,0 @@ - - - - - - -SdFat: SdSpiCard Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdSpiCard Class Reference
-
-
- -

Raw access to SD and SDHC flash memory cards via SPI protocol. - More...

- -

#include <SdSpiCard.h>

-
-Inheritance diagram for SdSpiCard:
-
-
Inheritance graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (SdSpiDriver *spi, uint8_t csPin, SPISettings spiSettings)
 
uint32_t cardSize ()
 
bool erase (uint32_t firstBlock, uint32_t lastBlock)
 
bool eraseSingleBlockEnable ()
 
void error (uint8_t code)
 
int errorCode () const
 
int errorData () const
 
bool isBusy ()
 
bool readBlock (uint32_t lba, uint8_t *dst)
 
bool readBlocks (uint32_t lba, uint8_t *dst, size_t nb)
 
bool readCID (cid_t *cid)
 
bool readCSD (csd_t *csd)
 
bool readData (uint8_t *dst)
 
bool readOCR (uint32_t *ocr)
 
bool readStart (uint32_t blockNumber)
 
bool readStatus (uint8_t *status)
 
bool readStop ()
 
 SdSpiCard ()
 
void spiStart ()
 
void spiStop ()
 
bool syncBlocks ()
 
int type () const
 
bool writeBlock (uint32_t lba, const uint8_t *src)
 
bool writeBlocks (uint32_t lba, const uint8_t *src, size_t nb)
 
bool writeData (const uint8_t *src)
 
bool writeStart (uint32_t blockNumber)
 
bool writeStart (uint32_t blockNumber, uint32_t eraseCount)
 
bool writeStop ()
 
-

Detailed Description

-

Raw access to SD and SDHC flash memory cards via SPI protocol.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
SdSpiCard::SdSpiCard ()
-
-inline
-
-

Construct an instance of SdSpiCard.

- -
-
-

Member Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCard::begin (SdSpiDriver * spi,
uint8_t csPin,
SPISettings spiSettings 
)
-
-

Initialize the SD card.

Parameters
- - - - -
[in]spiSPI driver for card.
[in]csPincard chip select pin.
[in]spiSettingsSPI speed, mode, and bit order.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - - - -
uint32_t SdSpiCard::cardSize ()
-
-

Determine the size of an SD flash memory card.

-
Returns
The number of 512 byte data blocks in the card or zero if an error occurs.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::erase (uint32_t firstBlock,
uint32_t lastBlock 
)
-
-

Erase a range of blocks.

-
Parameters
- - - -
[in]firstBlockThe address of the first block in the range.
[in]lastBlockThe address of the last block in the range.
-
-
-
Note
This function requests the SD card to do a flash erase for a range of blocks. The data on the card after an erase operation is either 0 or 1, depends on the card vendor. The card must support single block erase.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - -
bool SdSpiCard::eraseSingleBlockEnable ()
-
-

Determine if card supports single block erase.

-
Returns
true is returned if single block erase is supported. false is returned if single block erase is not supported.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdSpiCard::error (uint8_t code)
-
-inline
-
-

Set SD error code.

Parameters
- - -
[in]codevalue for error code.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::errorCode () const
-
-inline
-
-
Returns
code for the last error. See SdInfo.h for a list of error codes.
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::errorData () const
-
-inline
-
-
Returns
error data for last error.
- -
-
- -
-
- - - - - - - -
bool SdSpiCard::isBusy ()
-
-

Check for busy. MISO low indicates the card is busy.

-
Returns
true if busy else false.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::readBlock (uint32_t lba,
uint8_t * dst 
)
-
-

Read a 512 byte block from an SD card.

-
Parameters
- - - -
[in]lbaLogical block to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCard::readBlocks (uint32_t lba,
uint8_t * dst,
size_t nb 
)
-
-

Read multiple 512 byte blocks from an SD card.

-
Parameters
- - - - -
[in]lbaLogical block to be read.
[in]nbNumber of blocks to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readCID (cid_t * cid)
-
-inline
-
-

Read a card's CID register. The CID contains card identification information such as Manufacturer ID, Product name, Product serial number and Manufacturing date.

-
Parameters
- - -
[out]cidpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readCSD (csd_t * csd)
-
-inline
-
-

Read a card's CSD register. The CSD contains Card-Specific Data that provides information regarding access to the card's contents.

-
Parameters
- - -
[out]csdpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - - - - -
bool SdSpiCard::readData (uint8_t * dst)
-
-

Read one data block in a multiple block read sequence

-
Parameters
- - -
[out]dstPointer to the location for the data to be read.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool SdSpiCard::readOCR (uint32_t * ocr)
-
-

Read OCR register.

-
Parameters
- - -
[out]ocrValue of OCR register.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - - - - -
bool SdSpiCard::readStart (uint32_t blockNumber)
-
-

Start a read multiple blocks sequence.

-
Parameters
- - -
[in]blockNumberAddress of first block in sequence.
-
-
-
Note
This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool SdSpiCard::readStatus (uint8_t * status)
-
-

Return the 64 byte card status

Parameters
- - -
[out]statuslocation for 64 status bytes.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - -
bool SdSpiCard::readStop ()
-
-

End a read multiple blocks sequence.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - -
void SdSpiCard::spiStart ()
-
-

Set CS low and activate the card.

- -
-
- -
-
- - - - - - - -
void SdSpiCard::spiStop ()
-
-

Set CS high and deactivate the card.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::syncBlocks ()
-
-inline
-
-
Returns
success if sync successful. Not for user apps.
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::type () const
-
-inline
-
-

Return the card type: SD V1, SD V2 or SDHC

Returns
0 - SD V1, 1 - SD V2, or 3 - SDHC.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::writeBlock (uint32_t lba,
const uint8_t * src 
)
-
-

Writes a 512 byte block to an SD card.

-
Parameters
- - - -
[in]lbaLogical block to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCard::writeBlocks (uint32_t lba,
const uint8_t * src,
size_t nb 
)
-
-

Write multiple 512 byte blocks to an SD card.

-
Parameters
- - - - -
[in]lbaLogical block to be written.
[in]nbNumber of blocks to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool SdSpiCard::writeData (const uint8_t * src)
-
-

Write one data block in a multiple block write sequence.

Parameters
- - -
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - -
bool SdSpiCard::writeStart (uint32_t blockNumber)
-
-

Start a write multiple blocks sequence.

-
Parameters
- - -
[in]blockNumberAddress of first block in sequence.
-
-
-
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::writeStart (uint32_t blockNumber,
uint32_t eraseCount 
)
-
-

Start a write multiple blocks sequence with pre-erase.

-
Parameters
- - - -
[in]blockNumberAddress of first block in sequence.
[in]eraseCountThe number of blocks to be pre-erased.
-
-
-
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - -
bool SdSpiCard::writeStop ()
-
-

End a write multiple blocks sequence.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/SdCard/SdSpiCard.h
  • -
  • Arduino/libraries/SdFat/src/SdCard/SdSpiCard.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_spi_card__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_spi_card__inherit__graph.png deleted file mode 100644 index 4f96ac4..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_spi_card__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_spi_card_e_x-members.html b/libraries/SdFat/extras/html/class_sd_spi_card_e_x-members.html deleted file mode 100644 index 1c12ae7..0000000 --- a/libraries/SdFat/extras/html/class_sd_spi_card_e_x-members.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdSpiCardEX Member List
-
-
- -

This is the complete list of members for SdSpiCardEX, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
begin(SdSpiDriver *spi, uint8_t csPin, SPISettings spiSettings)SdSpiCardEXinline
cardSize()SdSpiCard
erase(uint32_t firstBlock, uint32_t lastBlock)SdSpiCard
eraseSingleBlockEnable()SdSpiCard
error(uint8_t code)SdSpiCardinline
errorCode() const SdSpiCardinline
errorData() const SdSpiCardinline
isBusy()SdSpiCard
readBlock(uint32_t block, uint8_t *dst)SdSpiCardEX
readBlocks(uint32_t block, uint8_t *dst, size_t nb)SdSpiCardEX
readCID(cid_t *cid)SdSpiCardinline
readCSD(csd_t *csd)SdSpiCardinline
readData(uint8_t *dst)SdSpiCard
readOCR(uint32_t *ocr)SdSpiCard
readStart(uint32_t blockNumber)SdSpiCard
readStatus(uint8_t *status)SdSpiCard
readStop()SdSpiCard
SdSpiCard()SdSpiCardinline
spiStart()SdSpiCard
spiStop()SdSpiCard
syncBlocks()SdSpiCardEX
type() const SdSpiCardinline
writeBlock(uint32_t block, const uint8_t *src)SdSpiCardEX
writeBlocks(uint32_t block, const uint8_t *src, size_t nb)SdSpiCardEX
writeData(const uint8_t *src)SdSpiCard
writeStart(uint32_t blockNumber)SdSpiCard
writeStart(uint32_t blockNumber, uint32_t eraseCount)SdSpiCard
writeStop()SdSpiCard
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_spi_card_e_x.html b/libraries/SdFat/extras/html/class_sd_spi_card_e_x.html deleted file mode 100644 index 722e4f0..0000000 --- a/libraries/SdFat/extras/html/class_sd_spi_card_e_x.html +++ /dev/null @@ -1,1024 +0,0 @@ - - - - - - -SdFat: SdSpiCardEX Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdSpiCardEX Class Reference
-
-
- -

Extended SD I/O block driver. - More...

- -

#include <SdSpiCard.h>

-
-Inheritance diagram for SdSpiCardEX:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for SdSpiCardEX:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin (SdSpiDriver *spi, uint8_t csPin, SPISettings spiSettings)
 
uint32_t cardSize ()
 
bool erase (uint32_t firstBlock, uint32_t lastBlock)
 
bool eraseSingleBlockEnable ()
 
void error (uint8_t code)
 
int errorCode () const
 
int errorData () const
 
bool isBusy ()
 
bool readBlock (uint32_t block, uint8_t *dst)
 
bool readBlocks (uint32_t block, uint8_t *dst, size_t nb)
 
bool readCID (cid_t *cid)
 
bool readCSD (csd_t *csd)
 
bool readData (uint8_t *dst)
 
bool readOCR (uint32_t *ocr)
 
bool readStart (uint32_t blockNumber)
 
bool readStatus (uint8_t *status)
 
bool readStop ()
 
void spiStart ()
 
void spiStop ()
 
bool syncBlocks ()
 
int type () const
 
bool writeBlock (uint32_t block, const uint8_t *src)
 
bool writeBlocks (uint32_t block, const uint8_t *src, size_t nb)
 
bool writeData (const uint8_t *src)
 
bool writeStart (uint32_t blockNumber)
 
bool writeStart (uint32_t blockNumber, uint32_t eraseCount)
 
bool writeStop ()
 
-

Detailed Description

-

Extended SD I/O block driver.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCardEX::begin (SdSpiDriver * spi,
uint8_t csPin,
SPISettings spiSettings 
)
-
-inline
-
-

Initialize the SD card

-
Parameters
- - - - -
[in]spiSPI driver.
[in]csPinCard chip select pin number.
[in]spiSettingsSPI speed, mode, and bit order.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
uint32_t SdSpiCard::cardSize ()
-
-inherited
-
-

Determine the size of an SD flash memory card.

-
Returns
The number of 512 byte data blocks in the card or zero if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::erase (uint32_t firstBlock,
uint32_t lastBlock 
)
-
-inherited
-
-

Erase a range of blocks.

-
Parameters
- - - -
[in]firstBlockThe address of the first block in the range.
[in]lastBlockThe address of the last block in the range.
-
-
-
Note
This function requests the SD card to do a flash erase for a range of blocks. The data on the card after an erase operation is either 0 or 1, depends on the card vendor. The card must support single block erase.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::eraseSingleBlockEnable ()
-
-inherited
-
-

Determine if card supports single block erase.

-
Returns
true is returned if single block erase is supported. false is returned if single block erase is not supported.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void SdSpiCard::error (uint8_t code)
-
-inlineinherited
-
-

Set SD error code.

Parameters
- - -
[in]codevalue for error code.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::errorCode () const
-
-inlineinherited
-
-
Returns
code for the last error. See SdInfo.h for a list of error codes.
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::errorData () const
-
-inlineinherited
-
-
Returns
error data for last error.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::isBusy ()
-
-inherited
-
-

Check for busy. MISO low indicates the card is busy.

-
Returns
true if busy else false.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool SdSpiCardEX::readBlock (uint32_t block,
uint8_t * dst 
)
-
-

Read a 512 byte block from an SD card.

-
Parameters
- - - -
[in]blockLogical block to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCardEX::readBlocks (uint32_t block,
uint8_t * dst,
size_t nb 
)
-
-

Read multiple 512 byte blocks from an SD card.

-
Parameters
- - - - -
[in]blockLogical block to be read.
[in]nbNumber of blocks to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readCID (cid_t * cid)
-
-inlineinherited
-
-

Read a card's CID register. The CID contains card identification information such as Manufacturer ID, Product name, Product serial number and Manufacturing date.

-
Parameters
- - -
[out]cidpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readCSD (csd_t * csd)
-
-inlineinherited
-
-

Read a card's CSD register. The CSD contains Card-Specific Data that provides information regarding access to the card's contents.

-
Parameters
- - -
[out]csdpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readData (uint8_t * dst)
-
-inherited
-
-

Read one data block in a multiple block read sequence

-
Parameters
- - -
[out]dstPointer to the location for the data to be read.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readOCR (uint32_t * ocr)
-
-inherited
-
-

Read OCR register.

-
Parameters
- - -
[out]ocrValue of OCR register.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readStart (uint32_t blockNumber)
-
-inherited
-
-

Start a read multiple blocks sequence.

-
Parameters
- - -
[in]blockNumberAddress of first block in sequence.
-
-
-
Note
This function is used with readData() and readStop() for optimized multiple block reads. SPI chipSelect must be low for the entire sequence.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::readStatus (uint8_t * status)
-
-inherited
-
-

Return the 64 byte card status

Parameters
- - -
[out]statuslocation for 64 status bytes.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::readStop ()
-
-inherited
-
-

End a read multiple blocks sequence.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
void SdSpiCard::spiStart ()
-
-inherited
-
-

Set CS low and activate the card.

- -
-
- -
-
- - - - - -
- - - - - - - -
void SdSpiCard::spiStop ()
-
-inherited
-
-

Set CS high and deactivate the card.

- -
-
- -
-
- - - - - - - -
bool SdSpiCardEX::syncBlocks ()
-
-

End multi-block transfer and go to idle state.

Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
int SdSpiCard::type () const
-
-inlineinherited
-
-

Return the card type: SD V1, SD V2 or SDHC

Returns
0 - SD V1, 1 - SD V2, or 3 - SDHC.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool SdSpiCardEX::writeBlock (uint32_t block,
const uint8_t * src 
)
-
-

Writes a 512 byte block to an SD card.

-
Parameters
- - - -
[in]blockLogical block to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdSpiCardEX::writeBlocks (uint32_t block,
const uint8_t * src,
size_t nb 
)
-
-

Write multiple 512 byte blocks to an SD card.

-
Parameters
- - - - -
[in]blockLogical block to be written.
[in]nbNumber of blocks to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::writeData (const uint8_t * src)
-
-inherited
-
-

Write one data block in a multiple block write sequence.

Parameters
- - -
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
bool SdSpiCard::writeStart (uint32_t blockNumber)
-
-inherited
-
-

Start a write multiple blocks sequence.

-
Parameters
- - -
[in]blockNumberAddress of first block in sequence.
-
-
-
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdSpiCard::writeStart (uint32_t blockNumber,
uint32_t eraseCount 
)
-
-inherited
-
-

Start a write multiple blocks sequence with pre-erase.

-
Parameters
- - - -
[in]blockNumberAddress of first block in sequence.
[in]eraseCountThe number of blocks to be pre-erased.
-
-
-
Note
This function is used with writeData() and writeStop() for optimized multiple block writes.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdSpiCard::writeStop ()
-
-inherited
-
-

End a write multiple blocks sequence.

-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/SdCard/SdSpiCard.h
  • -
  • Arduino/libraries/SdFat/src/SdCard/SdSpiCardEX.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sd_spi_card_e_x__coll__graph.png b/libraries/SdFat/extras/html/class_sd_spi_card_e_x__coll__graph.png deleted file mode 100644 index 93643bb..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_spi_card_e_x__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sd_spi_card_e_x__inherit__graph.png b/libraries/SdFat/extras/html/class_sd_spi_card_e_x__inherit__graph.png deleted file mode 100644 index 93643bb..0000000 Binary files a/libraries/SdFat/extras/html/class_sd_spi_card_e_x__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sdio_card-members.html b/libraries/SdFat/extras/html/class_sdio_card-members.html deleted file mode 100644 index 35749db..0000000 --- a/libraries/SdFat/extras/html/class_sdio_card-members.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SdioCard Member List
-
-
- -

This is the complete list of members for SdioCard, including all inherited members.

- - - - - - - - - - - - - - - - - -
begin()SdioCard
cardSize()SdioCard
dmaBusy()SdioCard
erase(uint32_t firstBlock, uint32_t lastBlock)SdioCard
errorCode()SdioCard
errorData()SdioCard
errorLine()SdioCard
readBlock(uint32_t lba, uint8_t *dst)SdioCardvirtual
readBlocks(uint32_t lba, uint8_t *dst, size_t nb)SdioCardvirtual
readCID(void *cid)SdioCard
readCSD(void *csd)SdioCard
readOCR(uint32_t *ocr)SdioCard
syncBlocks()SdioCardvirtual
type()SdioCard
writeBlock(uint32_t lba, const uint8_t *src)SdioCardvirtual
writeBlocks(uint32_t lba, const uint8_t *src, size_t nb)SdioCardvirtual
- - - - diff --git a/libraries/SdFat/extras/html/class_sdio_card.html b/libraries/SdFat/extras/html/class_sdio_card.html deleted file mode 100644 index 9f51aa2..0000000 --- a/libraries/SdFat/extras/html/class_sdio_card.html +++ /dev/null @@ -1,603 +0,0 @@ - - - - - - -SdFat: SdioCard Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SdioCard Class Reference
-
-
- -

Raw SDIO access to SD and SDHC flash memory cards. - More...

- -

#include <SdioCard.h>

-
-Inheritance diagram for SdioCard:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for SdioCard:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool begin ()
 
uint32_t cardSize ()
 
bool dmaBusy ()
 
bool erase (uint32_t firstBlock, uint32_t lastBlock)
 
uint8_t errorCode ()
 
uint32_t errorData ()
 
uint32_t errorLine ()
 
bool readBlock (uint32_t lba, uint8_t *dst)
 
bool readBlocks (uint32_t lba, uint8_t *dst, size_t nb)
 
bool readCID (void *cid)
 
bool readCSD (void *csd)
 
bool readOCR (uint32_t *ocr)
 
bool syncBlocks ()
 
uint8_t type ()
 
bool writeBlock (uint32_t lba, const uint8_t *src)
 
bool writeBlocks (uint32_t lba, const uint8_t *src, size_t nb)
 
-

Detailed Description

-

Raw SDIO access to SD and SDHC flash memory cards.

-

Member Function Documentation

- -
-
- - - - - - - -
bool SdioCard::begin ()
-
-

Initialize the SD card.

Returns
true for success else false.
- -
-
- -
-
- - - - - - - -
uint32_t SdioCard::cardSize ()
-
-

Determine the size of an SD flash memory card.

-
Returns
The number of 512 byte data blocks in the card or zero if an error occurs.
- -
-
- -
-
- - - - - - - -
bool SdioCard::dmaBusy ()
-
-
Returns
DMA transfer status.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool SdioCard::erase (uint32_t firstBlock,
uint32_t lastBlock 
)
-
-

Erase a range of blocks.

-
Parameters
- - - -
[in]firstBlockThe address of the first block in the range.
[in]lastBlockThe address of the last block in the range.
-
-
-
Note
This function requests the SD card to do a flash erase for a range of blocks. The data on the card after an erase operation is either 0 or 1, depends on the card vendor. The card must support single block erase.
-
Returns
The value true is returned for success and the value false is returned for failure.
- -
-
- -
-
- - - - - - - -
uint8_t SdioCard::errorCode ()
-
-
Returns
code for the last error. See SdInfo.h for a list of error codes.
- -
-
- -
-
- - - - - - - -
uint32_t SdioCard::errorData ()
-
-
Returns
error data for last error.
- -
-
- -
-
- - - - - - - -
uint32_t SdioCard::errorLine ()
-
-
Returns
error line for last error. Tmp function for debug.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdioCard::readBlock (uint32_t lba,
uint8_t * dst 
)
-
-virtual
-
-

Read a 512 byte block from an SD card.

-
Parameters
- - - -
[in]lbaLogical block to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implements BaseBlockDriver.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdioCard::readBlocks (uint32_t lba,
uint8_t * dst,
size_t nb 
)
-
-virtual
-
-

Read multiple 512 byte blocks from an SD card.

-
Parameters
- - - - -
[in]lbaLogical block to be read.
[in]nbNumber of blocks to be read.
[out]dstPointer to the location that will receive the data.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implements BaseBlockDriver.

- -
-
- -
-
- - - - - - - - -
bool SdioCard::readCID (void * cid)
-
-

Read a card's CID register. The CID contains card identification information such as Manufacturer ID, Product name, Product serial number and Manufacturing date.

-
Parameters
- - -
[out]cidpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - - - - -
bool SdioCard::readCSD (void * csd)
-
-

Read a card's CSD register. The CSD contains Card-Specific Data that provides information regarding access to the card's contents.

-
Parameters
- - -
[out]csdpointer to area for returned data.
-
-
-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - - - - -
bool SdioCard::readOCR (uint32_t * ocr)
-
-

Read OCR register.

-
Parameters
- - -
[out]ocrValue of OCR register.
-
-
-
Returns
true for success else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool SdioCard::syncBlocks ()
-
-virtual
-
-
Returns
success if sync successful. Not for user apps.
- -

Implements BaseBlockDriver.

- -
-
- -
-
- - - - - - - -
uint8_t SdioCard::type ()
-
-

Return the card type: SD V1, SD V2 or SDHC

Returns
0 - SD V1, 1 - SD V2, or 3 - SDHC.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
bool SdioCard::writeBlock (uint32_t lba,
const uint8_t * src 
)
-
-virtual
-
-

Writes a 512 byte block to an SD card.

-
Parameters
- - - -
[in]lbaLogical block to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implements BaseBlockDriver.

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
bool SdioCard::writeBlocks (uint32_t lba,
const uint8_t * src,
size_t nb 
)
-
-virtual
-
-

Write multiple 512 byte blocks to an SD card.

-
Parameters
- - - - -
[in]lbaLogical block to be written.
[in]nbNumber of blocks to be written.
[in]srcPointer to the location of the data to be written.
-
-
-
Returns
The value true is returned for success and the value false is returned for failure.
- -

Implements BaseBlockDriver.

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/SdCard/SdioCard.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_sdio_card__coll__graph.png b/libraries/SdFat/extras/html/class_sdio_card__coll__graph.png deleted file mode 100644 index a82e5bc..0000000 Binary files a/libraries/SdFat/extras/html/class_sdio_card__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sdio_card__inherit__graph.png b/libraries/SdFat/extras/html/class_sdio_card__inherit__graph.png deleted file mode 100644 index a82e5bc..0000000 Binary files a/libraries/SdFat/extras/html/class_sdio_card__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_stdio_stream-members.html b/libraries/SdFat/extras/html/class_stdio_stream-members.html deleted file mode 100644 index 8e77da3..0000000 --- a/libraries/SdFat/extras/html/class_stdio_stream-members.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
StdioStream Member List
-
-
- -

This is the complete list of members for StdioStream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
available()FatFileinlineprivate
clearerr()StdioStreaminline
clearError()FatFileinlineprivate
clearWriteError()FatFileinlineprivate
close()FatFileprivate
contiguousRange(uint32_t *bgnBlock, uint32_t *endBlock)FatFileprivate
createContiguous(FatFile *dirFile, const char *path, uint32_t size)FatFileprivate
createContiguous(const char *path, uint32_t size)FatFileinlineprivate
curCluster() const FatFileinlineprivate
curPosition() const FatFileinlineprivate
cwd()FatFileinlineprivatestatic
dateTimeCallback(void(*dateTime)(uint16_t *date, uint16_t *time))FatFileinlineprivatestatic
dateTimeCallbackCancel()FatFileinlineprivatestatic
dirEntry(dir_t *dir)FatFileprivate
dirIndex()FatFileinlineprivate
dirName(const dir_t *dir, char *name)FatFileprivatestatic
dirSize()FatFileprivate
dmpFile(print_t *pr, uint32_t pos, size_t n)FatFileprivate
exists(const char *path)FatFileinlineprivate
FatFile()FatFileinlineprivate
FatFile(const char *path, uint8_t oflag)FatFileinlineprivate
fclose()StdioStream
feof()StdioStreaminline
ferror()StdioStreaminline
fflush()StdioStream
fgetc()StdioStreaminline
fgets(char *str, size_t num, size_t *len=0)StdioStream
FatFile::fgets(char *str, int16_t num, char *delim=0)FatFileprivate
fileAttr() const FatFileinlineprivate
fileSize() const FatFileinlineprivate
firstBlock()FatFileinlineprivate
firstCluster() const FatFileinlineprivate
fopen(const char *path, const char *mode)StdioStream
fputc(int c)StdioStreaminline
fputs(const char *str)StdioStream
fread(void *ptr, size_t size, size_t count)StdioStream
fseek(int32_t offset, int origin)StdioStream
ftell()StdioStream
fwrite(const void *ptr, size_t size, size_t count)StdioStream
getc()StdioStreaminline
getError()FatFileinlineprivate
getName(char *name, size_t size)FatFileprivate
getpos(FatPos_t *pos)FatFileprivate
getSFN(char *name)FatFileprivate
getWriteError()FatFileinlineprivate
isDir() const FatFileinlineprivate
isFile() const FatFileinlineprivate
isHidden() const FatFileinlineprivate
isLFN() const FatFileinlineprivate
isOpen() const FatFileinlineprivate
isReadOnly() const FatFileinlineprivate
isRoot() const FatFileinlineprivate
isRoot32() const FatFileinlineprivate
isRootFixed() const FatFileinlineprivate
isSubDir() const FatFileinlineprivate
isSystem() const FatFileinlineprivate
legal83Char(uint8_t c)FatFileinlineprivatestatic
ls(uint8_t flags=0)FatFileinlineprivate
ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)FatFileprivate
mkdir(FatFile *dir, const char *path, bool pFlag=true)FatFileprivate
open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate
open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate
open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate
open(const char *path, uint8_t oflag=O_READ)FatFileinlineprivate
openNext(FatFile *dirFile, uint8_t oflag=O_READ)FatFileprivate
openRoot(FatVolume *vol)FatFileprivate
peek()FatFileprivate
print(char c)StdioStreaminline
print(const char *str)StdioStreaminline
print(const __FlashStringHelper *str)StdioStream
print(double val, uint8_t prec=2)StdioStreaminline
print(float val, uint8_t prec=2)StdioStreaminline
print(T val)StdioStreaminline
printCreateDateTime(print_t *pr)FatFileprivate
printDec(char n)StdioStreaminline
printDec(signed char n)StdioStream
printDec(unsigned char n)StdioStreaminline
printDec(int16_t n)StdioStream
printDec(uint16_t n)StdioStream
printDec(int32_t n)StdioStream
printDec(uint32_t n)StdioStream
printDec(double value, uint8_t prec)StdioStreaminline
printDec(float value, uint8_t prec)StdioStream
printFatDate(uint16_t fatDate)FatFileinlineprivatestatic
printFatDate(print_t *pr, uint16_t fatDate)FatFileprivatestatic
printFatTime(uint16_t fatTime)FatFileinlineprivatestatic
printFatTime(print_t *pr, uint16_t fatTime)FatFileprivatestatic
printField(double value, char term, uint8_t prec=2)StdioStreaminline
printField(float value, char term, uint8_t prec=2)StdioStreaminline
printField(T value, char term)StdioStreaminline
FatFile::printField(int16_t value, char term)FatFileprivate
FatFile::printField(uint16_t value, char term)FatFileprivate
FatFile::printField(int32_t value, char term)FatFileprivate
FatFile::printField(uint32_t value, char term)FatFileprivate
printFileSize(print_t *pr)FatFileprivate
printHex(uint32_t n)StdioStream
printHexln(uint32_t n)StdioStreaminline
println()StdioStreaminline
println(double val, uint8_t prec=2)StdioStreaminline
println(float val, uint8_t prec=2)StdioStreaminline
println(T val)StdioStreaminline
printModifyDateTime(print_t *pr)FatFileprivate
printName()FatFileinlineprivate
printName(print_t *pr)FatFileprivate
printSFN(print_t *pr)FatFileprivate
putc(int c)StdioStreaminline
putCRLF()StdioStreaminline
read()FatFileinlineprivate
read(void *buf, size_t nbyte)FatFileprivate
readDir(dir_t *dir)FatFileprivate
remove()FatFileprivate
remove(FatFile *dirFile, const char *path)FatFileprivatestatic
rename(FatFile *dirFile, const char *newPath)FatFileprivate
rewind()StdioStream
rmdir()FatFileprivate
rmRfStar()FatFileprivate
seekCur(int32_t offset)FatFileinlineprivate
seekEnd(int32_t offset=0)FatFileinlineprivate
seekSet(uint32_t pos)FatFileprivate
setCwd(FatFile *dir)FatFileinlineprivatestatic
setpos(FatPos_t *pos)FatFileprivate
StdioStream()StdioStreaminline
sync()FatFileprivate
timestamp(FatFile *file)FatFileprivate
timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)FatFileprivate
truncate(uint32_t length)FatFileprivate
ungetc(int c)StdioStream
volume() const FatFileinlineprivate
FatFile::write(const char *str)FatFileinlineprivate
FatFile::write(uint8_t b)FatFileinlineprivate
- - - - diff --git a/libraries/SdFat/extras/html/class_stdio_stream.html b/libraries/SdFat/extras/html/class_stdio_stream.html deleted file mode 100644 index ce244df..0000000 --- a/libraries/SdFat/extras/html/class_stdio_stream.html +++ /dev/null @@ -1,1781 +0,0 @@ - - - - - - -SdFat: StdioStream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

StdioStream implements a minimal stdio stream. - More...

- -

#include <StdioStream.h>

-
-Inheritance diagram for StdioStream:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for StdioStream:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

void clearerr ()
 
int fclose ()
 
int feof ()
 
int ferror ()
 
int fflush ()
 
int fgetc ()
 
char * fgets (char *str, size_t num, size_t *len=0)
 
bool fopen (const char *path, const char *mode)
 
int fputc (int c)
 
int fputs (const char *str)
 
size_t fread (void *ptr, size_t size, size_t count)
 
int fseek (int32_t offset, int origin)
 
int32_t ftell ()
 
size_t fwrite (const void *ptr, size_t size, size_t count)
 
int getc ()
 
size_t print (char c)
 
size_t print (const char *str)
 
size_t print (const __FlashStringHelper *str)
 
size_t print (double val, uint8_t prec=2)
 
size_t print (float val, uint8_t prec=2)
 
template<typename T >
size_t print (T val)
 
int printDec (char n)
 
int printDec (signed char n)
 
int printDec (unsigned char n)
 
int printDec (int16_t n)
 
int printDec (uint16_t n)
 
int printDec (int32_t n)
 
int printDec (uint32_t n)
 
int printDec (double value, uint8_t prec)
 
int printDec (float value, uint8_t prec)
 
int printField (double value, char term, uint8_t prec=2)
 
int printField (float value, char term, uint8_t prec=2)
 
template<typename T >
int printField (T value, char term)
 
int printHex (uint32_t n)
 
int printHexln (uint32_t n)
 
size_t println ()
 
size_t println (double val, uint8_t prec=2)
 
size_t println (float val, uint8_t prec=2)
 
template<typename T >
size_t println (T val)
 
int putc (int c)
 
int putCRLF ()
 
bool rewind ()
 
 StdioStream ()
 
int ungetc (int c)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Private Member Functions

uint32_t available ()
 
void clearError ()
 
void clearWriteError ()
 
bool close ()
 
bool contiguousRange (uint32_t *bgnBlock, uint32_t *endBlock)
 
bool createContiguous (FatFile *dirFile, const char *path, uint32_t size)
 
bool createContiguous (const char *path, uint32_t size)
 
uint32_t curCluster () const
 
uint32_t curPosition () const
 
bool dirEntry (dir_t *dir)
 
uint16_t dirIndex ()
 
uint32_t dirSize ()
 
void dmpFile (print_t *pr, uint32_t pos, size_t n)
 
bool exists (const char *path)
 
int16_t fgets (char *str, int16_t num, char *delim=0)
 
uint8_t fileAttr () const
 
uint32_t fileSize () const
 
uint32_t firstBlock ()
 
uint32_t firstCluster () const
 
uint8_t getError ()
 
bool getName (char *name, size_t size)
 
void getpos (FatPos_t *pos)
 
bool getSFN (char *name)
 
bool getWriteError ()
 
bool isDir () const
 
bool isFile () const
 
bool isHidden () const
 
bool isLFN () const
 
bool isOpen () const
 
bool isReadOnly () const
 
bool isRoot () const
 
bool isRoot32 () const
 
bool isRootFixed () const
 
bool isSubDir () const
 
bool isSystem () const
 
void ls (uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags=0, uint8_t indent=0)
 
bool mkdir (FatFile *dir, const char *path, bool pFlag=true)
 
bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
bool open (const char *path, uint8_t oflag=O_READ)
 
bool openNext (FatFile *dirFile, uint8_t oflag=O_READ)
 
bool openRoot (FatVolume *vol)
 
int peek ()
 
bool printCreateDateTime (print_t *pr)
 
int printField (int16_t value, char term)
 
int printField (uint16_t value, char term)
 
int printField (int32_t value, char term)
 
int printField (uint32_t value, char term)
 
size_t printFileSize (print_t *pr)
 
bool printModifyDateTime (print_t *pr)
 
size_t printName ()
 
size_t printName (print_t *pr)
 
size_t printSFN (print_t *pr)
 
int read ()
 
int read (void *buf, size_t nbyte)
 
int8_t readDir (dir_t *dir)
 
bool remove ()
 
bool rename (FatFile *dirFile, const char *newPath)
 
bool rmdir ()
 
bool rmRfStar ()
 
bool seekCur (int32_t offset)
 
bool seekEnd (int32_t offset=0)
 
bool seekSet (uint32_t pos)
 
void setpos (FatPos_t *pos)
 
bool sync ()
 
bool timestamp (FatFile *file)
 
bool timestamp (uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
 
bool truncate (uint32_t length)
 
FatVolumevolume () const
 
int write (const char *str)
 
int write (uint8_t b)
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Static Private Member Functions

static FatFilecwd ()
 
static void dateTimeCallback (void(*dateTime)(uint16_t *date, uint16_t *time))
 
static void dateTimeCallbackCancel ()
 
static uint8_t dirName (const dir_t *dir, char *name)
 
static bool legal83Char (uint8_t c)
 
static void printFatDate (uint16_t fatDate)
 
static void printFatDate (print_t *pr, uint16_t fatDate)
 
static void printFatTime (uint16_t fatTime)
 
static void printFatTime (print_t *pr, uint16_t fatTime)
 
static bool remove (FatFile *dirFile, const char *path)
 
static bool setCwd (FatFile *dir)
 
-

Detailed Description

-

StdioStream implements a minimal stdio stream.

-

StdioStream does not support subdirectories or long file names.

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
StdioStream::StdioStream ()
-
-inline
-
-

Constructor

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
void StdioStream::clearerr ()
-
-inline
-
-

Clear the stream's end-of-file and error indicators.

- -
-
- -
-
- - - - - - - -
int StdioStream::fclose ()
-
-

Close a stream.

-

A successful call to the fclose function causes the stream to be flushed and the associated file to be closed. Any unwritten buffered data is written to the file; any unread buffered data is discarded. Whether or not the call succeeds, the stream is disassociated from the file.

-
Returns
zero if the stream was successfully closed, or EOF if any any errors are detected.
- -
-
- -
-
- - - - - -
- - - - - - - -
int StdioStream::feof ()
-
-inline
-
-

Test the stream's end-of-file indicator.

Returns
non-zero if and only if the end-of-file indicator is set.
- -
-
- -
-
- - - - - -
- - - - - - - -
int StdioStream::ferror ()
-
-inline
-
-

Test the stream's error indicator.

Returns
return non-zero if and only if the error indicator is set.
- -
-
- -
-
- - - - - - - -
int StdioStream::fflush ()
-
-

Flush the stream.

-

If stream is an output stream or an update stream in which the most recent operation was not input, any unwritten data is written to the file; otherwise the call is an error since any buffered input data would be lost.

-
Returns
sets the error indicator for the stream and returns EOF if an error occurs, otherwise it returns zero.
- -
-
- -
-
- - - - - -
- - - - - - - -
int StdioStream::fgetc ()
-
-inline
-
-

Get a byte from the stream.

-
Returns
If the end-of-file indicator for the stream is set, or if the stream is at end-of-file, the end-of-file indicator for the stream is set and the fgetc function returns EOF. Otherwise, the fgetc function returns the next character from the input stream.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
char * StdioStream::fgets (char * str,
size_t num,
size_t * len = 0 
)
-
-

Get a string from a stream.

-

The fgets function reads at most one less than the number of characters specified by num from the stream into the array pointed to by str. No additional characters are read after a new-line character (which is retained) or after end-of-file. A null character is written immediately after the last character read into the array.

-
Parameters
- - - - -
[out]strPointer to an array of where the string is copied.
[in]numMaximum number of characters including the null character.
[out]lenIf len is not null and fgets is successful, the length of the string is returned.
-
-
-
Returns
str if successful. If end-of-file is encountered and no characters have been read into the array, the contents of the array remain unchanged and a null pointer is returned. If a read error occurs during the operation, the array contents are indeterminate and a null pointer is returned.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
bool StdioStream::fopen (const char * path,
const char * mode 
)
-
-

Open a stream.

-

Open a file and associates the stream with it.

-
Parameters
- - - -
[in]pathfile to be opened.
[in]modea string that indicates the open mode.
-
-
- - - - - - - - - - - - - - - - - -
"r" or "rb" Open a file for reading. The file must exist.
"w" or "wb" Truncate an existing to zero length or create an empty file for writing.
"wx" or "wbx" Create a file for writing. Fails if the file already exists.
"a" or "ab" Append; open or create file for writing at end-of-file.
"r+" or "rb+" or "r+b" Open a file for update (reading and writing).
"w+" or "w+b" or "wb+" Truncate an existing to zero length or create a file for update.
"w+x" or "w+bx" or "wb+x" Create a file for update. Fails if the file already exists.
"a+" or "a+b" or "ab+" Append; open or create a file for update, writing at end-of-file.
-

The character 'b' shall have no effect, but is allowed for ISO C standard conformance.

-

Opening a file with append mode causes all subsequent writes to the file to be forced to the then current end-of-file, regardless of intervening calls to the fseek function.

-

When a file is opened with update mode, both input and output may be performed on the associated stream. However, output shall not be directly followed by input without an intervening call to the fflush function or to a file positioning function (fseek, or rewind), and input shall not be directly followed by output without an intervening call to a file positioning function, unless the input operation encounters end-of-file.

-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int StdioStream::fputc (int c)
-
-inline
-
-

Write a byte to a stream.

-
Parameters
- - -
[in]cthe byte to be written (converted to an unsigned char).
-
-
-
Returns
Upon successful completion, fputc() returns the value it has written. Otherwise, it returns EOF and sets the error indicator for the stream.
- -
-
- -
-
- - - - - - - - -
int StdioStream::fputs (const char * str)
-
-

Write a string to a stream.

-
Parameters
- - -
[in]stra pointer to the string to be written.
-
-
-
Returns
for success, fputs() returns a non-negative number. Otherwise, it returns EOF and sets the error indicator for the stream.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
size_t StdioStream::fread (void * ptr,
size_t size,
size_t count 
)
-
-

Binary input.

-

Reads an array of up to count elements, each one with a size of size bytes.

Parameters
- - - - -
[out]ptrpointer to area of at least (size*count) bytes where the data will be stored.
[in]sizethe size, in bytes, of each element to be read.
[in]countthe number of elements to be read.
-
-
-
Returns
number of elements successfully read, which may be less than count if a read error or end-of-file is encountered. If size or count is zero, fread returns zero and the contents of the array and the state of the stream remain unchanged.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int StdioStream::fseek (int32_t offset,
int origin 
)
-
-

Set the file position for the stream.

-
Parameters
- - - -
[in]offsetnumber of offset from the origin.
[in]originposition used as reference for the offset. It is specified by one of the following constants.
-
-
-

SEEK_SET - Beginning of file.

-

SEEK_CUR - Current position of the file pointer.

-

SEEK_END - End of file.

-
Returns
zero for success. Otherwise, it returns non-zero and sets the error indicator for the stream.
- -
-
- -
-
- - - - - - - -
int32_t StdioStream::ftell ()
-
-

Get the current position in a stream.

-
Returns
If successful, ftell return the current value of the position indicator. On failure, ftell returns −1L.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
size_t StdioStream::fwrite (const void * ptr,
size_t size,
size_t count 
)
-
-

Binary output.

-

Writes an array of up to count elements, each one with a size of size bytes.

Parameters
- - - - -
[in]ptrpointer to (size*count) bytes of data to be written.
[in]sizethe size, in bytes, of each element to be written.
[in]countthe number of elements to be written.
-
-
-
Returns
number of elements successfully written. if this number is less than count, an error has occurred. If size or count is zero, fwrite returns zero.
- -
-
- -
-
- - - - - -
- - - - - - - -
int StdioStream::getc ()
-
-inline
-
-

Get a byte from the stream.

-

getc and fgetc are equivalent but getc is in-line so it is faster but require more flash memory.

-
Returns
If the end-of-file indicator for the stream is set, or if the stream is at end-of-file, the end-of-file indicator for the stream is set and the fgetc function returns EOF. Otherwise, the fgetc function returns the next character from the input stream.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t StdioStream::print (char c)
-
-inline
-
-

Write a character.

Parameters
- - -
[in]cthe character to write.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
- - - - - -
- - - - - - - - -
size_t StdioStream::print (const char * str)
-
-inline
-
-

Write a string.

-
Parameters
- - -
[in]strthe string to be written.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
- - - - - - - - -
size_t StdioStream::print (const __FlashStringHelper * str)
-
-

Print a string stored in flash memory.

-
Parameters
- - -
[in]strthe string to print.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_t StdioStream::print (double val,
uint8_t prec = 2 
)
-
-inline
-
-

Print a floating point number.

-
Parameters
- - - -
[in]precNumber of digits after decimal point.
[in]valthe number to be printed.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_t StdioStream::print (float val,
uint8_t prec = 2 
)
-
-inline
-
-

Print a floating point number.

-
Parameters
- - - -
[in]precNumber of digits after decimal point.
[in]valthe number to be printed.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
size_t StdioStream::print (val)
-
-inline
-
-

Print a number.

-
Parameters
- - -
[in]valthe number to be printed.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int StdioStream::printDec (char n)
-
-inline
-
-

Print a char as a number.

Parameters
- - -
[in]nnumber to be printed.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - -
int StdioStream::printDec (signed char n)
-
-

print a signed 8-bit integer

Parameters
- - -
[in]nnumber to be printed.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int StdioStream::printDec (unsigned char n)
-
-inline
-
-

Print an unsigned 8-bit number.

Parameters
- - -
[in]nnumber to be print.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - -
int StdioStream::printDec (int16_t n)
-
-

Print a int16_t

Parameters
- - -
[in]nnumber to be printed.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - -
int StdioStream::printDec (uint16_t n)
-
-

print a uint16_t.

Parameters
- - -
[in]nnumber to be printed.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - -
int StdioStream::printDec (int32_t n)
-
-

Print a signed 32-bit integer.

Parameters
- - -
[in]nnumber to be printed.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - -
int StdioStream::printDec (uint32_t n)
-
-

Write an unsigned 32-bit number.

Parameters
- - -
[in]nnumber to be printed.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int StdioStream::printDec (double value,
uint8_t prec 
)
-
-inline
-
-

Print a double.

Parameters
- - - -
[in]valueThe number to be printed.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
int StdioStream::printDec (float value,
uint8_t prec 
)
-
-

Print a float.

Parameters
- - - -
[in]valueThe number to be printed.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int StdioStream::printField (double value,
char term,
uint8_t prec = 2 
)
-
-inline
-
-

Print a number followed by a field terminator.

Parameters
- - - - -
[in]valueThe number to be printed.
[in]termThe field terminator.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
int StdioStream::printField (float value,
char term,
uint8_t prec = 2 
)
-
-inline
-
-

Print a number followed by a field terminator.

Parameters
- - - - -
[in]valueThe number to be printed.
[in]termThe field terminator.
[in]precNumber of digits after decimal point.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - - - - - - - - - - - -
int StdioStream::printField (value,
char term 
)
-
-inline
-
-

Print a number followed by a field terminator.

Parameters
- - - -
[in]valueThe number to be printed.
[in]termThe field terminator.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - - - - -
int StdioStream::printHex (uint32_t n)
-
-

Print HEX

Parameters
- - -
[in]nnumber to be printed as HEX.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int StdioStream::printHexln (uint32_t n)
-
-inline
-
-

Print HEX with CRLF

Parameters
- - -
[in]nnumber to be printed as HEX.
-
-
-
Returns
The number of bytes written or -1 if an error occurs.
- -
-
- -
-
- - - - - -
- - - - - - - -
size_t StdioStream::println ()
-
-inline
-
-

Write a CR/LF.

-
Returns
two, the number of bytes written, for success or zero for failure.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_t StdioStream::println (double val,
uint8_t prec = 2 
)
-
-inline
-
-

Print a floating point number followed by CR/LF.

-
Parameters
- - - -
[in]valthe number to be printed.
[in]precNumber of digits after decimal point.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
size_t StdioStream::println (float val,
uint8_t prec = 2 
)
-
-inline
-
-

Print a floating point number followed by CR/LF.

-
Parameters
- - - -
[in]valthe number to be printed.
[in]precNumber of digits after decimal point.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
-
-template<typename T >
- - - - - -
- - - - - - - - -
size_t StdioStream::println (val)
-
-inline
-
-

Print an item followed by CR/LF

-
Parameters
- - -
[in]valthe item to be printed.
-
-
-
Returns
the number of bytes written.
- -
-
- -
-
- - - - - -
- - - - - - - - -
int StdioStream::putc (int c)
-
-inline
-
-

Write a byte to a stream.

-

putc and fputc are equivalent but putc is in-line so it is faster but require more flash memory.

-
Parameters
- - -
[in]cthe byte to be written (converted to an unsigned char).
-
-
-
Returns
Upon successful completion, fputc() returns the value it has written. Otherwise, it returns EOF and sets the error indicator for the stream.
- -
-
- -
-
- - - - - -
- - - - - - - -
int StdioStream::putCRLF ()
-
-inline
-
-

Write a CR/LF.

-
Returns
two, the number of bytes written, for success or -1 for failure.
- -
-
- -
-
- - - - - - - -
bool StdioStream::rewind ()
-
-

Set position of a stream to the beginning.

-

The rewind function sets the file position to the beginning of the file. It is equivalent to fseek(0L, SEEK_SET) except that the error indicator for the stream is also cleared.

-
Returns
true for success or false for failure.
- -
-
- -
-
- - - - - - - - -
int StdioStream::ungetc (int c)
-
-

Push a byte back into an input stream.

-
Parameters
- - -
[in]cthe byte (converted to an unsigned char) to be pushed back.
-
-
-

One character of push-back is guaranteed. If the ungetc function is called too many times without an intervening read or file positioning operation on that stream, the operation may fail.

-

A successful intervening call to a file positioning function (fseek, fsetpos, or rewind) discards any pushed-back characters for the stream.

-
Returns
Upon successful completion, ungetc() returns the byte pushed back after conversion. Otherwise it returns EOF.
- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/FatLib/StdioStream.h
  • -
  • Arduino/libraries/SdFat/src/FatLib/StdioStream.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/class_stdio_stream__coll__graph.png b/libraries/SdFat/extras/html/class_stdio_stream__coll__graph.png deleted file mode 100644 index 99344ab..0000000 Binary files a/libraries/SdFat/extras/html/class_stdio_stream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_stdio_stream__inherit__graph.png b/libraries/SdFat/extras/html/class_stdio_stream__inherit__graph.png deleted file mode 100644 index 99344ab..0000000 Binary files a/libraries/SdFat/extras/html/class_stdio_stream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/class_sys_call-members.html b/libraries/SdFat/extras/html/class_sys_call-members.html deleted file mode 100644 index d2dd879..0000000 --- a/libraries/SdFat/extras/html/class_sys_call-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
SysCall Member List
-
-
- -

This is the complete list of members for SysCall, including all inherited members.

- - - -
halt()SysCallinlinestatic
yield()SysCallinlinestatic
- - - - diff --git a/libraries/SdFat/extras/html/class_sys_call.html b/libraries/SdFat/extras/html/class_sys_call.html deleted file mode 100644 index d67ddb7..0000000 --- a/libraries/SdFat/extras/html/class_sys_call.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - -SdFat: SysCall Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
SysCall Class Reference
-
-
- -

SysCall - Class to wrap system calls. - More...

- -

#include <SysCall.h>

- - - - - - -

-Static Public Member Functions

static void halt ()
 
static void yield ()
 
-

Detailed Description

-

SysCall - Class to wrap system calls.

-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
static void SysCall::halt ()
-
-inlinestatic
-
-

Halt execution of this thread.

- -
-
- -
-
- - - - - -
- - - - - - - -
void SysCall::yield ()
-
-inlinestatic
-
-

Yield to other threads.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/classes.html b/libraries/SdFat/extras/html/classes.html deleted file mode 100644 index eb1727f..0000000 --- a/libraries/SdFat/extras/html/classes.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -SdFat: Class Index - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
A | B | C | D | F | I | L | M | O | P | S
- - - - - - - - - - - - - - - - - - - -
  A  
-
File   SdFatSoftSpiEX   
  f  
-
  l  
-
  M  
-
SdFile   
ArduinoInStream   SdFileSystem   fat32_boot   longDirectoryEntry   
ArduinoOutStream   MinimumSerial   SdioCard   fat32_fsinfo   
  m  
-
  B  
-
  P  
-
SdSpiCard   fat_boot   
SdSpiCardEX   fname_t   masterBootRecord   
BaseBlockDriver   PrintFile   StdioStream   fstream   
  o  
-
  F  
-
  S  
-
SysCall   
  i  
-
  b  
-
obufstream   
FatCache   Sd2Card   ibufstream   ofstream   
FatFile   SdBaseFile   biosParmBlock   ifstream   ostream   
FatFileSystem   SdFat   
  c  
-
ios   
  p  
-
FatPos_t   SdFatEX   ios_base   
FatStreamBase   SdFatSdio   cache_t   iostream   partitionTable   
FatVolume   SdFatSoftSpi   
  d  
-
istream   
  s  
-
directoryEntry   setfill   
-
A | B | C | D | F | I | L | M | O | P | S
-
- - - - diff --git a/libraries/SdFat/extras/html/classfstream-members.html b/libraries/SdFat/extras/html/classfstream-members.html deleted file mode 100644 index 1b2d805..0000000 --- a/libraries/SdFat/extras/html/classfstream-members.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
fstream Member List
-
-
- -

This is the complete list of members for fstream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)fstreaminline
close()fstreaminline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
flush()ostreaminline
fmtflags typedefios_base
fstream() (defined in fstream)fstreaminline
fstream(const char *path, openmode mode=in|out)fstreaminlineexplicit
gcount() const istreaminline
get()istream
get(char &ch)istream
get(char *str, streamsize n, char delim= '\n')istream
getline(char *str, streamsize n, char delim= '\n')istream
good() const iosinline
goodbitios_basestatic
hexios_basestatic
ignore(streamsize n=1, int delim=-1)istream
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
is_open()fstreaminline
istream() (defined in istream)istreaminline
leftios_basestatic
octios_basestatic
off_type typedefios_base
open(const char *path, openmode mode=in|out)fstreaminline
FatStreamBase::open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate
FatStreamBase::open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate
FatStreamBase::open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator<<(ostream &(*pf)(ostream &str))ostreaminline
operator<<(ios_base &(*pf)(ios_base &str))ostreaminline
operator<<(bool arg)ostreaminline
operator<<(const char *arg)ostreaminline
operator<<(const signed char *arg)ostreaminline
operator<<(const unsigned char *arg)ostreaminline
operator<<(char arg)ostreaminline
operator<<(signed char arg)ostreaminline
operator<<(unsigned char arg)ostreaminline
operator<<(double arg)ostreaminline
operator<<(float arg)ostreaminline
operator<<(short arg)ostreaminline
operator<<(unsigned short arg)ostreaminline
operator<<(int arg)ostreaminline
operator<<(unsigned int arg)ostreaminline
operator<<(long arg)ostreaminline
operator<<(unsigned long arg)ostreaminline
operator<<(const void *arg)ostreaminline
operator<<(const __FlashStringHelper *arg)ostreaminline
operator>>(istream &(*pf)(istream &str))istreaminline
operator>>(ios_base &(*pf)(ios_base &str))istreaminline
operator>>(ios &(*pf)(ios &str))istreaminline
operator>>(char *str)istreaminline
operator>>(char &ch)istreaminline
operator>>(signed char *str)istreaminline
operator>>(signed char &ch)istreaminline
operator>>(unsigned char *str)istreaminline
operator>>(unsigned char &ch)istreaminline
operator>>(bool &arg)istreaminline
operator>>(short &arg)istreaminline
operator>>(unsigned short &arg)istreaminline
operator>>(int &arg)istreaminline
operator>>(unsigned int &arg)istreaminline
operator>>(long &arg)istreaminline
operator>>(unsigned long &arg)istreaminline
operator>>(double &arg)istreaminline
operator>>(float &arg)istreaminline
operator>>(void *&arg)istreaminline
ostream() (defined in ostream)ostreaminline
outios_basestatic
iostream::peek()istream
FatStreamBase::peek()FatFileprivate
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
put(char ch)ostreaminline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekg(pos_type pos)istreaminline
seekg(off_type off, seekdir way)istreaminline
seekp(pos_type pos)ostreaminline
seekp(off_type off, seekdir way)ostreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipWhite()istream
skipwsios_basestatic
streamsize typedefios_base
tellg()istreaminline
tellp()ostreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classfstream.html b/libraries/SdFat/extras/html/classfstream.html deleted file mode 100644 index 324b92e..0000000 --- a/libraries/SdFat/extras/html/classfstream.html +++ /dev/null @@ -1,3451 +0,0 @@ - - - - - - -SdFat: fstream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

file input/output stream. - More...

- -

#include <fstream.h>

-
-Inheritance diagram for fstream:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
-
-Collaboration diagram for fstream:
-
-
Collaboration graph
- - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
void close ()
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
 fstream (const char *path, openmode mode=in|out)
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
bool is_open ()
 
void open (const char *path, openmode mode=in|out)
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (bool arg)
 
ostreamoperator<< (const char *arg)
 
ostreamoperator<< (const signed char *arg)
 
ostreamoperator<< (const unsigned char *arg)
 
ostreamoperator<< (char arg)
 
ostreamoperator<< (signed char arg)
 
ostreamoperator<< (unsigned char arg)
 
ostreamoperator<< (double arg)
 
ostreamoperator<< (float arg)
 
ostreamoperator<< (short arg)
 
ostreamoperator<< (unsigned short arg)
 
ostreamoperator<< (int arg)
 
ostreamoperator<< (unsigned int arg)
 
ostreamoperator<< (long arg)
 
ostreamoperator<< (unsigned long arg)
 
ostreamoperator<< (const void *arg)
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (ios &(*pf)(ios &str))
 
istreamoperator>> (char *str)
 
istreamoperator>> (char &ch)
 
istreamoperator>> (signed char *str)
 
istreamoperator>> (signed char &ch)
 
istreamoperator>> (unsigned char *str)
 
istreamoperator>> (unsigned char &ch)
 
istreamoperator>> (bool &arg)
 
istreamoperator>> (short &arg)
 
istreamoperator>> (unsigned short &arg)
 
istreamoperator>> (int &arg)
 
istreamoperator>> (unsigned int &arg)
 
istreamoperator>> (long &arg)
 
istreamoperator>> (unsigned long &arg)
 
istreamoperator>> (double &arg)
 
istreamoperator>> (float &arg)
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void skipWhite ()
 
pos_type tellg ()
 
pos_type tellp ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
- - - - - - - - - -

-Private Member Functions

bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
int peek ()
 
-

Detailed Description

-

file input/output stream.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fstream::fstream (const char * path,
openmode mode = in | out 
)
-
-inlineexplicit
-
-

Constructor with open

-
Parameters
- - - -
[in]pathpath to open
[in]modeopen mode
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void fstream::clear (iostate state = goodbit)
-
-inline
-
-

Clear state and writeError

Parameters
- - -
[in]statenew state for stream
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void fstream::close ()
-
-inline
-
-

Close a file and force cached data and directory information to be written to the storage device.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
ostream& ostream::flush ()
-
-inlineinherited
-
-

Flushes the buffer associated with this stream. The flush function calls the sync function of the associated file.

Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
streamsize istream::gcount () const
-
-inlineinherited
-
-
Returns
The number of characters extracted by the last unformatted input function.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::get ()
-
-inherited
-
-

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream & istream::get (char & ch)
-
-inherited
-
-

Extract a character if one is available.

-
Parameters
- - -
[out]chlocation to receive the extracted character.
-
-
-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::get (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters.

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, n is less than 1, n-1 characters are extracted, or the next character equals delim (delim is not extracted). If no characters are extracted failbit is set. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::getline (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, the next character equals delim (delim is extracted), or n-1 characters are extracted.

-

The failbit is set if no characters are extracted or n-1 characters are extracted. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream & istream::ignore (streamsize n = 1,
int delim = -1 
)
-
-inherited
-
-

Extract characters and discard them.

-
Parameters
- - - -
[in]nmaximum number of characters to ignore.
[in]delimDelimiter.
-
-
-

Characters are extracted until extraction fails, n characters are extracted, or the next input character equals delim (the delimiter is extracted). If end-of-file occurs the eofbit is set.

-

Failures are indicated by the state of the stream.

-
Returns
*this
- -
-
- -
-
- - - - - -
- - - - - - - -
bool fstream::is_open ()
-
-inline
-
-
Returns
True if stream is open else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void fstream::open (const char * path,
openmode mode = in | out 
)
-
-inline
-
-

Open a fstream

Parameters
- - - -
[in]pathfile to open
[in]modeopen mode
-
-
-

Valid open modes are (at end, ios::ate, and/or ios::binary may be added):

-

ios::in - Open file for reading.

-

ios::out or ios::out | ios::trunc - Truncate to 0 length, if existent, or create a file for writing only.

-

ios::app or ios::out | ios::app - Append; open or create file for writing at end-of-file.

-

ios::in | ios::out - Open file for update (reading and writing).

-

ios::in | ios::out | ios::trunc - Truncate to zero length, if existent, or create file for update.

-

ios::in | ios::app or ios::in | ios::out | ios::app - Append; open or create text file for update, writing at end of file.

- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ostream &(*)(ostream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (bool arg)
-
-inlineinherited
-
-

Output bool

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const signed char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const unsigned char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (signed char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (double arg)
-
-inlineinherited
-
-

Output double

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (float arg)
-
-inlineinherited
-
-

Output float

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (short arg)
-
-inlineinherited
-
-

Output signed short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned short arg)
-
-inlineinherited
-
-

Output unsigned short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (int arg)
-
-inlineinherited
-
-

Output signed int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned int arg)
-
-inlineinherited
-
-

Output unsigned int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (long arg)
-
-inlineinherited
-
-

Output signed long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned long arg)
-
-inlineinherited
-
-

Output unsigned long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const void * arg)
-
-inlineinherited
-
-

Output pointer

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const __FlashStringHelper * arg)
-
-inlineinherited
-
-

Output a string from flash using the Arduino F() macro.

Parameters
- - -
[in]argpointing to flash string
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (istream &(*)(istream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios &(*)(ios &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (bool & arg)
-
-inlineinherited
-
-

Extract a value of type bool.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (short & arg)
-
-inlineinherited
-
-

Extract a value of type short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned short & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (int & arg)
-
-inlineinherited
-
-

Extract a value of type int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned int & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (long & arg)
-
-inlineinherited
-
-

Extract a value of type long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned long & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (double & arg)
-
-inlineinherited
-
-

Extract a value of type double.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (float & arg)
-
-inlineinherited
-
-

Extract a value of type float.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (void *& arg)
-
-inlineinherited
-
-

Extract a value of type void*.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::peek ()
-
-inherited
-
-

Return the next available character without consuming it.

-
Returns
The character if the stream state is good else -1;
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::put (char ch)
-
-inlineinherited
-
-

Puts a character in a stream.

-

The unformatted output function inserts the element ch. It returns *this.

-
Parameters
- - -
[in]chThe character
-
-
-
Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::seekg (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the read pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& istream::seekg (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the read pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::seekp (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the write pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& ostream::seekp (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the write pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void istream::skipWhite ()
-
-inherited
-
-

used to implement ws()

- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type istream::tellg ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type ostream::tellp ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/fstream.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/classfstream__coll__graph.png b/libraries/SdFat/extras/html/classfstream__coll__graph.png deleted file mode 100644 index 94fffce..0000000 Binary files a/libraries/SdFat/extras/html/classfstream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classfstream__inherit__graph.png b/libraries/SdFat/extras/html/classfstream__inherit__graph.png deleted file mode 100644 index 94fffce..0000000 Binary files a/libraries/SdFat/extras/html/classfstream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classibufstream-members.html b/libraries/SdFat/extras/html/classibufstream-members.html deleted file mode 100644 index 0ef4df5..0000000 --- a/libraries/SdFat/extras/html/classibufstream-members.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ibufstream Member List
-
-
- -

This is the complete list of members for ibufstream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
fmtflags typedefios_base
gcount() const istreaminline
get()istream
get(char &ch)istream
get(char *str, streamsize n, char delim= '\n')istream
getline(char *str, streamsize n, char delim= '\n')istream
good() const iosinline
goodbitios_basestatic
hexios_basestatic
ibufstream()ibufstreaminline
ibufstream(const char *str)ibufstreaminlineexplicit
ignore(streamsize n=1, int delim=-1)istream
inios_basestatic
init(const char *str)ibufstreaminline
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
istream() (defined in istream)istreaminline
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator>>(istream &(*pf)(istream &str))istreaminline
operator>>(ios_base &(*pf)(ios_base &str))istreaminline
operator>>(ios &(*pf)(ios &str))istreaminline
operator>>(char *str)istreaminline
operator>>(char &ch)istreaminline
operator>>(signed char *str)istreaminline
operator>>(signed char &ch)istreaminline
operator>>(unsigned char *str)istreaminline
operator>>(unsigned char &ch)istreaminline
operator>>(bool &arg)istreaminline
operator>>(short &arg)istreaminline
operator>>(unsigned short &arg)istreaminline
operator>>(int &arg)istreaminline
operator>>(unsigned int &arg)istreaminline
operator>>(long &arg)istreaminline
operator>>(unsigned long &arg)istreaminline
operator>>(double &arg)istreaminline
operator>>(float &arg)istreaminline
operator>>(void *&arg)istreaminline
outios_basestatic
peek()istream
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekg(pos_type pos)istreaminline
seekg(off_type off, seekdir way)istreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipWhite()istream
skipwsios_basestatic
streamsize typedefios_base
tellg()istreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classibufstream.html b/libraries/SdFat/extras/html/classibufstream.html deleted file mode 100644 index 2e484b4..0000000 --- a/libraries/SdFat/extras/html/classibufstream.html +++ /dev/null @@ -1,2585 +0,0 @@ - - - - - - -SdFat: ibufstream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

parse a char string - More...

- -

#include <bufstream.h>

-
-Inheritance diagram for ibufstream:
-
-
Inheritance graph
- - - - - - -
[legend]
-
-Collaboration diagram for ibufstream:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
 ibufstream ()
 
 ibufstream (const char *str)
 
istreamignore (streamsize n=1, int delim=-1)
 
void init (const char *str)
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (ios &(*pf)(ios &str))
 
istreamoperator>> (char *str)
 
istreamoperator>> (char &ch)
 
istreamoperator>> (signed char *str)
 
istreamoperator>> (signed char &ch)
 
istreamoperator>> (unsigned char *str)
 
istreamoperator>> (unsigned char &ch)
 
istreamoperator>> (bool &arg)
 
istreamoperator>> (short &arg)
 
istreamoperator>> (unsigned short &arg)
 
istreamoperator>> (int &arg)
 
istreamoperator>> (unsigned int &arg)
 
istreamoperator>> (long &arg)
 
istreamoperator>> (unsigned long &arg)
 
istreamoperator>> (double &arg)
 
istreamoperator>> (float &arg)
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void skipWhite ()
 
pos_type tellg ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

parse a char string

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
ibufstream::ibufstream ()
-
-inline
-
-

Constructor

- -
-
- -
-
- - - - - -
- - - - - - - - -
ibufstream::ibufstream (const char * str)
-
-inlineexplicit
-
-

Constructor

Parameters
- - -
[in]strpointer to string to be parsed Warning: The string will not be copied so must stay in scope.
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
streamsize istream::gcount () const
-
-inlineinherited
-
-
Returns
The number of characters extracted by the last unformatted input function.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::get ()
-
-inherited
-
-

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream & istream::get (char & ch)
-
-inherited
-
-

Extract a character if one is available.

-
Parameters
- - -
[out]chlocation to receive the extracted character.
-
-
-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::get (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters.

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, n is less than 1, n-1 characters are extracted, or the next character equals delim (delim is not extracted). If no characters are extracted failbit is set. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::getline (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, the next character equals delim (delim is extracted), or n-1 characters are extracted.

-

The failbit is set if no characters are extracted or n-1 characters are extracted. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream & istream::ignore (streamsize n = 1,
int delim = -1 
)
-
-inherited
-
-

Extract characters and discard them.

-
Parameters
- - - -
[in]nmaximum number of characters to ignore.
[in]delimDelimiter.
-
-
-

Characters are extracted until extraction fails, n characters are extracted, or the next input character equals delim (the delimiter is extracted). If end-of-file occurs the eofbit is set.

-

Failures are indicated by the state of the stream.

-
Returns
*this
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ibufstream::init (const char * str)
-
-inline
-
-

Initialize an ibufstream

Parameters
- - -
[in]strpointer to string to be parsed Warning: The string will not be copied so must stay in scope.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (istream &(*)(istream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios &(*)(ios &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (bool & arg)
-
-inlineinherited
-
-

Extract a value of type bool.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (short & arg)
-
-inlineinherited
-
-

Extract a value of type short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned short & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (int & arg)
-
-inlineinherited
-
-

Extract a value of type int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned int & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (long & arg)
-
-inlineinherited
-
-

Extract a value of type long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned long & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (double & arg)
-
-inlineinherited
-
-

Extract a value of type double.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (float & arg)
-
-inlineinherited
-
-

Extract a value of type float.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (void *& arg)
-
-inlineinherited
-
-

Extract a value of type void*.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::peek ()
-
-inherited
-
-

Return the next available character without consuming it.

-
Returns
The character if the stream state is good else -1;
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::seekg (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the read pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& istream::seekg (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the read pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void istream::skipWhite ()
-
-inherited
-
-

used to implement ws()

- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type istream::tellg ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/classibufstream__coll__graph.png b/libraries/SdFat/extras/html/classibufstream__coll__graph.png deleted file mode 100644 index d91bbc7..0000000 Binary files a/libraries/SdFat/extras/html/classibufstream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classibufstream__inherit__graph.png b/libraries/SdFat/extras/html/classibufstream__inherit__graph.png deleted file mode 100644 index 0b88104..0000000 Binary files a/libraries/SdFat/extras/html/classibufstream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classifstream-members.html b/libraries/SdFat/extras/html/classifstream-members.html deleted file mode 100644 index 944d789..0000000 --- a/libraries/SdFat/extras/html/classifstream-members.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ifstream Member List
-
-
- -

This is the complete list of members for ifstream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
close()ifstreaminline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
fmtflags typedefios_base
gcount() const istreaminline
get()istream
get(char &ch)istream
get(char *str, streamsize n, char delim= '\n')istream
getline(char *str, streamsize n, char delim= '\n')istream
good() const iosinline
goodbitios_basestatic
hexios_basestatic
ifstream() (defined in ifstream)ifstreaminline
ifstream(const char *path, openmode mode=in)ifstreaminlineexplicit
ignore(streamsize n=1, int delim=-1)istream
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
is_open()ifstreaminline
istream() (defined in istream)istreaminline
leftios_basestatic
octios_basestatic
off_type typedefios_base
open(const char *path, openmode mode=in)ifstreaminline
FatStreamBase::open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate
FatStreamBase::open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate
FatStreamBase::open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator>>(istream &(*pf)(istream &str))istreaminline
operator>>(ios_base &(*pf)(ios_base &str))istreaminline
operator>>(ios &(*pf)(ios &str))istreaminline
operator>>(char *str)istreaminline
operator>>(char &ch)istreaminline
operator>>(signed char *str)istreaminline
operator>>(signed char &ch)istreaminline
operator>>(unsigned char *str)istreaminline
operator>>(unsigned char &ch)istreaminline
operator>>(bool &arg)istreaminline
operator>>(short &arg)istreaminline
operator>>(unsigned short &arg)istreaminline
operator>>(int &arg)istreaminline
operator>>(unsigned int &arg)istreaminline
operator>>(long &arg)istreaminline
operator>>(unsigned long &arg)istreaminline
operator>>(double &arg)istreaminline
operator>>(float &arg)istreaminline
operator>>(void *&arg)istreaminline
outios_basestatic
istream::peek()istream
FatStreamBase::peek()FatFileprivate
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekg(pos_type pos)istreaminline
seekg(off_type off, seekdir way)istreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipWhite()istream
skipwsios_basestatic
streamsize typedefios_base
tellg()istreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classifstream.html b/libraries/SdFat/extras/html/classifstream.html deleted file mode 100644 index 6df95f3..0000000 --- a/libraries/SdFat/extras/html/classifstream.html +++ /dev/null @@ -1,2649 +0,0 @@ - - - - - - -SdFat: ifstream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

file input stream. - More...

- -

#include <fstream.h>

-
-Inheritance diagram for ifstream:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for ifstream:
-
-
Collaboration graph
- - - - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
void close ()
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
 ifstream (const char *path, openmode mode=in)
 
istreamignore (streamsize n=1, int delim=-1)
 
bool is_open ()
 
void open (const char *path, openmode mode=in)
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (ios &(*pf)(ios &str))
 
istreamoperator>> (char *str)
 
istreamoperator>> (char &ch)
 
istreamoperator>> (signed char *str)
 
istreamoperator>> (signed char &ch)
 
istreamoperator>> (unsigned char *str)
 
istreamoperator>> (unsigned char &ch)
 
istreamoperator>> (bool &arg)
 
istreamoperator>> (short &arg)
 
istreamoperator>> (unsigned short &arg)
 
istreamoperator>> (int &arg)
 
istreamoperator>> (unsigned int &arg)
 
istreamoperator>> (long &arg)
 
istreamoperator>> (unsigned long &arg)
 
istreamoperator>> (double &arg)
 
istreamoperator>> (float &arg)
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void skipWhite ()
 
pos_type tellg ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
- - - - - - - - - -

-Private Member Functions

bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
int peek ()
 
-

Detailed Description

-

file input stream.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ifstream::ifstream (const char * path,
openmode mode = in 
)
-
-inlineexplicit
-
-

Constructor with open

Parameters
- - - -
[in]pathfile to open
[in]modeopen mode
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void ifstream::close ()
-
-inline
-
-

Close a file and force cached data and directory information to be written to the storage device.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
streamsize istream::gcount () const
-
-inlineinherited
-
-
Returns
The number of characters extracted by the last unformatted input function.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::get ()
-
-inherited
-
-

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream & istream::get (char & ch)
-
-inherited
-
-

Extract a character if one is available.

-
Parameters
- - -
[out]chlocation to receive the extracted character.
-
-
-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::get (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters.

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, n is less than 1, n-1 characters are extracted, or the next character equals delim (delim is not extracted). If no characters are extracted failbit is set. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::getline (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, the next character equals delim (delim is extracted), or n-1 characters are extracted.

-

The failbit is set if no characters are extracted or n-1 characters are extracted. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream & istream::ignore (streamsize n = 1,
int delim = -1 
)
-
-inherited
-
-

Extract characters and discard them.

-
Parameters
- - - -
[in]nmaximum number of characters to ignore.
[in]delimDelimiter.
-
-
-

Characters are extracted until extraction fails, n characters are extracted, or the next input character equals delim (the delimiter is extracted). If end-of-file occurs the eofbit is set.

-

Failures are indicated by the state of the stream.

-
Returns
*this
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ifstream::is_open ()
-
-inline
-
-
Returns
True if stream is open else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ifstream::open (const char * path,
openmode mode = in 
)
-
-inline
-
-

Open an ifstream

Parameters
- - - -
[in]pathfile to open
[in]modeopen mode
-
-
-

mode See fstream::open() for valid modes.

- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (istream &(*)(istream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios &(*)(ios &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (bool & arg)
-
-inlineinherited
-
-

Extract a value of type bool.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (short & arg)
-
-inlineinherited
-
-

Extract a value of type short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned short & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (int & arg)
-
-inlineinherited
-
-

Extract a value of type int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned int & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (long & arg)
-
-inlineinherited
-
-

Extract a value of type long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned long & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (double & arg)
-
-inlineinherited
-
-

Extract a value of type double.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (float & arg)
-
-inlineinherited
-
-

Extract a value of type float.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (void *& arg)
-
-inlineinherited
-
-

Extract a value of type void*.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::peek ()
-
-inherited
-
-

Return the next available character without consuming it.

-
Returns
The character if the stream state is good else -1;
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::seekg (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the read pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& istream::seekg (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the read pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void istream::skipWhite ()
-
-inherited
-
-

used to implement ws()

- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type istream::tellg ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/fstream.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/classifstream__coll__graph.png b/libraries/SdFat/extras/html/classifstream__coll__graph.png deleted file mode 100644 index 6a2a32d..0000000 Binary files a/libraries/SdFat/extras/html/classifstream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classifstream__inherit__graph.png b/libraries/SdFat/extras/html/classifstream__inherit__graph.png deleted file mode 100644 index 6a2a32d..0000000 Binary files a/libraries/SdFat/extras/html/classifstream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classios-members.html b/libraries/SdFat/extras/html/classios-members.html deleted file mode 100644 index 8d4dbce..0000000 --- a/libraries/SdFat/extras/html/classios-members.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ios Member List
-
-
- -

This is the complete list of members for ios, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
fmtflags typedefios_base
good() const iosinline
goodbitios_basestatic
hexios_basestatic
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
outios_basestatic
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipwsios_basestatic
streamsize typedefios_base
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classios.html b/libraries/SdFat/extras/html/classios.html deleted file mode 100644 index f076a24..0000000 --- a/libraries/SdFat/extras/html/classios.html +++ /dev/null @@ -1,1502 +0,0 @@ - - - - - - -SdFat: ios Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Error and state information for all streams. - More...

- -

#include <ios.h>

-
-Inheritance diagram for ios:
-
-
Inheritance graph
- - - - - - - - - - - - - - -
[legend]
-
-Collaboration diagram for ios:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
bool good () const
 
 ios ()
 
 operator const void * () const
 
bool operator! () const
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

Error and state information for all streams.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
ios::ios ()
-
-inline
-
-

Create ios with no error flags set

- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inline
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inline
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inline
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inline
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inline
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inline
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inline
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inline
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inline
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/ios.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/classios__base-members.html b/libraries/SdFat/extras/html/classios__base-members.html deleted file mode 100644 index ec1a743..0000000 --- a/libraries/SdFat/extras/html/classios__base-members.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ios_base Member List
-
-
- -

This is the complete list of members for ios_base, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
cur enum valueios_base
decios_basestatic
end enum valueios_base
eofbitios_basestatic
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
fmtflags typedefios_base
goodbitios_basestatic
hexios_basestatic
inios_basestatic
internalios_basestatic
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
outios_basestatic
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
rightios_basestatic
seekdir enum nameios_base
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipwsios_basestatic
streamsize typedefios_base
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classios__base.html b/libraries/SdFat/extras/html/classios__base.html deleted file mode 100644 index f3d3af7..0000000 --- a/libraries/SdFat/extras/html/classios__base.html +++ /dev/null @@ -1,1161 +0,0 @@ - - - - - - -SdFat: ios_base Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Base class for all streams. - More...

- -

#include <ios.h>

-
-Inheritance diagram for ios_base:
-
-
Inheritance graph
- - - - - - - - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
int precision () const
 
int precision (unsigned int n)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

Base class for all streams.

-

Member Typedef Documentation

- -
-
- - - - -
typedef unsigned int ios_base::fmtflags
-
-

type for format flags

- -
-
- -
-
- - - - -
typedef unsigned char ios_base::iostate
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - -
typedef int32_t ios_base::off_type
-
-

type for relative seek offset

- -
-
- -
-
- - - - -
typedef uint8_t ios_base::openmode
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - -
typedef uint32_t ios_base::pos_type
-
-

type for absolute seek position

- -
-
- -
-
- - - - -
typedef uint32_t ios_base::streamsize
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - -
enum ios_base::seekdir
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inline
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inline
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inline
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inline
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inline
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inline
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inline
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inline
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inline
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inline
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inline
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-static
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-static
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-static
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-static
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-static
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-static
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-static
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-static
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-static
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-static
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-static
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-static
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-static
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-static
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-static
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-static
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-static
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-static
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-static
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-static
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-static
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-static
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-static
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-static
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/ios.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/classios__base__inherit__graph.png b/libraries/SdFat/extras/html/classios__base__inherit__graph.png deleted file mode 100644 index a6d2cfc..0000000 Binary files a/libraries/SdFat/extras/html/classios__base__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classios__coll__graph.png b/libraries/SdFat/extras/html/classios__coll__graph.png deleted file mode 100644 index d817f0a..0000000 Binary files a/libraries/SdFat/extras/html/classios__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classios__inherit__graph.png b/libraries/SdFat/extras/html/classios__inherit__graph.png deleted file mode 100644 index ffb918c..0000000 Binary files a/libraries/SdFat/extras/html/classios__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classiostream-members.html b/libraries/SdFat/extras/html/classiostream-members.html deleted file mode 100644 index 5b4d60b..0000000 --- a/libraries/SdFat/extras/html/classiostream-members.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
iostream Member List
-
-
- -

This is the complete list of members for iostream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
flush()ostreaminline
fmtflags typedefios_base
gcount() const istreaminline
get()istream
get(char &ch)istream
get(char *str, streamsize n, char delim= '\n')istream
getline(char *str, streamsize n, char delim= '\n')istream
good() const iosinline
goodbitios_basestatic
hexios_basestatic
ignore(streamsize n=1, int delim=-1)istream
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
istream() (defined in istream)istreaminline
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator<<(ostream &(*pf)(ostream &str))ostreaminline
operator<<(ios_base &(*pf)(ios_base &str))ostreaminline
operator<<(bool arg)ostreaminline
operator<<(const char *arg)ostreaminline
operator<<(const signed char *arg)ostreaminline
operator<<(const unsigned char *arg)ostreaminline
operator<<(char arg)ostreaminline
operator<<(signed char arg)ostreaminline
operator<<(unsigned char arg)ostreaminline
operator<<(double arg)ostreaminline
operator<<(float arg)ostreaminline
operator<<(short arg)ostreaminline
operator<<(unsigned short arg)ostreaminline
operator<<(int arg)ostreaminline
operator<<(unsigned int arg)ostreaminline
operator<<(long arg)ostreaminline
operator<<(unsigned long arg)ostreaminline
operator<<(const void *arg)ostreaminline
operator<<(const __FlashStringHelper *arg)ostreaminline
operator>>(istream &(*pf)(istream &str))istreaminline
operator>>(ios_base &(*pf)(ios_base &str))istreaminline
operator>>(ios &(*pf)(ios &str))istreaminline
operator>>(char *str)istreaminline
operator>>(char &ch)istreaminline
operator>>(signed char *str)istreaminline
operator>>(signed char &ch)istreaminline
operator>>(unsigned char *str)istreaminline
operator>>(unsigned char &ch)istreaminline
operator>>(bool &arg)istreaminline
operator>>(short &arg)istreaminline
operator>>(unsigned short &arg)istreaminline
operator>>(int &arg)istreaminline
operator>>(unsigned int &arg)istreaminline
operator>>(long &arg)istreaminline
operator>>(unsigned long &arg)istreaminline
operator>>(double &arg)istreaminline
operator>>(float &arg)istreaminline
operator>>(void *&arg)istreaminline
ostream() (defined in ostream)ostreaminline
outios_basestatic
peek()istream
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
put(char ch)ostreaminline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekg(pos_type pos)istreaminline
seekg(off_type off, seekdir way)istreaminline
seekp(pos_type pos)ostreaminline
seekp(off_type off, seekdir way)ostreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipWhite()istream
skipwsios_basestatic
streamsize typedefios_base
tellg()istreaminline
tellp()ostreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classiostream.html b/libraries/SdFat/extras/html/classiostream.html deleted file mode 100644 index e3cf212..0000000 --- a/libraries/SdFat/extras/html/classiostream.html +++ /dev/null @@ -1,3288 +0,0 @@ - - - - - - -SdFat: iostream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Input/Output stream. - More...

- -

#include <iostream.h>

-
-Inheritance diagram for iostream:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for iostream:
-
-
Collaboration graph
- - - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (bool arg)
 
ostreamoperator<< (const char *arg)
 
ostreamoperator<< (const signed char *arg)
 
ostreamoperator<< (const unsigned char *arg)
 
ostreamoperator<< (char arg)
 
ostreamoperator<< (signed char arg)
 
ostreamoperator<< (unsigned char arg)
 
ostreamoperator<< (double arg)
 
ostreamoperator<< (float arg)
 
ostreamoperator<< (short arg)
 
ostreamoperator<< (unsigned short arg)
 
ostreamoperator<< (int arg)
 
ostreamoperator<< (unsigned int arg)
 
ostreamoperator<< (long arg)
 
ostreamoperator<< (unsigned long arg)
 
ostreamoperator<< (const void *arg)
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (ios &(*pf)(ios &str))
 
istreamoperator>> (char *str)
 
istreamoperator>> (char &ch)
 
istreamoperator>> (signed char *str)
 
istreamoperator>> (signed char &ch)
 
istreamoperator>> (unsigned char *str)
 
istreamoperator>> (unsigned char &ch)
 
istreamoperator>> (bool &arg)
 
istreamoperator>> (short &arg)
 
istreamoperator>> (unsigned short &arg)
 
istreamoperator>> (int &arg)
 
istreamoperator>> (unsigned int &arg)
 
istreamoperator>> (long &arg)
 
istreamoperator>> (unsigned long &arg)
 
istreamoperator>> (double &arg)
 
istreamoperator>> (float &arg)
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void skipWhite ()
 
pos_type tellg ()
 
pos_type tellp ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

Input/Output stream.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
ostream& ostream::flush ()
-
-inlineinherited
-
-

Flushes the buffer associated with this stream. The flush function calls the sync function of the associated file.

Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
streamsize istream::gcount () const
-
-inlineinherited
-
-
Returns
The number of characters extracted by the last unformatted input function.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::get ()
-
-inherited
-
-

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream & istream::get (char & ch)
-
-inherited
-
-

Extract a character if one is available.

-
Parameters
- - -
[out]chlocation to receive the extracted character.
-
-
-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::get (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters.

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, n is less than 1, n-1 characters are extracted, or the next character equals delim (delim is not extracted). If no characters are extracted failbit is set. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::getline (char * str,
streamsize n,
char delim = '\n' 
)
-
-inherited
-
-

Extract characters

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, the next character equals delim (delim is extracted), or n-1 characters are extracted.

-

The failbit is set if no characters are extracted or n-1 characters are extracted. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream & istream::ignore (streamsize n = 1,
int delim = -1 
)
-
-inherited
-
-

Extract characters and discard them.

-
Parameters
- - - -
[in]nmaximum number of characters to ignore.
[in]delimDelimiter.
-
-
-

Characters are extracted until extraction fails, n characters are extracted, or the next input character equals delim (the delimiter is extracted). If end-of-file occurs the eofbit is set.

-

Failures are indicated by the state of the stream.

-
Returns
*this
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ostream &(*)(ostream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (bool arg)
-
-inlineinherited
-
-

Output bool

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const signed char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const unsigned char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (signed char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (double arg)
-
-inlineinherited
-
-

Output double

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (float arg)
-
-inlineinherited
-
-

Output float

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (short arg)
-
-inlineinherited
-
-

Output signed short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned short arg)
-
-inlineinherited
-
-

Output unsigned short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (int arg)
-
-inlineinherited
-
-

Output signed int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned int arg)
-
-inlineinherited
-
-

Output unsigned int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (long arg)
-
-inlineinherited
-
-

Output signed long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned long arg)
-
-inlineinherited
-
-

Output unsigned long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const void * arg)
-
-inlineinherited
-
-

Output pointer

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const __FlashStringHelper * arg)
-
-inlineinherited
-
-

Output a string from flash using the Arduino F() macro.

Parameters
- - -
[in]argpointing to flash string
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (istream &(*)(istream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios &(*)(ios &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char * str)
-
-inlineinherited
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char & ch)
-
-inlineinherited
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (bool & arg)
-
-inlineinherited
-
-

Extract a value of type bool.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (short & arg)
-
-inlineinherited
-
-

Extract a value of type short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned short & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (int & arg)
-
-inlineinherited
-
-

Extract a value of type int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned int & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (long & arg)
-
-inlineinherited
-
-

Extract a value of type long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned long & arg)
-
-inlineinherited
-
-

Extract a value of type unsigned long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (double & arg)
-
-inlineinherited
-
-

Extract a value of type double.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (float & arg)
-
-inlineinherited
-
-

Extract a value of type float.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (void *& arg)
-
-inlineinherited
-
-

Extract a value of type void*.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - -
int istream::peek ()
-
-inherited
-
-

Return the next available character without consuming it.

-
Returns
The character if the stream state is good else -1;
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::put (char ch)
-
-inlineinherited
-
-

Puts a character in a stream.

-

The unformatted output function inserts the element ch. It returns *this.

-
Parameters
- - -
[in]chThe character
-
-
-
Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::seekg (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the read pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& istream::seekg (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the read pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::seekp (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the write pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& ostream::seekp (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the write pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void istream::skipWhite ()
-
-inherited
-
-

used to implement ws()

- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type istream::tellg ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type ostream::tellp ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/classiostream__coll__graph.png b/libraries/SdFat/extras/html/classiostream__coll__graph.png deleted file mode 100644 index 749d653..0000000 Binary files a/libraries/SdFat/extras/html/classiostream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classiostream__inherit__graph.png b/libraries/SdFat/extras/html/classiostream__inherit__graph.png deleted file mode 100644 index 644dd2d..0000000 Binary files a/libraries/SdFat/extras/html/classiostream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classistream-members.html b/libraries/SdFat/extras/html/classistream-members.html deleted file mode 100644 index 3d57592..0000000 --- a/libraries/SdFat/extras/html/classistream-members.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
istream Member List
-
-
- -

This is the complete list of members for istream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
fmtflags typedefios_base
gcount() const istreaminline
get()istream
get(char &ch)istream
get(char *str, streamsize n, char delim= '\n')istream
getline(char *str, streamsize n, char delim= '\n')istream
good() const iosinline
goodbitios_basestatic
hexios_basestatic
ignore(streamsize n=1, int delim=-1)istream
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
istream() (defined in istream)istreaminline
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator>>(istream &(*pf)(istream &str))istreaminline
operator>>(ios_base &(*pf)(ios_base &str))istreaminline
operator>>(ios &(*pf)(ios &str))istreaminline
operator>>(char *str)istreaminline
operator>>(char &ch)istreaminline
operator>>(signed char *str)istreaminline
operator>>(signed char &ch)istreaminline
operator>>(unsigned char *str)istreaminline
operator>>(unsigned char &ch)istreaminline
operator>>(bool &arg)istreaminline
operator>>(short &arg)istreaminline
operator>>(unsigned short &arg)istreaminline
operator>>(int &arg)istreaminline
operator>>(unsigned int &arg)istreaminline
operator>>(long &arg)istreaminline
operator>>(unsigned long &arg)istreaminline
operator>>(double &arg)istreaminline
operator>>(float &arg)istreaminline
operator>>(void *&arg)istreaminline
outios_basestatic
peek()istream
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekg(pos_type pos)istreaminline
seekg(off_type off, seekdir way)istreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipWhite()istream
skipwsios_basestatic
streamsize typedefios_base
tellg()istreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classistream.html b/libraries/SdFat/extras/html/classistream.html deleted file mode 100644 index dc8d0de..0000000 --- a/libraries/SdFat/extras/html/classistream.html +++ /dev/null @@ -1,2441 +0,0 @@ - - - - - - -SdFat: istream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Input Stream. - More...

- -

#include <istream.h>

-
-Inheritance diagram for istream:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
-
-Collaboration diagram for istream:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
 operator const void * () const
 
bool operator! () const
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (ios &(*pf)(ios &str))
 
istreamoperator>> (char *str)
 
istreamoperator>> (char &ch)
 
istreamoperator>> (signed char *str)
 
istreamoperator>> (signed char &ch)
 
istreamoperator>> (unsigned char *str)
 
istreamoperator>> (unsigned char &ch)
 
istreamoperator>> (bool &arg)
 
istreamoperator>> (short &arg)
 
istreamoperator>> (unsigned short &arg)
 
istreamoperator>> (int &arg)
 
istreamoperator>> (unsigned int &arg)
 
istreamoperator>> (long &arg)
 
istreamoperator>> (unsigned long &arg)
 
istreamoperator>> (double &arg)
 
istreamoperator>> (float &arg)
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int precision () const
 
int precision (unsigned int n)
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void skipWhite ()
 
pos_type tellg ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

Input Stream.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
streamsize istream::gcount () const
-
-inline
-
-
Returns
The number of characters extracted by the last unformatted input function.
- -
-
- -
-
- - - - - - - -
int istream::get ()
-
-

Extract a character if one is available.

-
Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - - - - -
istream & istream::get (char & ch)
-
-

Extract a character if one is available.

-
Parameters
- - -
[out]chlocation to receive the extracted character.
-
-
-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::get (char * str,
streamsize n,
char delim = '\n' 
)
-
-

Extract characters.

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, n is less than 1, n-1 characters are extracted, or the next character equals delim (delim is not extracted). If no characters are extracted failbit is set. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
istream & istream::getline (char * str,
streamsize n,
char delim = '\n' 
)
-
-

Extract characters

-
Parameters
- - - - -
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter
-
-
-

Characters are extracted until extraction fails, the next character equals delim (delim is extracted), or n-1 characters are extracted.

-

The failbit is set if no characters are extracted or n-1 characters are extracted. If end-of-file occurs the eofbit is set.

-
Returns
always returns *this. A failure is indicated by the stream state.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - - - - - - - - - - - - - - -
istream & istream::ignore (streamsize n = 1,
int delim = -1 
)
-
-

Extract characters and discard them.

-
Parameters
- - - -
[in]nmaximum number of characters to ignore.
[in]delimDelimiter.
-
-
-

Characters are extracted until extraction fails, n characters are extracted, or the next input character equals delim (the delimiter is extracted). If end-of-file occurs the eofbit is set.

-

Failures are indicated by the state of the stream.

-
Returns
*this
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (istream &(*)(istream &str) pf)
-
-inline
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios_base &(*)(ios_base &str) pf)
-
-inline
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (ios &(*)(ios &str) pf)
-
-inline
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char * str)
-
-inline
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (char & ch)
-
-inline
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char * str)
-
-inline
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (signed char & ch)
-
-inline
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char * str)
-
-inline
-
-

Extract a character string

Parameters
- - -
[out]strlocation to store the string.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned char & ch)
-
-inline
-
-

Extract a character

Parameters
- - -
[out]chlocation to store the character.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (bool & arg)
-
-inline
-
-

Extract a value of type bool.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (short & arg)
-
-inline
-
-

Extract a value of type short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned short & arg)
-
-inline
-
-

Extract a value of type unsigned short.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (int & arg)
-
-inline
-
-

Extract a value of type int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned int & arg)
-
-inline
-
-

Extract a value of type unsigned int.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (long & arg)
-
-inline
-
-

Extract a value of type long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (unsigned long & arg)
-
-inline
-
-

Extract a value of type unsigned long.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (double & arg)
-
-inline
-
-

Extract a value of type double.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (float & arg)
-
-inline
-
-

Extract a value of type float.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::operator>> (void *& arg)
-
-inline
-
-

Extract a value of type void*.

Parameters
- - -
[out]arglocation to store the value.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - - - -
int istream::peek ()
-
-

Return the next available character without consuming it.

-
Returns
The character if the stream state is good else -1;
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& istream::seekg (pos_type pos)
-
-inline
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the read pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& istream::seekg (off_type off,
seekdir way 
)
-
-inline
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the read pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - - - -
void istream::skipWhite ()
-
-

used to implement ws()

- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type istream::tellg ()
-
-inline
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/FatLib/istream.h
  • -
  • Arduino/libraries/SdFat/src/FatLib/istream.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/classistream__coll__graph.png b/libraries/SdFat/extras/html/classistream__coll__graph.png deleted file mode 100644 index d4c4e3a..0000000 Binary files a/libraries/SdFat/extras/html/classistream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classistream__inherit__graph.png b/libraries/SdFat/extras/html/classistream__inherit__graph.png deleted file mode 100644 index aa20a7a..0000000 Binary files a/libraries/SdFat/extras/html/classistream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classobufstream-members.html b/libraries/SdFat/extras/html/classobufstream-members.html deleted file mode 100644 index 8a13942..0000000 --- a/libraries/SdFat/extras/html/classobufstream-members.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
obufstream Member List
-
-
- -

This is the complete list of members for obufstream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
buf()obufstreaminline
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
flush()ostreaminline
fmtflags typedefios_base
good() const iosinline
goodbitios_basestatic
hexios_basestatic
inios_basestatic
init(char *buf, size_t size)obufstreaminline
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
leftios_basestatic
length()obufstreaminline
obufstream()obufstreaminline
obufstream(char *buf, size_t size)obufstreaminline
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator<<(ostream &(*pf)(ostream &str))ostreaminline
operator<<(ios_base &(*pf)(ios_base &str))ostreaminline
operator<<(bool arg)ostreaminline
operator<<(const char *arg)ostreaminline
operator<<(const signed char *arg)ostreaminline
operator<<(const unsigned char *arg)ostreaminline
operator<<(char arg)ostreaminline
operator<<(signed char arg)ostreaminline
operator<<(unsigned char arg)ostreaminline
operator<<(double arg)ostreaminline
operator<<(float arg)ostreaminline
operator<<(short arg)ostreaminline
operator<<(unsigned short arg)ostreaminline
operator<<(int arg)ostreaminline
operator<<(unsigned int arg)ostreaminline
operator<<(long arg)ostreaminline
operator<<(unsigned long arg)ostreaminline
operator<<(const void *arg)ostreaminline
operator<<(const __FlashStringHelper *arg)ostreaminline
ostream() (defined in ostream)ostreaminline
outios_basestatic
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
put(char ch)ostreaminline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekp(pos_type pos)ostreaminline
seekp(off_type off, seekdir way)ostreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipwsios_basestatic
streamsize typedefios_base
tellp()ostreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classobufstream.html b/libraries/SdFat/extras/html/classobufstream.html deleted file mode 100644 index 8a8d7a6..0000000 --- a/libraries/SdFat/extras/html/classobufstream.html +++ /dev/null @@ -1,2425 +0,0 @@ - - - - - - -SdFat: obufstream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

format a char string - More...

- -

#include <bufstream.h>

-
-Inheritance diagram for obufstream:
-
-
Inheritance graph
- - - - - -
[legend]
-
-Collaboration diagram for obufstream:
-
-
Collaboration graph
- - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
char * buf ()
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
void init (char *buf, size_t size)
 
size_t length ()
 
 obufstream ()
 
 obufstream (char *buf, size_t size)
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (bool arg)
 
ostreamoperator<< (const char *arg)
 
ostreamoperator<< (const signed char *arg)
 
ostreamoperator<< (const unsigned char *arg)
 
ostreamoperator<< (char arg)
 
ostreamoperator<< (signed char arg)
 
ostreamoperator<< (unsigned char arg)
 
ostreamoperator<< (double arg)
 
ostreamoperator<< (float arg)
 
ostreamoperator<< (short arg)
 
ostreamoperator<< (unsigned short arg)
 
ostreamoperator<< (int arg)
 
ostreamoperator<< (unsigned int arg)
 
ostreamoperator<< (long arg)
 
ostreamoperator<< (unsigned long arg)
 
ostreamoperator<< (const void *arg)
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
pos_type tellp ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

format a char string

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - -
obufstream::obufstream ()
-
-inline
-
-

constructor

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
obufstream::obufstream (char * buf,
size_t size 
)
-
-inline
-
-

Constructor

Parameters
- - - -
[in]bufbuffer for formatted string
[in]sizebuffer size
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char* obufstream::buf ()
-
-inline
-
-
Returns
a pointer to the buffer
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
ostream& ostream::flush ()
-
-inlineinherited
-
-

Flushes the buffer associated with this stream. The flush function calls the sync function of the associated file.

Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void obufstream::init (char * buf,
size_t size 
)
-
-inline
-
-

Initialize an obufstream

Parameters
- - - -
[in]bufbuffer for formatted string
[in]sizebuffer size
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
size_t obufstream::length ()
-
-inline
-
-
Returns
the length of the formatted string
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ostream &(*)(ostream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (bool arg)
-
-inlineinherited
-
-

Output bool

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const signed char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const unsigned char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (signed char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (double arg)
-
-inlineinherited
-
-

Output double

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (float arg)
-
-inlineinherited
-
-

Output float

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (short arg)
-
-inlineinherited
-
-

Output signed short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned short arg)
-
-inlineinherited
-
-

Output unsigned short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (int arg)
-
-inlineinherited
-
-

Output signed int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned int arg)
-
-inlineinherited
-
-

Output unsigned int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (long arg)
-
-inlineinherited
-
-

Output signed long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned long arg)
-
-inlineinherited
-
-

Output unsigned long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const void * arg)
-
-inlineinherited
-
-

Output pointer

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const __FlashStringHelper * arg)
-
-inlineinherited
-
-

Output a string from flash using the Arduino F() macro.

Parameters
- - -
[in]argpointing to flash string
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::put (char ch)
-
-inlineinherited
-
-

Puts a character in a stream.

-

The unformatted output function inserts the element ch. It returns *this.

-
Parameters
- - -
[in]chThe character
-
-
-
Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::seekp (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the write pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& ostream::seekp (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the write pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type ostream::tellp ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/classobufstream__coll__graph.png b/libraries/SdFat/extras/html/classobufstream__coll__graph.png deleted file mode 100644 index 24cb78c..0000000 Binary files a/libraries/SdFat/extras/html/classobufstream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classobufstream__inherit__graph.png b/libraries/SdFat/extras/html/classobufstream__inherit__graph.png deleted file mode 100644 index 24cb78c..0000000 Binary files a/libraries/SdFat/extras/html/classobufstream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classofstream-members.html b/libraries/SdFat/extras/html/classofstream-members.html deleted file mode 100644 index 20f4929..0000000 --- a/libraries/SdFat/extras/html/classofstream-members.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ofstream Member List
-
-
- -

This is the complete list of members for ofstream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)ofstreaminline
close()ofstreaminline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
flush()ostreaminline
fmtflags typedefios_base
good() const iosinline
goodbitios_basestatic
hexios_basestatic
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
is_open()ofstreaminline
leftios_basestatic
octios_basestatic
off_type typedefios_base
ofstream() (defined in ofstream)ofstreaminline
ofstream(const char *path, ios::openmode mode=out)ofstreaminlineexplicit
open(const char *path, openmode mode=out)ofstreaminline
FatStreamBase::open(FatFileSystem *fs, const char *path, uint8_t oflag)FatFileprivate
FatStreamBase::open(FatFile *dirFile, uint16_t index, uint8_t oflag)FatFileprivate
FatStreamBase::open(FatFile *dirFile, const char *path, uint8_t oflag)FatFileprivate
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator<<(ostream &(*pf)(ostream &str))ostreaminline
operator<<(ios_base &(*pf)(ios_base &str))ostreaminline
operator<<(bool arg)ostreaminline
operator<<(const char *arg)ostreaminline
operator<<(const signed char *arg)ostreaminline
operator<<(const unsigned char *arg)ostreaminline
operator<<(char arg)ostreaminline
operator<<(signed char arg)ostreaminline
operator<<(unsigned char arg)ostreaminline
operator<<(double arg)ostreaminline
operator<<(float arg)ostreaminline
operator<<(short arg)ostreaminline
operator<<(unsigned short arg)ostreaminline
operator<<(int arg)ostreaminline
operator<<(unsigned int arg)ostreaminline
operator<<(long arg)ostreaminline
operator<<(unsigned long arg)ostreaminline
operator<<(const void *arg)ostreaminline
operator<<(const __FlashStringHelper *arg)ostreaminline
ostream() (defined in ostream)ostreaminline
outios_basestatic
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
put(char ch)ostreaminline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekp(pos_type pos)ostreaminline
seekp(off_type off, seekdir way)ostreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipwsios_basestatic
streamsize typedefios_base
tellp()ostreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classofstream.html b/libraries/SdFat/extras/html/classofstream.html deleted file mode 100644 index bd05951..0000000 --- a/libraries/SdFat/extras/html/classofstream.html +++ /dev/null @@ -1,2413 +0,0 @@ - - - - - - -SdFat: ofstream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

file output stream. - More...

- -

#include <fstream.h>

-
-Inheritance diagram for ofstream:
-
-
Inheritance graph
- - - - - - - -
[legend]
-
-Collaboration diagram for ofstream:
-
-
Collaboration graph
- - - - - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
void close ()
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
bool is_open ()
 
 ofstream (const char *path, ios::openmode mode=out)
 
void open (const char *path, openmode mode=out)
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (bool arg)
 
ostreamoperator<< (const char *arg)
 
ostreamoperator<< (const signed char *arg)
 
ostreamoperator<< (const unsigned char *arg)
 
ostreamoperator<< (char arg)
 
ostreamoperator<< (signed char arg)
 
ostreamoperator<< (unsigned char arg)
 
ostreamoperator<< (double arg)
 
ostreamoperator<< (float arg)
 
ostreamoperator<< (short arg)
 
ostreamoperator<< (unsigned short arg)
 
ostreamoperator<< (int arg)
 
ostreamoperator<< (unsigned int arg)
 
ostreamoperator<< (long arg)
 
ostreamoperator<< (unsigned long arg)
 
ostreamoperator<< (const void *arg)
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
pos_type tellp ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
- - - - - - - -

-Private Member Functions

bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
-

Detailed Description

-

file output stream.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ofstream::ofstream (const char * path,
ios::openmode mode = out 
)
-
-inlineexplicit
-
-

Constructor with open

Parameters
- - - -
[in]pathfile to open
[in]modeopen mode
-
-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ofstream::clear (iostate state = goodbit)
-
-inline
-
-

Clear state and writeError

Parameters
- - -
[in]statenew state for stream
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
void ofstream::close ()
-
-inline
-
-

Close a file and force cached data and directory information to be written to the storage device.

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
ostream& ostream::flush ()
-
-inlineinherited
-
-

Flushes the buffer associated with this stream. The flush function calls the sync function of the associated file.

Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ofstream::is_open ()
-
-inline
-
-
Returns
True if stream is open else false.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
void ofstream::open (const char * path,
openmode mode = out 
)
-
-inline
-
-

Open an ofstream

Parameters
- - - -
[in]pathfile to open
[in]modeopen mode
-
-
-

mode See fstream::open() for valid modes.

- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ostream &(*)(ostream &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ios_base &(*)(ios_base &str) pf)
-
-inlineinherited
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (bool arg)
-
-inlineinherited
-
-

Output bool

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const signed char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const unsigned char * arg)
-
-inlineinherited
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (signed char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned char arg)
-
-inlineinherited
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (double arg)
-
-inlineinherited
-
-

Output double

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (float arg)
-
-inlineinherited
-
-

Output float

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (short arg)
-
-inlineinherited
-
-

Output signed short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned short arg)
-
-inlineinherited
-
-

Output unsigned short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (int arg)
-
-inlineinherited
-
-

Output signed int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned int arg)
-
-inlineinherited
-
-

Output unsigned int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (long arg)
-
-inlineinherited
-
-

Output signed long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned long arg)
-
-inlineinherited
-
-

Output unsigned long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const void * arg)
-
-inlineinherited
-
-

Output pointer

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const __FlashStringHelper * arg)
-
-inlineinherited
-
-

Output a string from flash using the Arduino F() macro.

Parameters
- - -
[in]argpointing to flash string
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::put (char ch)
-
-inlineinherited
-
-

Puts a character in a stream.

-

The unformatted output function inserts the element ch. It returns *this.

-
Parameters
- - -
[in]chThe character
-
-
-
Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::seekp (pos_type pos)
-
-inlineinherited
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the write pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& ostream::seekp (off_type off,
seekdir way 
)
-
-inlineinherited
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the write pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type ostream::tellp ()
-
-inlineinherited
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/fstream.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/classofstream__coll__graph.png b/libraries/SdFat/extras/html/classofstream__coll__graph.png deleted file mode 100644 index bb2fc85..0000000 Binary files a/libraries/SdFat/extras/html/classofstream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classofstream__inherit__graph.png b/libraries/SdFat/extras/html/classofstream__inherit__graph.png deleted file mode 100644 index bb2fc85..0000000 Binary files a/libraries/SdFat/extras/html/classofstream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classostream-members.html b/libraries/SdFat/extras/html/classostream-members.html deleted file mode 100644 index c0238d2..0000000 --- a/libraries/SdFat/extras/html/classostream-members.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
ostream Member List
-
-
- -

This is the complete list of members for ostream, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
adjustfieldios_basestatic
appios_basestatic
ateios_basestatic
bad() const iosinline
badbitios_basestatic
basefieldios_basestatic
beg enum valueios_base
binaryios_basestatic
boolalphaios_basestatic
clear(iostate state=goodbit)iosinline
cur enum valueios_base
decios_basestatic
end enum valueios_base
eof() const iosinline
eofbitios_basestatic
fail() const iosinline
failbitios_basestatic
fill()ios_baseinline
fill(char c)ios_baseinline
flags() const ios_baseinline
flags(fmtflags fl)ios_baseinline
flush()ostreaminline
fmtflags typedefios_base
good() const iosinline
goodbitios_basestatic
hexios_basestatic
inios_basestatic
internalios_basestatic
ios()iosinline
ios_base() (defined in ios_base)ios_baseinline
iostate typedefios_base
leftios_basestatic
octios_basestatic
off_type typedefios_base
openmode typedefios_base
operator const void *() const iosinline
operator!() const iosinline
operator<<(ostream &(*pf)(ostream &str))ostreaminline
operator<<(ios_base &(*pf)(ios_base &str))ostreaminline
operator<<(bool arg)ostreaminline
operator<<(const char *arg)ostreaminline
operator<<(const signed char *arg)ostreaminline
operator<<(const unsigned char *arg)ostreaminline
operator<<(char arg)ostreaminline
operator<<(signed char arg)ostreaminline
operator<<(unsigned char arg)ostreaminline
operator<<(double arg)ostreaminline
operator<<(float arg)ostreaminline
operator<<(short arg)ostreaminline
operator<<(unsigned short arg)ostreaminline
operator<<(int arg)ostreaminline
operator<<(unsigned int arg)ostreaminline
operator<<(long arg)ostreaminline
operator<<(unsigned long arg)ostreaminline
operator<<(const void *arg)ostreaminline
operator<<(const __FlashStringHelper *arg)ostreaminline
ostream() (defined in ostream)ostreaminline
outios_basestatic
pos_type typedefios_base
precision() const ios_baseinline
precision(unsigned int n)ios_baseinline
put(char ch)ostreaminline
rdstate() const iosinline
rightios_basestatic
seekdir enum nameios_base
seekp(pos_type pos)ostreaminline
seekp(off_type off, seekdir way)ostreaminline
setf(fmtflags fl)ios_baseinline
setf(fmtflags fl, fmtflags mask)ios_baseinline
setstate(iostate state)iosinline
showbaseios_basestatic
showpointios_basestatic
showposios_basestatic
skipwsios_basestatic
streamsize typedefios_base
tellp()ostreaminline
truncios_basestatic
unsetf(fmtflags fl)ios_baseinline
uppercaseios_basestatic
width()ios_baseinline
width(unsigned n)ios_baseinline
- - - - diff --git a/libraries/SdFat/extras/html/classostream.html b/libraries/SdFat/extras/html/classostream.html deleted file mode 100644 index d90519e..0000000 --- a/libraries/SdFat/extras/html/classostream.html +++ /dev/null @@ -1,2264 +0,0 @@ - - - - - - -SdFat: ostream Class Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

Output Stream. - More...

- -

#include <ostream.h>

-
-Inheritance diagram for ostream:
-
-
Inheritance graph
- - - - - - - - - -
[legend]
-
-Collaboration diagram for ostream:
-
-
Collaboration graph
- - - - -
[legend]
- - - - - - - - - - - - - - - - -

-Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, -cur, -end - }
 
typedef uint32_t streamsize
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
bool good () const
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (bool arg)
 
ostreamoperator<< (const char *arg)
 
ostreamoperator<< (const signed char *arg)
 
ostreamoperator<< (const unsigned char *arg)
 
ostreamoperator<< (char arg)
 
ostreamoperator<< (signed char arg)
 
ostreamoperator<< (unsigned char arg)
 
ostreamoperator<< (double arg)
 
ostreamoperator<< (float arg)
 
ostreamoperator<< (short arg)
 
ostreamoperator<< (unsigned short arg)
 
ostreamoperator<< (int arg)
 
ostreamoperator<< (unsigned int arg)
 
ostreamoperator<< (long arg)
 
ostreamoperator<< (unsigned long arg)
 
ostreamoperator<< (const void *arg)
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
pos_type tellp ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 
-

Detailed Description

-

Output Stream.

-

Member Typedef Documentation

- -
-
- - - - - -
- - - - -
typedef unsigned int ios_base::fmtflags
-
-inherited
-
-

type for format flags

- -
-
- -
-
- - - - - -
- - - - -
typedef unsigned char ios_base::iostate
-
-inherited
-
-

typedef for iostate bitmask

- -
-
- -
-
- - - - - -
- - - - -
typedef int32_t ios_base::off_type
-
-inherited
-
-

type for relative seek offset

- -
-
- -
-
- - - - - -
- - - - -
typedef uint8_t ios_base::openmode
-
-inherited
-
-

typedef for iostream open mode

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::pos_type
-
-inherited
-
-

type for absolute seek position

- -
-
- -
-
- - - - - -
- - - - -
typedef uint32_t ios_base::streamsize
-
-inherited
-
-

unsigned size that can represent maximum file size. (violates spec - should be signed)

- -
-
-

Member Enumeration Documentation

- -
-
- - - - - -
- - - - -
enum ios_base::seekdir
-
-inherited
-
-

enumerated type for the direction of relative seeks

- - - - -
Enumerator
beg  -

seek relative to the beginning of the stream

-
cur  -

seek relative to the current stream position

-
end  -

seek relative to the end of the stream

-
- -
-
-

Member Function Documentation

- -
-
- - - - - -
- - - - - - - -
bool ios::bad () const
-
-inlineinherited
-
-
Returns
true if bad bit is set else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::clear (iostate state = goodbit)
-
-inlineinherited
-
-

Clear iostate bits.

-
Parameters
- - -
[in]stateThe flags you want to set after clearing all flags.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::eof () const
-
-inlineinherited
-
-
Returns
true if end of file has been reached else false.
-

Warning: An empty file returns false before the first read.

-

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::fail () const
-
-inlineinherited
-
-
Returns
true if any iostate bit other than eof are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
char ios_base::fill ()
-
-inlineinherited
-
-
Returns
fill character
- -
-
- -
-
- - - - - -
- - - - - - - - -
char ios_base::fill (char c)
-
-inlineinherited
-
-

Set fill character

Parameters
- - -
[in]cnew fill character
-
-
-
Returns
old fill character
- -
-
- -
-
- - - - - -
- - - - - - - -
fmtflags ios_base::flags () const
-
-inlineinherited
-
-
Returns
format flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::flags (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flag
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
ostream& ostream::flush ()
-
-inline
-
-

Flushes the buffer associated with this stream. The flush function calls the sync function of the associated file.

Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::good () const
-
-inlineinherited
-
-
Returns
True if no iostate flags are set else false.
- -
-
- -
-
- - - - - -
- - - - - - - -
ios::operator const void * () const
-
-inlineinherited
-
-
Returns
null pointer if fail() is true.
- -
-
- -
-
- - - - - -
- - - - - - - -
bool ios::operator! () const
-
-inlineinherited
-
-
Returns
true if fail() else false.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ostream &(*)(ostream &str) pf)
-
-inline
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (ios_base &(*)(ios_base &str) pf)
-
-inline
-
-

call manipulator

Parameters
- - -
[in]pffunction to call
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (bool arg)
-
-inline
-
-

Output bool

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const char * arg)
-
-inline
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const signed char * arg)
-
-inline
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const unsigned char * arg)
-
-inline
-
-

Output string

Parameters
- - -
[in]argstring to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (char arg)
-
-inline
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (signed char arg)
-
-inline
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned char arg)
-
-inline
-
-

Output character

Parameters
- - -
[in]argcharacter to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (double arg)
-
-inline
-
-

Output double

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (float arg)
-
-inline
-
-

Output float

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (short arg)
-
-inline
-
-

Output signed short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned short arg)
-
-inline
-
-

Output unsigned short

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (int arg)
-
-inline
-
-

Output signed int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned int arg)
-
-inline
-
-

Output unsigned int

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (long arg)
-
-inline
-
-

Output signed long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (unsigned long arg)
-
-inline
-
-

Output unsigned long

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const void * arg)
-
-inline
-
-

Output pointer

Parameters
- - -
[in]argvalue to output
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::operator<< (const __FlashStringHelper * arg)
-
-inline
-
-

Output a string from flash using the Arduino F() macro.

Parameters
- - -
[in]argpointing to flash string
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - -
int ios_base::precision () const
-
-inlineinherited
-
-
Returns
precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
int ios_base::precision (unsigned int n)
-
-inlineinherited
-
-

set precision

Parameters
- - -
[in]nnew precision
-
-
-
Returns
old precision
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::put (char ch)
-
-inline
-
-

Puts a character in a stream.

-

The unformatted output function inserts the element ch. It returns *this.

-
Parameters
- - -
[in]chThe character
-
-
-
Returns
A reference to the ostream object.
- -
-
- -
-
- - - - - -
- - - - - - - -
iostate ios::rdstate () const
-
-inlineinherited
-
-
Returns
The iostate flags for this file.
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& ostream::seekp (pos_type pos)
-
-inline
-
-

Set the stream position

Parameters
- - -
[in]posThe absolute position in which to move the write pointer.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& ostream::seekp (off_type off,
seekdir way 
)
-
-inline
-
-

Set the stream position.

-
Parameters
- - - -
[in]offAn offset to move the write pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
-
-
-
Returns
Is always *this. Failure is indicated by the state of *this.
- -
-
- -
-
- - - - - -
- - - - - - - - -
fmtflags ios_base::setf (fmtflags fl)
-
-inlineinherited
-
-

set format flags

Parameters
- - -
[in]flnew flags to be or'ed in
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
fmtflags ios_base::setf (fmtflags fl,
fmtflags mask 
)
-
-inlineinherited
-
-

modify format flags

Parameters
- - - -
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios::setstate (iostate state)
-
-inlineinherited
-
-

Set iostate bits.

-
Parameters
- - -
[in]stateBitts to set.
-
-
- -
-
- -
-
- - - - - -
- - - - - - - -
pos_type ostream::tellp ()
-
-inline
-
-
Returns
the stream position
- -
-
- -
-
- - - - - -
- - - - - - - - -
void ios_base::unsetf (fmtflags fl)
-
-inlineinherited
-
-

clear format flags

Parameters
- - -
[in]flflags to be cleared
-
-
-
Returns
old flags
- -
-
- -
-
- - - - - -
- - - - - - - -
unsigned ios_base::width ()
-
-inlineinherited
-
-
Returns
width
- -
-
- -
-
- - - - - -
- - - - - - - - -
unsigned ios_base::width (unsigned n)
-
-inlineinherited
-
-

set width

Parameters
- - -
[in]nnew width
-
-
-
Returns
old width
- -
-
-

Member Data Documentation

- -
-
- - - - - -
- - - - -
const fmtflags ios_base::adjustfield = left | right | internal
-
-staticinherited
-
-

mask for adjustfield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::app = 0X4
-
-staticinherited
-
-

seek to end before each write

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::ate = 0X8
-
-staticinherited
-
-

open and seek to end immediately after opening

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::badbit = 0X01
-
-staticinherited
-
-

iostate bad bit for a nonrecoverable error.

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::basefield = dec | hex | oct
-
-staticinherited
-
-

mask for basefield

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::binary = 0X10
-
-staticinherited
-
-

perform input and output in binary mode (as opposed to text mode)

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::boolalpha = 0x0100
-
-staticinherited
-
-

use strings true/false for bool

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::dec = 0x0008
-
-staticinherited
-
-

base 10 flag

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::eofbit = 0x02
-
-staticinherited
-
-

iostate bit for end of file reached

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::failbit = 0X04
-
-staticinherited
-
-

iostate fail bit for nonfatal error

- -
-
- -
-
- - - - - -
- - - - -
const iostate ios_base::goodbit = 0x00
-
-staticinherited
-
-

iostate for no flags

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::hex = 0x0010
-
-staticinherited
-
-

base 16 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::in = 0X20
-
-staticinherited
-
-

open for input

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::internal = 0x0004
-
-staticinherited
-
-

fill between sign/base prefix and number

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::left = 0x0001
-
-staticinherited
-
-

left adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::oct = 0x0020
-
-staticinherited
-
-

base 8 flag

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::out = 0X40
-
-staticinherited
-
-

open for output

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::right = 0x0002
-
-staticinherited
-
-

right adjust fields

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showbase = 0x0200
-
-staticinherited
-
-

use prefix 0X for hex and 0 for oct

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpoint = 0x0400
-
-staticinherited
-
-

always show '.' for floating numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::showpos = 0x0800
-
-staticinherited
-
-

show + sign for nonnegative numbers

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::skipws = 0x1000
-
-staticinherited
-
-

skip initial white space

- -
-
- -
-
- - - - - -
- - - - -
const openmode ios_base::trunc = 0X80
-
-staticinherited
-
-

truncate an existing stream when opening

- -
-
- -
-
- - - - - -
- - - - -
const fmtflags ios_base::uppercase = 0x4000
-
-staticinherited
-
-

use uppercase letters in number representations

- -
-
-
The documentation for this class was generated from the following files:
    -
  • Arduino/libraries/SdFat/src/FatLib/ostream.h
  • -
  • Arduino/libraries/SdFat/src/FatLib/ostream.cpp
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/classostream__coll__graph.png b/libraries/SdFat/extras/html/classostream__coll__graph.png deleted file mode 100644 index 361df37..0000000 Binary files a/libraries/SdFat/extras/html/classostream__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/classostream__inherit__graph.png b/libraries/SdFat/extras/html/classostream__inherit__graph.png deleted file mode 100644 index e83f407..0000000 Binary files a/libraries/SdFat/extras/html/classostream__inherit__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/closed.png b/libraries/SdFat/extras/html/closed.png deleted file mode 100644 index 98cc2c9..0000000 Binary files a/libraries/SdFat/extras/html/closed.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dir_000004_000006.html b/libraries/SdFat/extras/html/dir_000004_000006.html deleted file mode 100644 index 221cbdb..0000000 --- a/libraries/SdFat/extras/html/dir_000004_000006.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src -> SdCard Relation - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-

src → SdCard Relation

File in Arduino/libraries/SdFat/srcIncludes file in Arduino/libraries/SdFat/src/SdCard
BlockDriver.hSdSpiCard.h
- - - - diff --git a/libraries/SdFat/extras/html/dir_1281b15c327061056ab3b326e90c50cf.html b/libraries/SdFat/extras/html/dir_1281b15c327061056ab3b326e90c50cf.html deleted file mode 100644 index bd9af57..0000000 --- a/libraries/SdFat/extras/html/dir_1281b15c327061056ab3b326e90c50cf.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat Directory Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
SdFat Directory Reference
-
-
-
-Directory dependency graph for SdFat:
-
-
Arduino/libraries/SdFat
- - - - - - -
- - - - - - -

-Directories

directory  MainPage
 
directory  src
 
-
- - - - diff --git a/libraries/SdFat/extras/html/dir_1281b15c327061056ab3b326e90c50cf_dep.png b/libraries/SdFat/extras/html/dir_1281b15c327061056ab3b326e90c50cf_dep.png deleted file mode 100644 index 15491fb..0000000 Binary files a/libraries/SdFat/extras/html/dir_1281b15c327061056ab3b326e90c50cf_dep.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dir_481cc946b8a81b8d9363a4aad6201160.html b/libraries/SdFat/extras/html/dir_481cc946b8a81b8d9363a4aad6201160.html deleted file mode 100644 index 48ffe01..0000000 --- a/libraries/SdFat/extras/html/dir_481cc946b8a81b8d9363a4aad6201160.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - -SdFat: Arduino/libraries Directory Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
libraries Directory Reference
-
-
-
-Directory dependency graph for libraries:
-
-
Arduino/libraries
- - - - - -
- - - - -

-Directories

directory  SdFat
 
-
- - - - diff --git a/libraries/SdFat/extras/html/dir_481cc946b8a81b8d9363a4aad6201160_dep.png b/libraries/SdFat/extras/html/dir_481cc946b8a81b8d9363a4aad6201160_dep.png deleted file mode 100644 index c1c4249..0000000 Binary files a/libraries/SdFat/extras/html/dir_481cc946b8a81b8d9363a4aad6201160_dep.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dir_63fabcaba1b3b939579f46003349a6c5.html b/libraries/SdFat/extras/html/dir_63fabcaba1b3b939579f46003349a6c5.html deleted file mode 100644 index 68f2bcd..0000000 --- a/libraries/SdFat/extras/html/dir_63fabcaba1b3b939579f46003349a6c5.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/MainPage Directory Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
MainPage Directory Reference
-
-
-
-Directory dependency graph for MainPage:
-
-
Arduino/libraries/SdFat/MainPage
- - - - -
- - - - -

-Files

file  SdFatmainpage.h
 
-
- - - - diff --git a/libraries/SdFat/extras/html/dir_63fabcaba1b3b939579f46003349a6c5_dep.png b/libraries/SdFat/extras/html/dir_63fabcaba1b3b939579f46003349a6c5_dep.png deleted file mode 100644 index 61b4195..0000000 Binary files a/libraries/SdFat/extras/html/dir_63fabcaba1b3b939579f46003349a6c5_dep.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dir_7e472674a7b7d2590a789f197241f95f.html b/libraries/SdFat/extras/html/dir_7e472674a7b7d2590a789f197241f95f.html deleted file mode 100644 index 7e61463..0000000 --- a/libraries/SdFat/extras/html/dir_7e472674a7b7d2590a789f197241f95f.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib Directory Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
FatLib Directory Reference
-
-
-
-Directory dependency graph for FatLib:
-
-
Arduino/libraries/SdFat/src/FatLib
- - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  ArduinoFiles.h
 PrintFile class.
 
file  ArduinoStream.h
 ArduinoInStream and ArduinoOutStream classes.
 
file  BaseBlockDriver.h
 
file  bufstream.h
 ibufstream and obufstream classes
 
file  FatApiConstants.h
 
file  FatFile.cpp
 
file  FatFile.h
 FatFile class.
 
file  FatFileLFN.cpp
 
file  FatFilePrint.cpp
 
file  FatFileSFN.cpp
 
file  FatFileSystem.h
 FatFileSystem class.
 
file  FatLib.h
 
file  FatLibConfig.h
 configuration definitions
 
file  FatStructs.h
 FAT file structures.
 
file  FatVolume.cpp
 
file  FatVolume.h
 FatVolume class.
 
file  FmtNumber.cpp
 
file  FmtNumber.h
 
file  fstream.cpp
 
file  fstream.h
 fstream, ifstream, and ofstream classes
 
file  ios.h
 ios_base and ios classes
 
file  iostream.h
 iostream class
 
file  istream.cpp
 
file  istream.h
 istream class
 
file  ostream.cpp
 
file  ostream.h
 ostream class
 
file  StdioStream.cpp
 
file  StdioStream.h
 StdioStream class.
 
-
- - - - diff --git a/libraries/SdFat/extras/html/dir_7e472674a7b7d2590a789f197241f95f_dep.png b/libraries/SdFat/extras/html/dir_7e472674a7b7d2590a789f197241f95f_dep.png deleted file mode 100644 index 0495e08..0000000 Binary files a/libraries/SdFat/extras/html/dir_7e472674a7b7d2590a789f197241f95f_dep.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480.html b/libraries/SdFat/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480.html deleted file mode 100644 index d989928..0000000 --- a/libraries/SdFat/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/SdCard Directory Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
SdCard Directory Reference
-
-
-
-Directory dependency graph for SdCard:
-
-
Arduino/libraries/SdFat/src/SdCard
- - - - -
- - - - - - - - - - - - - -

-Files

file  SdioCard.h
 
file  SdioTeensy.cpp
 
file  SdSpiCard.cpp
 
file  SdSpiCard.h
 SdSpiCard class for V2 SD/SDHC cards.
 
file  SdSpiCardEX.cpp
 
-
- - - - diff --git a/libraries/SdFat/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480_dep.png b/libraries/SdFat/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480_dep.png deleted file mode 100644 index 74f6510..0000000 Binary files a/libraries/SdFat/extras/html/dir_a70af2fb8f1edf8b7124f41d82dbf480_dep.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dir_a991eec27578c865874ede3d8ec657c2.html b/libraries/SdFat/extras/html/dir_a991eec27578c865874ede3d8ec657c2.html deleted file mode 100644 index 5194bad..0000000 --- a/libraries/SdFat/extras/html/dir_a991eec27578c865874ede3d8ec657c2.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - -SdFat: Arduino Directory Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
Arduino Directory Reference
-
-
-
-Directory dependency graph for Arduino:
-
-
Arduino
- - - - -
- - - - -

-Directories

directory  libraries
 
-
- - - - diff --git a/libraries/SdFat/extras/html/dir_a991eec27578c865874ede3d8ec657c2_dep.png b/libraries/SdFat/extras/html/dir_a991eec27578c865874ede3d8ec657c2_dep.png deleted file mode 100644 index d3e8747..0000000 Binary files a/libraries/SdFat/extras/html/dir_a991eec27578c865874ede3d8ec657c2_dep.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e.html b/libraries/SdFat/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e.html deleted file mode 100644 index 27a61b4..0000000 --- a/libraries/SdFat/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src Directory Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
-
- - -
- -
- - -
-
-
-
src Directory Reference
-
-
-
-Directory dependency graph for src:
-
-
Arduino/libraries/SdFat/src
- - - - - - - -
- - - - - - -

-Directories

directory  FatLib
 
directory  SdCard
 
- - - - - - - - - - - - - - - - - - - - - -

-Files

file  BlockDriver.h
 Define block driver.
 
file  FreeStack.h
 FreeStack() function.
 
file  MinimumSerial.cpp
 
file  MinimumSerial.h
 Minimal AVR Serial driver.
 
file  SdFat.h
 SdFat class.
 
file  SdFatConfig.h
 configuration definitions
 
file  SysCall.h
 SysCall class.
 
-
- - - - diff --git a/libraries/SdFat/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e_dep.png b/libraries/SdFat/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e_dep.png deleted file mode 100644 index 52514a4..0000000 Binary files a/libraries/SdFat/extras/html/dir_c18d6c86f7b0afecac5c3a8a9885031e_dep.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/doc.png b/libraries/SdFat/extras/html/doc.png deleted file mode 100644 index 17edabf..0000000 Binary files a/libraries/SdFat/extras/html/doc.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/doxygen.css b/libraries/SdFat/extras/html/doxygen.css deleted file mode 100644 index b2c94ac..0000000 --- a/libraries/SdFat/extras/html/doxygen.css +++ /dev/null @@ -1,1454 +0,0 @@ -/* The standard CSS for doxygen 1.8.10 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 4px 6px; - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: bold; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - border-top-left-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - -moz-border-radius-topleft: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -webkit-border-top-left-radius: 4px; - -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; -} - -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; -} - -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; -} - -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 20px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - diff --git a/libraries/SdFat/extras/html/doxygen.png b/libraries/SdFat/extras/html/doxygen.png deleted file mode 100644 index 3ff17d8..0000000 Binary files a/libraries/SdFat/extras/html/doxygen.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/dynsections.js b/libraries/SdFat/extras/html/dynsections.js deleted file mode 100644 index 85e1836..0000000 --- a/libraries/SdFat/extras/html/dynsections.js +++ /dev/null @@ -1,97 +0,0 @@ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - -SdFat: File List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
-
[detail level 123456]
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
  Arduino
  libraries
  SdFat
  src
  FatLib
 ArduinoFiles.hPrintFile class
 ArduinoStream.hArduinoInStream and ArduinoOutStream classes
 bufstream.hibufstream and obufstream classes
 FatFile.hFatFile class
 FatFileSystem.hFatFileSystem class
 FatLibConfig.hConfiguration definitions
 FatStructs.hFAT file structures
 FatVolume.hFatVolume class
 fstream.hfstream, ifstream, and ofstream classes
 ios.hios_base and ios classes
 iostream.hiostream class
 istream.histream class
 ostream.hostream class
 StdioStream.hStdioStream class
  SdCard
 SdSpiCard.hSdSpiCard class for V2 SD/SDHC cards
 BlockDriver.hDefine block driver
 FreeStack.hFreeStack() function
 MinimumSerial.hMinimal AVR Serial driver
 SdFat.hSdFat class
 SdFatConfig.hConfiguration definitions
 SysCall.hSysCall class
-
-
- - - - diff --git a/libraries/SdFat/extras/html/folderclosed.png b/libraries/SdFat/extras/html/folderclosed.png deleted file mode 100644 index bb8ab35..0000000 Binary files a/libraries/SdFat/extras/html/folderclosed.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/folderopen.png b/libraries/SdFat/extras/html/folderopen.png deleted file mode 100644 index d6c7f67..0000000 Binary files a/libraries/SdFat/extras/html/folderopen.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/fstream_8h.html b/libraries/SdFat/extras/html/fstream_8h.html deleted file mode 100644 index 231b7b3..0000000 --- a/libraries/SdFat/extras/html/fstream_8h.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/fstream.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
fstream.h File Reference
-
-
- -

fstream, ifstream, and ofstream classes -More...

-
#include "FatFile.h"
-#include "iostream.h"
-
-Include dependency graph for fstream.h:
-
-
- - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - -

-Classes

class  FatStreamBase
 Base class for C++ style streams. More...
 
class  fstream
 file input/output stream. More...
 
class  ifstream
 file input stream. More...
 
class  ofstream
 file output stream. More...
 
-

Detailed Description

-

fstream, ifstream, and ofstream classes

-
- - - - diff --git a/libraries/SdFat/extras/html/fstream_8h__incl.png b/libraries/SdFat/extras/html/fstream_8h__incl.png deleted file mode 100644 index a0b3642..0000000 Binary files a/libraries/SdFat/extras/html/fstream_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/functions.html b/libraries/SdFat/extras/html/functions.html deleted file mode 100644 index 5181cdd..0000000 --- a/libraries/SdFat/extras/html/functions.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- a -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_b.html b/libraries/SdFat/extras/html/functions_b.html deleted file mode 100644 index a36bf55..0000000 --- a/libraries/SdFat/extras/html/functions_b.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- b -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_c.html b/libraries/SdFat/extras/html/functions_c.html deleted file mode 100644 index a13f5bb..0000000 --- a/libraries/SdFat/extras/html/functions_c.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- c -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_d.html b/libraries/SdFat/extras/html/functions_d.html deleted file mode 100644 index 851ba0b..0000000 --- a/libraries/SdFat/extras/html/functions_d.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- d -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_e.html b/libraries/SdFat/extras/html/functions_e.html deleted file mode 100644 index eb701a0..0000000 --- a/libraries/SdFat/extras/html/functions_e.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- e -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_enum.html b/libraries/SdFat/extras/html/functions_enum.html deleted file mode 100644 index 23ba8a6..0000000 --- a/libraries/SdFat/extras/html/functions_enum.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -SdFat: Class Members - Enumerations - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/libraries/SdFat/extras/html/functions_eval.html b/libraries/SdFat/extras/html/functions_eval.html deleted file mode 100644 index b9c32f7..0000000 --- a/libraries/SdFat/extras/html/functions_eval.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -SdFat: Class Members - Enumerator - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/libraries/SdFat/extras/html/functions_f.html b/libraries/SdFat/extras/html/functions_f.html deleted file mode 100644 index 6e20235..0000000 --- a/libraries/SdFat/extras/html/functions_f.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- f -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func.html b/libraries/SdFat/extras/html/functions_func.html deleted file mode 100644 index 8af25a3..0000000 --- a/libraries/SdFat/extras/html/functions_func.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_b.html b/libraries/SdFat/extras/html/functions_func_b.html deleted file mode 100644 index d73052a..0000000 --- a/libraries/SdFat/extras/html/functions_func_b.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- b -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_c.html b/libraries/SdFat/extras/html/functions_func_c.html deleted file mode 100644 index 74f5567..0000000 --- a/libraries/SdFat/extras/html/functions_func_c.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- c -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_d.html b/libraries/SdFat/extras/html/functions_func_d.html deleted file mode 100644 index 4860e75..0000000 --- a/libraries/SdFat/extras/html/functions_func_d.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- d -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_e.html b/libraries/SdFat/extras/html/functions_func_e.html deleted file mode 100644 index 529e680..0000000 --- a/libraries/SdFat/extras/html/functions_func_e.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- e -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_f.html b/libraries/SdFat/extras/html/functions_func_f.html deleted file mode 100644 index ccc6ecf..0000000 --- a/libraries/SdFat/extras/html/functions_func_f.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- f -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_g.html b/libraries/SdFat/extras/html/functions_func_g.html deleted file mode 100644 index d534db0..0000000 --- a/libraries/SdFat/extras/html/functions_func_g.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- g -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_h.html b/libraries/SdFat/extras/html/functions_func_h.html deleted file mode 100644 index 105bee3..0000000 --- a/libraries/SdFat/extras/html/functions_func_h.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- h -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_i.html b/libraries/SdFat/extras/html/functions_func_i.html deleted file mode 100644 index 2629982..0000000 --- a/libraries/SdFat/extras/html/functions_func_i.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- i -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_l.html b/libraries/SdFat/extras/html/functions_func_l.html deleted file mode 100644 index 1100063..0000000 --- a/libraries/SdFat/extras/html/functions_func_l.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- l -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_m.html b/libraries/SdFat/extras/html/functions_func_m.html deleted file mode 100644 index 8358b38..0000000 --- a/libraries/SdFat/extras/html/functions_func_m.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- m -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_n.html b/libraries/SdFat/extras/html/functions_func_n.html deleted file mode 100644 index d146086..0000000 --- a/libraries/SdFat/extras/html/functions_func_n.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- n -

    -
  • name() -: File -
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_o.html b/libraries/SdFat/extras/html/functions_func_o.html deleted file mode 100644 index d3b3fc0..0000000 --- a/libraries/SdFat/extras/html/functions_func_o.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- o -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_p.html b/libraries/SdFat/extras/html/functions_func_p.html deleted file mode 100644 index 0bf6965..0000000 --- a/libraries/SdFat/extras/html/functions_func_p.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- p -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_r.html b/libraries/SdFat/extras/html/functions_func_r.html deleted file mode 100644 index 7fa6dff..0000000 --- a/libraries/SdFat/extras/html/functions_func_r.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- r -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_s.html b/libraries/SdFat/extras/html/functions_func_s.html deleted file mode 100644 index 11dd4b9..0000000 --- a/libraries/SdFat/extras/html/functions_func_s.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- s -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_t.html b/libraries/SdFat/extras/html/functions_func_t.html deleted file mode 100644 index 80cb77c..0000000 --- a/libraries/SdFat/extras/html/functions_func_t.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- t -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_u.html b/libraries/SdFat/extras/html/functions_func_u.html deleted file mode 100644 index 5aa7794..0000000 --- a/libraries/SdFat/extras/html/functions_func_u.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- u -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_v.html b/libraries/SdFat/extras/html/functions_func_v.html deleted file mode 100644 index 4748e10..0000000 --- a/libraries/SdFat/extras/html/functions_func_v.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- v -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_w.html b/libraries/SdFat/extras/html/functions_func_w.html deleted file mode 100644 index d8f9805..0000000 --- a/libraries/SdFat/extras/html/functions_func_w.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- w -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_func_y.html b/libraries/SdFat/extras/html/functions_func_y.html deleted file mode 100644 index 7da89ff..0000000 --- a/libraries/SdFat/extras/html/functions_func_y.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - -SdFat: Class Members - Functions - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- y -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_g.html b/libraries/SdFat/extras/html/functions_g.html deleted file mode 100644 index 2e27d12..0000000 --- a/libraries/SdFat/extras/html/functions_g.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- g -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_h.html b/libraries/SdFat/extras/html/functions_h.html deleted file mode 100644 index 1d3f14e..0000000 --- a/libraries/SdFat/extras/html/functions_h.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- h -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_i.html b/libraries/SdFat/extras/html/functions_i.html deleted file mode 100644 index 5d8d8ea..0000000 --- a/libraries/SdFat/extras/html/functions_i.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- i -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_j.html b/libraries/SdFat/extras/html/functions_j.html deleted file mode 100644 index 90eab97..0000000 --- a/libraries/SdFat/extras/html/functions_j.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- j -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_l.html b/libraries/SdFat/extras/html/functions_l.html deleted file mode 100644 index f0bacce..0000000 --- a/libraries/SdFat/extras/html/functions_l.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- l -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_m.html b/libraries/SdFat/extras/html/functions_m.html deleted file mode 100644 index 45d8cb4..0000000 --- a/libraries/SdFat/extras/html/functions_m.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- m -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_n.html b/libraries/SdFat/extras/html/functions_n.html deleted file mode 100644 index 90488c6..0000000 --- a/libraries/SdFat/extras/html/functions_n.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- n -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_o.html b/libraries/SdFat/extras/html/functions_o.html deleted file mode 100644 index 89bd98b..0000000 --- a/libraries/SdFat/extras/html/functions_o.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- o -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_p.html b/libraries/SdFat/extras/html/functions_p.html deleted file mode 100644 index 242d53d..0000000 --- a/libraries/SdFat/extras/html/functions_p.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- p -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_r.html b/libraries/SdFat/extras/html/functions_r.html deleted file mode 100644 index 53beed9..0000000 --- a/libraries/SdFat/extras/html/functions_r.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- r -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_s.html b/libraries/SdFat/extras/html/functions_s.html deleted file mode 100644 index 1477592..0000000 --- a/libraries/SdFat/extras/html/functions_s.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- s -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_t.html b/libraries/SdFat/extras/html/functions_t.html deleted file mode 100644 index 7937c10..0000000 --- a/libraries/SdFat/extras/html/functions_t.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- t -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_type.html b/libraries/SdFat/extras/html/functions_type.html deleted file mode 100644 index 9abee0f..0000000 --- a/libraries/SdFat/extras/html/functions_type.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -SdFat: Class Members - Typedefs - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/libraries/SdFat/extras/html/functions_u.html b/libraries/SdFat/extras/html/functions_u.html deleted file mode 100644 index 3a7854b..0000000 --- a/libraries/SdFat/extras/html/functions_u.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- u -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_v.html b/libraries/SdFat/extras/html/functions_v.html deleted file mode 100644 index 2510426..0000000 --- a/libraries/SdFat/extras/html/functions_v.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- v -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_vars.html b/libraries/SdFat/extras/html/functions_vars.html deleted file mode 100644 index 1eb0b1d..0000000 --- a/libraries/SdFat/extras/html/functions_vars.html +++ /dev/null @@ -1,623 +0,0 @@ - - - - - - -SdFat: Class Members - Variables - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- j -

- - -

- l -

- - -

- m -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

- - -

- w -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_w.html b/libraries/SdFat/extras/html/functions_w.html deleted file mode 100644 index 3159313..0000000 --- a/libraries/SdFat/extras/html/functions_w.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- w -

-
- - - - diff --git a/libraries/SdFat/extras/html/functions_y.html b/libraries/SdFat/extras/html/functions_y.html deleted file mode 100644 index b9a885b..0000000 --- a/libraries/SdFat/extras/html/functions_y.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - -SdFat: Class Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- y -

-
- - - - diff --git a/libraries/SdFat/extras/html/globals.html b/libraries/SdFat/extras/html/globals.html deleted file mode 100644 index 71269bb..0000000 --- a/libraries/SdFat/extras/html/globals.html +++ /dev/null @@ -1,559 +0,0 @@ - - - - - - -SdFat: File Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented file members with links to the documentation:
- -

- _ -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- h -

- - -

- i -

- - -

- l -

- - -

- m -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- u -

- - -

- w -

-
- - - - diff --git a/libraries/SdFat/extras/html/globals_defs.html b/libraries/SdFat/extras/html/globals_defs.html deleted file mode 100644 index 17b2f9c..0000000 --- a/libraries/SdFat/extras/html/globals_defs.html +++ /dev/null @@ -1,251 +0,0 @@ - - - - - - -SdFat: File Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- d -

- - -

- e -

- - -

- f -

- - -

- i -

- - -

- m -

- - -

- n -

- - -

- p -

- - -

- s -

- - -

- u -

- - -

- w -

-
- - - - diff --git a/libraries/SdFat/extras/html/globals_func.html b/libraries/SdFat/extras/html/globals_func.html deleted file mode 100644 index 0332d80..0000000 --- a/libraries/SdFat/extras/html/globals_func.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - -SdFat: File Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- b -

    -
  • boolalpha() -: ios.h -
  • -
- - -

- c -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- h -

- - -

- i -

    -
  • internal() -: ios.h -
  • -
- - -

- l -

- - -

- n -

    -
  • noboolalpha() -: ios.h -
  • -
  • noshowbase() -: ios.h -
  • -
  • noshowpoint() -: ios.h -
  • -
  • noshowpos() -: ios.h -
  • -
  • noskipws() -: ios.h -
  • -
  • nouppercase() -: ios.h -
  • -
- - -

- o -

- - -

- r -

- - -

- s -

- - -

- u -

    -
  • uppercase() -: ios.h -
  • -
- - -

- w -

-
- - - - diff --git a/libraries/SdFat/extras/html/globals_type.html b/libraries/SdFat/extras/html/globals_type.html deleted file mode 100644 index 85cf48f..0000000 --- a/libraries/SdFat/extras/html/globals_type.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - -SdFat: File Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/libraries/SdFat/extras/html/globals_vars.html b/libraries/SdFat/extras/html/globals_vars.html deleted file mode 100644 index 3164f34..0000000 --- a/libraries/SdFat/extras/html/globals_vars.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - -SdFat: File Members - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- _ -

- - -

- b -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- l -

- - -

- s -

- - -

- u -

-
- - - - diff --git a/libraries/SdFat/extras/html/graph_legend.html b/libraries/SdFat/extras/html/graph_legend.html deleted file mode 100644 index 9261ac4..0000000 --- a/libraries/SdFat/extras/html/graph_legend.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - -SdFat: Graph Legend - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
Graph Legend
-
-
-

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

1 /*! Invisible class because of truncation */
-
2 class Invisible { };
-
3 
-
4 /*! Truncated class, inheritance relation is hidden */
-
5 class Truncated : public Invisible { };
-
6 
-
7 /* Class not documented with doxygen comments */
-
8 class Undocumented { };
-
9 
-
10 /*! Class that is inherited using public inheritance */
-
11 class PublicBase : public Truncated { };
-
12 
-
13 /*! A template class */
-
14 template<class T> class Templ { };
-
15 
-
16 /*! Class that is inherited using protected inheritance */
-
17 class ProtectedBase { };
-
18 
-
19 /*! Class that is inherited using private inheritance */
-
20 class PrivateBase { };
-
21 
-
22 /*! Class that is used by the Inherited class */
-
23 class Used { };
-
24 
-
25 /*! Super class that inherits a number of other classes */
-
26 class Inherited : public PublicBase,
-
27  protected ProtectedBase,
-
28  private PrivateBase,
-
29  public Undocumented,
-
30  public Templ<int>
-
31 {
-
32  private:
-
33  Used *m_usedClass;
-
34 };
-

This will result in the following graph:

-
- -
-

The boxes in the above graph have the following meaning:

-
    -
  • -A filled gray box represents the struct or class for which the graph is generated.
  • -
  • -A box with a black border denotes a documented struct or class.
  • -
  • -A box with a gray border denotes an undocumented struct or class.
  • -
  • -A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • -
-

The arrows have the following meaning:

-
    -
  • -A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • -
  • -A dark green arrow is used for protected inheritance.
  • -
  • -A dark red arrow is used for private inheritance.
  • -
  • -A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • -
  • -A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/graph_legend.png b/libraries/SdFat/extras/html/graph_legend.png deleted file mode 100644 index c0d711b..0000000 Binary files a/libraries/SdFat/extras/html/graph_legend.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/hierarchy.html b/libraries/SdFat/extras/html/hierarchy.html deleted file mode 100644 index d915409..0000000 --- a/libraries/SdFat/extras/html/hierarchy.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - -SdFat: Class Hierarchy - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
-
-

Go to the graphical class hierarchy

-This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 12345]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 CBaseBlockDriverBase block driver
 CSdioCardRaw SDIO access to SD and SDHC flash memory cards
 CbiosParmBlockBIOS parameter block
 Ccache_tCache for an raw data block
 CdirectoryEntryFAT short directory entry
 Cfat32_bootBoot sector for a FAT32 volume
 Cfat32_fsinfoFSINFO sector for a FAT32 volume
 Cfat_bootBoot sector for a FAT12/FAT16 volume
 CFatCacheBlock cache
 CFatFileBasic file class
 CFatStreamBaseBase class for C++ style streams
 CfstreamFile input/output stream
 CifstreamFile input stream
 CofstreamFile output stream
 CFileArduino SD.h style File API
 CPrintFileFatFile with Print
 CSdFileClass for backward compatibility
 CSdBaseFileClass for backward compatibility
 CStdioStreamStdioStream implements a minimal stdio stream
 CFatPos_tInternal type for file position - do not use in user apps
 CFatVolumeAccess FAT16 and FAT32 volumes on raw file devices
 CFatFileSystemIntegration class for the FatLib library
 CSdFileSystem< SdDriverClass >Virtual base class for SdFat library
 CSdFileSystem< SdioCard >
 CSdFatSdioSdFat class using SDIO
 CSdFileSystem< SdSpiCard >
 CSdFatMain file system class for SdFat library
 CSdFatSoftSpi< MisoPin, MosiPin, SckPin >SdFat class using software SPI
 CSdFileSystem< SdSpiCardEX >
 CSdFatEXSdFat class with extended SD I/O
 CSdFatSoftSpiEX< MisoPin, MosiPin, SckPin >SdFat class using software SPI and extended SD I/O
 Cfname_tInternal type for Short File Name - do not use in user apps
 Cios_baseBase class for all streams
 CiosError and state information for all streams
 CFatStreamBaseBase class for C++ style streams
 CistreamInput Stream
 CibufstreamParse a char string
 CArduinoInStreamInput stream for Arduino Stream objects
 CifstreamFile input stream
 CiostreamInput/Output stream
 CfstreamFile input/output stream
 CostreamOutput Stream
 CArduinoOutStreamOutput stream for Arduino Print objects
 CiostreamInput/Output stream
 CobufstreamFormat a char string
 CofstreamFile output stream
 ClongDirectoryEntryFAT long directory entry
 CmasterBootRecordMaster Boot Record
 CpartitionTableMBR partition table entry
 CPrint
 CMinimumSerialMini serial class for the SdFat library
 CPrintFileFatFile with Print
 CSdSpiCardRaw access to SD and SDHC flash memory cards via SPI protocol
 CSd2CardRaw access to SD and SDHC card using default SPI library
 CSdSpiCardEXExtended SD I/O block driver
 CsetfillType for setfill manipulator
 CsetprecisionType for setprecision manipulator
 CsetwType for setw manipulator
 CStream
 CFileArduino SD.h style File API
 CSysCallSysCall - Class to wrap system calls
-
-
- - - - diff --git a/libraries/SdFat/extras/html/index.html b/libraries/SdFat/extras/html/index.html deleted file mode 100644 index 5051d70..0000000 --- a/libraries/SdFat/extras/html/index.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - -SdFat: Arduino SdFat Library - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - -
- -
-
- - -
- -
- -
-
-
Arduino SdFat Library
-
-
-
Copyright © 2012, 2013, 2014, 2015, 2016 by William Greiman

-Introduction

-

The Arduino SdFat Library is a minimal implementation of FAT16 and FAT32 file systems on SD flash memory cards. Standard SD and high capacity SDHC cards are supported.

-

Experimental support for FAT12 can be enabled by setting FAT12_SUPPORT nonzero in SdFatConfig.h.

-

The SdFat library supports Long File Names or short 8.3 names. Edit the SdFatConfig.h file to select short or long file names.

-

The main classes in SdFat are SdFat, SdFatEX, SdFatSoftSpi, SdFatSoftSpiEX, SdBaseFile, SdFile, File, StdioStream, fstream, ifstream, and ofstream.

-

The SdFat, SdFatEX, SdFatSoftSpi and SdFatSoftSpiEX classes maintain a FAT volume, a current working directory, and simplify initialization of other classes. The SdFat and SdFatEX classes uses a fast custom hardware SPI implementation. The SdFatSoftSpi and SdFatSoftSpiEX classes uses software SPI.

-

the SdFatEX and SdFatSoftSpiEX use extended multi-block I/O for enhanced performance. These classes must have exclusive use of the SPI bus.

-

The SdBaseFile class provides basic file access functions such as open(), binary read(), binary write(), close(), remove(), and sync(). SdBaseFile is the smallest file class.

-

The SdFile class has all the SdBaseFile class functions plus the Arduino Print class functions.

-

The File class has all the SdBaseFile functions plus the functions in the Arduino SD.h File class. This provides compatibility with the Arduino SD.h library.

-

The StdioStream class implements functions similar to Linux/Unix standard buffered input/output.

-

The fstream class implements C++ iostreams for both reading and writing text files.

-

The ifstream class implements C++ iostreams for reading text files.

-

The ofstream class implements C++ iostreams for writing text files.

-

The classes ifstream, ofstream, istream, and ostream follow the C++ iostream standard when possible.

-

There are many tutorials and much documentation about using C++ iostreams on the web.

-

http://www.cplusplus.com/ is a good C++ site for learning iostreams.

-

The classes ibufstream and obufstream format and parse character strings in memory buffers.

-

the classes ArduinoInStream and ArduinoOutStream provide iostream functions for Serial, LiquidCrystal, and other devices.

-

A number of example are provided in the SdFat/examples folder. These were developed to test SdFat and illustrate its use.

-

-Installation

-

You must manually install SdFat by copying the SdFat folder from the download package to the Arduino libraries folder in your sketch folder.

-

See the Manual installation section of this guide.

-

http://arduino.cc/en/Guide/Libraries

-

-SdFat Configuration

-

Several configuration options may be changed by editing the SdFatConfig.h file in the SdFat folder.

-

Set USE_LONG_FILE_NAMES nonzero to enable Long File Names. By default, Long File Names are enabled. For the leanest fastest library disable Long File Names. Long File names require extra flash but no extra RAM. Opening Long File Names can be slower than opening Short File Names. Data read and write performance is not changed by the type of File Name.

-

If the symbol ENABLE_EXTENDED_TRANSFER_CLASS is nonzero, the class SdFatEX will be defined. If the symbol ENABLE_SOFTWARE_SPI_CLASS is also nonzero, the class SdFatSoftSpiEX will be defined. These classes used extended multi-block SD I/O for better performance. the SPI bus may not be shared with other devices in this mode.

-

Set USE_STANDARD_SPI_LIBRARY and ENABLE_SOFTWARE_SPI_CLASS to enable various SPI options. set USE_STANDARD_SPI_LIBRARY to use the standard Arduino SPI library. set ENABLE_SOFTWARE_SPI_CLASS to enable the SdFatSoftSpi class which uses software SPI.

-

To enable SD card CRC checking set USE_SD_CRC nonzero.

-

Set FAT12_SUPPORT nonzero to enable use of FAT12 volumes. FAT12 has not been well tested and requires additional flash.

-

-Paths and Working Directories

-

Relative paths in SdFat are resolved in a manner similar to Windows.

-

Each instance of SdFat has a current directory. In SdFat this directory is called the volume working directory, vwd. Initially this directory is the root directory for the volume.

-

The volume working directory is changed by calling SdFat::chdir(path).

-

The call sd.chdir("/2014") will change the volume working directory for sd to "/2014", assuming "/2014" exists.

-

Relative paths for SdFat member functions are resolved by starting at the volume working directory.

-

For example, the call sd.mkdir("April") will create the directory "/2014/April" assuming the volume working directory is "/2014".

-

SdFat has a current working directory, cwd, that is used to resolve paths for file.open() calls.

-

For a single SD card the current working directory is always the volume working directory for that card.

-

For multiple SD cards the current working directory is set to the volume working directory of a card by calling the SdFat::chvol() member function. The chvol() call is like the Windows <drive letter>: command.

-

The call sd2.chvol() will set the current working directory to the volume working directory for sd2.

-

If the volume working directory for sd2 is "/music" the call

-

file.open("BigBand.wav", O_READ);

-

will then open "/music/BigBand.wav" on sd2.

-

The following functions are used to change or get current directories. See the html documentation for more information.

bool SdFat::chdir(bool set_cwd = false);
-
bool SdFat::chdir(const char* path, bool set_cwd = false);
-
void SdFat::chvol();
- - -

-SD\SDHC Cards

-

Arduinos access SD cards using the cards SPI protocol. PCs, Macs, and most consumer devices use the 4-bit parallel SD protocol. A card that functions well on A PC or Mac may not work well on the Arduino.

-

Most cards have good SPI read performance but cards vary widely in SPI write performance. Write performance is limited by how efficiently the card manages internal erase/remapping operations. The Arduino cannot optimize writes to reduce erase operations because of its limit RAM.

-

SanDisk cards generally have good write performance. They seem to have more internal RAM buffering than other cards and therefore can limit the number of flash erase operations that the Arduino forces due to its limited RAM.

-

-Hardware Configuration

-

SdFat was developed using an Adafruit Industries Data Logging Shield.

-

The hardware interface to the SD card should not use a resistor based level shifter. SdFat sets the SPI bus frequency to 8 MHz which results in signal rise times that are too slow for the edge detectors in many newer SD card controllers when resistor voltage dividers are used.

-

The 5 to 3.3 V level shifter for 5 V Arduinos should be IC based like the 74HC4050N based circuit shown in the file SdLevel.png. The Adafruit Wave Shield uses a 74AHC125N. Gravitech sells SD and MicroSD Card Adapters based on the 74LCX245.

-

If you are using a resistor based level shifter and are having problems try setting the SPI bus frequency to 4 MHz. This can be done by using card.init(SPI_HALF_SPEED) to initialize the SD card.

-

A feature to use software SPI is available. Software SPI is slower than hardware SPI but allows any digital pins to be used. See SdFatConfig.h for software SPI definitions.

-

-Bugs and Comments

-

If you wish to report bugs or have comments, send email to fat16.nosp@m.lib@.nosp@m.sbcgl.nosp@m.obal.nosp@m..net. If possible, include a simple program that illustrates the bug or problem.

-

-Troubleshooting

-

The two example programs QuickStart, and SdInfo are useful for troubleshooting.

-

A message like this from SdInfo with erorCode 0X1 indicates the SD card is not seen by SdFat. This is often caused by a wiring error and reformatting the card will not solve the problem.

-cardBegin failed
-SD errorCode: 0X1
-SD errorData: 0XFF
-

Here is a similar message from QuickStart:

-SD initialization failed.
-Do not reformat the card!
-Is the card correctly inserted?
-Is chipSelect set to the correct value?
-Does another SPI device need to be disabled?
-Is there a wiring/soldering problem?
errorCode: 0x1, errorData: 0xff
-

Here is a message from QuickStart that indicates a formatting problem:

-Card successfully initialized.
-Can't find a valid FAT16/FAT32 partition.
-Try reformatting the card.  For best results use
-the SdFormatter program in SdFat/examples or download
-and use SDFormatter from www.sdcard.org/downloads.
-

The best source of recent information and help is the Arduino forum.

-

http://arduino.cc/forum/

-

Also search the Adafruit forum.

-

http://forums.adafruit.com/

-

If you are using a Teensy try.

-

http://forum.pjrc.com/forum.php

-

-SdFat Usage

-

SdFat supports Long File Names. Long names in SdFat are limited to 7-bit ASCII characters in the range 0X20 - 0XFE The following are reserved characters:

    -
  • -< (less than)
  • -
  • -> (greater than)
  • -
  • -: (colon)
  • -
  • -" (double quote)
  • -
  • -/ (forward slash)
  • -
  • -\ (backslash)
  • -
  • -| (vertical bar or pipe)
  • -
  • -? (question mark)
  • -
  • -* (asterisk)
  • -
-

SdFat uses a slightly restricted form of short names. Short names are limited to 8 characters followed by an optional period (.) and extension of up to 3 characters. The characters may be any combination of letters and digits. The following special characters are also allowed:

-

$ % ' - _ @ ~ ` ! ( ) { } ^ # &

-

Short names are always converted to upper case and their original case value is lost. Files that have a base-name where all characters have the same case and an extension where all characters have the same case will display properly. Examples this type name are UPPER.low, lower.TXT, UPPER.TXT, and lower.txt.

-

An application which writes to a file using print(), println() or write() must close the file or call sync() at the appropriate time to force data and directory information to be written to the SD Card.

-

Applications must use care calling sync() sync() since 2048 bytes of I/O is required to update file and directory information. This includes writing the current data block, reading the block that contains the directory entry for update, writing the directory block back and reading back the current data block.

-

It is possible to open a file with two or more instances of a file object. A file may be corrupted if data is written to the file by more than one instance of a file object.

-

-How to format SD Cards as FAT Volumes

-

The best way to restore an SD card's format on a PC or Mac is to use SDFormatter which can be downloaded from:

-

http://www.sdcard.org/downloads

-

A formatter program, SdFormatter.ino, is included in the SdFat/examples/SdFormatter directory. This program attempts to emulate SD Association's SDFormatter.

-

SDFormatter aligns flash erase boundaries with file system structures which reduces write latency and file system overhead.

-

The PC/Mac SDFormatter does not have an option for FAT type so it may format very small cards as FAT12. Use the SdFat formatter to force FAT16 formatting of small cards.

-

Do not format the SD card with an OS utility, OS utilities do not format SD cards in conformance with the SD standard.

-

You should use a freshly formatted SD card for best performance. FAT file systems become slower if many files have been created and deleted. This is because the directory entry for a deleted file is marked as deleted, but is not deleted. When a new file is created, these entries must be scanned before creating the file. Also files can become fragmented which causes reads and writes to be slower.

-

-Examples

-

A number of examples are provided in the SdFat/examples folder. See the html documentation for a list.

-

To access these examples from the Arduino development environment go to: File -> Examples -> SdFat -> <program Name>

-

Compile, upload to your Arduino and click on Serial Monitor to run the example.

-

Here is a list:

-

AnalogBinLogger - Fast AVR ADC logger - see the AnalogBinLoggerExtras folder.

-

bench - A read/write benchmark.

-

dataLogger - A simple modifiable data logger.

-

DirectoryFunctions - Demo of chdir(), ls(), mkdir(), and rmdir().

-

fgets - Demo of the fgets read line/string function.

-

formating - Print a table with various formatting options.

-

getline - Example of getline from section 27.7.1.3 of the C++ standard.

-

LongFileName - Example use of openNext, printName, and open by index.

-

LowLatencyLogger - A data logger for higher data rates. ADC version.

-

LowLatencyLoggerADXL345 - A data logger for higher data rates. ADXL345 SPI.

-

LowLatencyLoggerMPU6050 - A data logger for higher data rates. MPU6050 I2C.

-

OpenNext - Open all files in the root dir and print their filename.

-

PrintBenchmark - A simple benchmark for printing to a text file.

-

QuickStart - A program to quickly test your SD card and SD shield/module.

-

RawWrite - A test of raw write functions for contiguous files.

-

ReadCsv - Function to read a CSV text file one field at a time.

-

ReadCsvStream - Read a comma-separated value file using iostream extractors.

-

ReadCsvArray - Read a two dimensional array from a CSV file.

-

ReadWrite - Compatibility test of Arduino SD ReadWrite example.

-

rename - A demo of SdFat::rename(old, new) and SdFile::rename(dirFile, newPath).

-

SdFormatter - This program will format an SD or SDHC card.

-

SoftwareSpi - Simple demonstration of the SdFatSoftSpi template class.

-

SdInfo - Initialize an SD card and analyze its structure for trouble shooting.

-

StdioBench - Demo and test of stdio style stream.

-

Timestamp - Sets file create, modify, and access timestamps.

-

TwoCards - Example using two SD cards.

-

VolumeFreeSpace - Demonstrate the freeClusterCount() call.

-

wipe - Example to wipe all data from an already formatted SD.

-
- - - - diff --git a/libraries/SdFat/extras/html/inherit_graph_0.png b/libraries/SdFat/extras/html/inherit_graph_0.png deleted file mode 100644 index f0e85e4..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_0.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_1.png b/libraries/SdFat/extras/html/inherit_graph_1.png deleted file mode 100644 index aaa3349..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_1.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_10.png b/libraries/SdFat/extras/html/inherit_graph_10.png deleted file mode 100644 index 93805fc..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_10.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_11.png b/libraries/SdFat/extras/html/inherit_graph_11.png deleted file mode 100644 index aeccc52..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_11.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_12.png b/libraries/SdFat/extras/html/inherit_graph_12.png deleted file mode 100644 index 6e9deb2..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_12.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_13.png b/libraries/SdFat/extras/html/inherit_graph_13.png deleted file mode 100644 index 27cef82..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_13.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_14.png b/libraries/SdFat/extras/html/inherit_graph_14.png deleted file mode 100644 index 1a576ca..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_14.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_15.png b/libraries/SdFat/extras/html/inherit_graph_15.png deleted file mode 100644 index abcb0be..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_15.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_16.png b/libraries/SdFat/extras/html/inherit_graph_16.png deleted file mode 100644 index adae800..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_16.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_17.png b/libraries/SdFat/extras/html/inherit_graph_17.png deleted file mode 100644 index 6815203..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_17.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_18.png b/libraries/SdFat/extras/html/inherit_graph_18.png deleted file mode 100644 index 5092885..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_18.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_19.png b/libraries/SdFat/extras/html/inherit_graph_19.png deleted file mode 100644 index cb756b5..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_19.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_2.png b/libraries/SdFat/extras/html/inherit_graph_2.png deleted file mode 100644 index 1638251..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_2.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_3.png b/libraries/SdFat/extras/html/inherit_graph_3.png deleted file mode 100644 index 26465d5..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_3.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_4.png b/libraries/SdFat/extras/html/inherit_graph_4.png deleted file mode 100644 index 9efa23d..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_4.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_5.png b/libraries/SdFat/extras/html/inherit_graph_5.png deleted file mode 100644 index f2d4b5e..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_5.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_6.png b/libraries/SdFat/extras/html/inherit_graph_6.png deleted file mode 100644 index 24c8f4d..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_6.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_7.png b/libraries/SdFat/extras/html/inherit_graph_7.png deleted file mode 100644 index ab58880..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_7.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_8.png b/libraries/SdFat/extras/html/inherit_graph_8.png deleted file mode 100644 index 9ac4458..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_8.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherit_graph_9.png b/libraries/SdFat/extras/html/inherit_graph_9.png deleted file mode 100644 index d79483f..0000000 Binary files a/libraries/SdFat/extras/html/inherit_graph_9.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/inherits.html b/libraries/SdFat/extras/html/inherits.html deleted file mode 100644 index b418518..0000000 --- a/libraries/SdFat/extras/html/inherits.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - -SdFat: Class Hierarchy - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
- - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
- - - - - -
- - - -
- - - -
- - - -
- - - -
-
- - - - diff --git a/libraries/SdFat/extras/html/ios_8h.html b/libraries/SdFat/extras/html/ios_8h.html deleted file mode 100644 index 237c2bf..0000000 --- a/libraries/SdFat/extras/html/ios_8h.html +++ /dev/null @@ -1,745 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/ios.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
ios.h File Reference
-
-
- -

ios_base and ios classes -More...

-
#include "FatFile.h"
-
-Include dependency graph for ios.h:
-
-
- - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - -
-
- - - - - - - -

-Classes

class  ios
 Error and state information for all streams. More...
 
class  ios_base
 Base class for all streams. More...
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Functions

ios_baseboolalpha (ios_base &str)
 
ios_basedec (ios_base &str)
 
ios_basehex (ios_base &str)
 
ios_baseinternal (ios_base &str)
 
ios_baseleft (ios_base &str)
 
ios_basenoboolalpha (ios_base &str)
 
ios_basenoshowbase (ios_base &str)
 
ios_basenoshowpoint (ios_base &str)
 
ios_basenoshowpos (ios_base &str)
 
ios_basenoskipws (ios_base &str)
 
ios_basenouppercase (ios_base &str)
 
ios_baseoct (ios_base &str)
 
ios_baseright (ios_base &str)
 
ios_baseshowbase (ios_base &str)
 
ios_baseshowpoint (ios_base &str)
 
ios_baseshowpos (ios_base &str)
 
ios_baseskipws (ios_base &str)
 
ios_baseuppercase (ios_base &str)
 
-

Detailed Description

-

ios_base and ios classes

-

Function Documentation

- -
-
- - - - - -
- - - - - - - - -
ios_base& boolalpha (ios_basestr)
-
-inline
-
-

function for boolalpha manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& dec (ios_basestr)
-
-inline
-
-

function for dec manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& hex (ios_basestr)
-
-inline
-
-

function for hex manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& internal (ios_basestr)
-
-inline
-
-

function for internal manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& left (ios_basestr)
-
-inline
-
-

function for left manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& noboolalpha (ios_basestr)
-
-inline
-
-

function for noboolalpha manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& noshowbase (ios_basestr)
-
-inline
-
-

function for noshowbase manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& noshowpoint (ios_basestr)
-
-inline
-
-

function for noshowpoint manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& noshowpos (ios_basestr)
-
-inline
-
-

function for noshowpos manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& noskipws (ios_basestr)
-
-inline
-
-

function for noskipws manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& nouppercase (ios_basestr)
-
-inline
-
-

function for nouppercase manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& oct (ios_basestr)
-
-inline
-
-

function for oct manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& right (ios_basestr)
-
-inline
-
-

function for right manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& showbase (ios_basestr)
-
-inline
-
-

function for showbase manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& showpoint (ios_basestr)
-
-inline
-
-

function for showpoint manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& showpos (ios_basestr)
-
-inline
-
-

function for showpos manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& skipws (ios_basestr)
-
-inline
-
-

function for skipws manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ios_base& uppercase (ios_basestr)
-
-inline
-
-

function for uppercase manipulator

Parameters
- - -
[in]strThe stream
-
-
-
Returns
The stream
- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/ios_8h__dep__incl.png b/libraries/SdFat/extras/html/ios_8h__dep__incl.png deleted file mode 100644 index a1c2285..0000000 Binary files a/libraries/SdFat/extras/html/ios_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/ios_8h__incl.png b/libraries/SdFat/extras/html/ios_8h__incl.png deleted file mode 100644 index c7b8515..0000000 Binary files a/libraries/SdFat/extras/html/ios_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/iostream_8h.html b/libraries/SdFat/extras/html/iostream_8h.html deleted file mode 100644 index c369bc3..0000000 --- a/libraries/SdFat/extras/html/iostream_8h.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/iostream.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
iostream.h File Reference
-
-
- -

iostream class -More...

-
#include "istream.h"
-#include "ostream.h"
-
-Include dependency graph for iostream.h:
-
-
- - - - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - -
-
- - - - - - - - - - - - - -

-Classes

class  iostream
 Input/Output stream. More...
 
struct  setfill
 type for setfill manipulator More...
 
struct  setprecision
 type for setprecision manipulator More...
 
struct  setw
 type for setw manipulator More...
 
- - - - - - - - - - - - - - - - - - - -

-Functions

ostreamendl (ostream &os)
 
ostreamflush (ostream &os)
 
ostreamoperator<< (ostream &os, const setfill &arg)
 
ostreamoperator<< (ostream &os, const setprecision &arg)
 
ostreamoperator<< (ostream &os, const setw &arg)
 
istreamoperator>> (istream &obj, const setfill &arg)
 
istreamoperator>> (istream &is, const setprecision &arg)
 
istreamoperator>> (istream &is, const setw &arg)
 
istreamws (istream &is)
 
-

Detailed Description

-

iostream class

-

Function Documentation

- -
-
- - - - - -
- - - - - - - - -
ostream& endl (ostreamos)
-
-inline
-
-

insert endline

Parameters
- - -
[in]osThe Stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
ostream& flush (ostreamos)
-
-inline
-
-

flush manipulator

Parameters
- - -
[in]osThe stream
-
-
-
Returns
The stream
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& operator<< (ostreamos,
const setfillarg 
)
-
-inline
-
-

setfill manipulator

Parameters
- - - -
[in]osthe stream
[in]argset setfill object
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& operator<< (ostreamos,
const setprecisionarg 
)
-
-inline
-
-

setprecision manipulator

Parameters
- - - -
[in]osthe stream
[in]argset setprecision object
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
ostream& operator<< (ostreamos,
const setwarg 
)
-
-inline
-
-

setw manipulator

Parameters
- - - -
[in]osthe stream
[in]argset setw object
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& operator>> (istreamobj,
const setfillarg 
)
-
-inline
-
-

setfill manipulator

Parameters
- - - -
[in]objthe stream
[in]argset setfill object
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& operator>> (istreamis,
const setprecisionarg 
)
-
-inline
-
-

setprecision manipulator

Parameters
- - - -
[in]isthe stream
[in]argset setprecision object
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
istream& operator>> (istreamis,
const setwarg 
)
-
-inline
-
-

setw manipulator

Parameters
- - - -
[in]isthe stream
[in]argset setw object
-
-
-
Returns
the stream
- -
-
- -
-
- - - - - -
- - - - - - - - -
istream& ws (istreamis)
-
-inline
-
-

Skip white space

Parameters
- - -
[in]isthe Stream
-
-
-
Returns
The stream
- -
-
-
- - - - diff --git a/libraries/SdFat/extras/html/iostream_8h__dep__incl.png b/libraries/SdFat/extras/html/iostream_8h__dep__incl.png deleted file mode 100644 index 2ca56a3..0000000 Binary files a/libraries/SdFat/extras/html/iostream_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/iostream_8h__incl.png b/libraries/SdFat/extras/html/iostream_8h__incl.png deleted file mode 100644 index 2c4ee90..0000000 Binary files a/libraries/SdFat/extras/html/iostream_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/istream_8h.html b/libraries/SdFat/extras/html/istream_8h.html deleted file mode 100644 index 4002edb..0000000 --- a/libraries/SdFat/extras/html/istream_8h.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - -SdFat: Arduino/libraries/SdFat/src/FatLib/istream.h File Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- - -
-
- -
-
istream.h File Reference
-
-
- -

istream class -More...

-
#include "ios.h"
-
-Include dependency graph for istream.h:
-
-
- - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - -
-
- - - - -

-Classes

class  istream
 Input Stream. More...
 
-

Detailed Description

-

istream class

-
- - - - diff --git a/libraries/SdFat/extras/html/istream_8h__dep__incl.png b/libraries/SdFat/extras/html/istream_8h__dep__incl.png deleted file mode 100644 index adf498b..0000000 Binary files a/libraries/SdFat/extras/html/istream_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/istream_8h__incl.png b/libraries/SdFat/extras/html/istream_8h__incl.png deleted file mode 100644 index 99b0e85..0000000 Binary files a/libraries/SdFat/extras/html/istream_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/jquery.js b/libraries/SdFat/extras/html/jquery.js deleted file mode 100644 index 1f4d0b4..0000000 --- a/libraries/SdFat/extras/html/jquery.js +++ /dev/null @@ -1,68 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! - * jQuery UI 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! - * jQuery UI Widget 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! - * jQuery UI Mouse 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' - - - - -
- -
-
ostream.h File Reference
-
-
- -

ostream class -More...

-
#include "ios.h"
-
-Include dependency graph for ostream.h:
-
-
- - - - - - - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - -
-
- - - - -

-Classes

class  ostream
 Output Stream. More...
 
-

Detailed Description

-

ostream class

-
- - - - diff --git a/libraries/SdFat/extras/html/ostream_8h__dep__incl.png b/libraries/SdFat/extras/html/ostream_8h__dep__incl.png deleted file mode 100644 index bd6bf5b..0000000 Binary files a/libraries/SdFat/extras/html/ostream_8h__dep__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/ostream_8h__incl.png b/libraries/SdFat/extras/html/ostream_8h__incl.png deleted file mode 100644 index aa29793..0000000 Binary files a/libraries/SdFat/extras/html/ostream_8h__incl.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/search/all_0.html b/libraries/SdFat/extras/html/search/all_0.html deleted file mode 100644 index 1d46950..0000000 --- a/libraries/SdFat/extras/html/search/all_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_0.js b/libraries/SdFat/extras/html/search/all_0.js deleted file mode 100644 index c3aa3dc..0000000 --- a/libraries/SdFat/extras/html/search/all_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['_5f_5fbrkval',['__brkval',['../_free_stack_8h.html#ad193a2cc121e0d4614a1c21eb463fb56',1,'FreeStack.h']]], - ['_5f_5fbss_5fend',['__bss_end',['../_free_stack_8h.html#adbad17f740c2d7f2bc4833681c93c932',1,'FreeStack.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_1.html b/libraries/SdFat/extras/html/search/all_1.html deleted file mode 100644 index 1fbc509..0000000 --- a/libraries/SdFat/extras/html/search/all_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_1.js b/libraries/SdFat/extras/html/search/all_1.js deleted file mode 100644 index b82534e..0000000 --- a/libraries/SdFat/extras/html/search/all_1.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['adjustfield',['adjustfield',['../classios__base.html#adaaf735381254aa096ebe3605e8bbd0a',1,'ios_base']]], - ['app',['app',['../classios__base.html#a8380aac3c405730708888fdc68905820',1,'ios_base']]], - ['arduinofiles_2eh',['ArduinoFiles.h',['../_arduino_files_8h.html',1,'']]], - ['arduinoinstream',['ArduinoInStream',['../class_arduino_in_stream.html',1,'ArduinoInStream'],['../class_arduino_in_stream.html#a61ee22a5824849ec3261ee2f814dfb93',1,'ArduinoInStream::ArduinoInStream()']]], - ['arduinooutstream',['ArduinoOutStream',['../class_arduino_out_stream.html',1,'ArduinoOutStream'],['../class_arduino_out_stream.html#a228b667f9f53dc91c6ed7735d34f04a8',1,'ArduinoOutStream::ArduinoOutStream()']]], - ['arduinostream_2eh',['ArduinoStream.h',['../_arduino_stream_8h.html',1,'']]], - ['ate',['ate',['../classios__base.html#aa434355c165500065276d955d8b36e99',1,'ios_base']]], - ['attr',['attr',['../structlong_directory_entry.html#aa36bf1210d0c2b3b80948e5f697eb02e',1,'longDirectoryEntry']]], - ['attributes',['attributes',['../structdirectory_entry.html#a16c6cde55c8175c90935c386f1cfb21a',1,'directoryEntry']]], - ['available',['available',['../class_minimum_serial.html#a2abe4370989968938b5dc4872d51c3df',1,'MinimumSerial::available()'],['../class_print_file.html#a600592235b2bee6bdb3a9701d0d6eee3',1,'PrintFile::available()'],['../class_file.html#acf613c4e75bae85f543b30e701ebcc44',1,'File::available()'],['../class_fat_file.html#ac1fa779d98db7ffdb96f8019ab0060d6',1,'FatFile::available()']]], - ['arduino_20_25sdfat_20library',['Arduino %SdFat Library',['../index.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_10.html b/libraries/SdFat/extras/html/search/all_10.html deleted file mode 100644 index 80581d5..0000000 --- a/libraries/SdFat/extras/html/search/all_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_10.js b/libraries/SdFat/extras/html/search/all_10.js deleted file mode 100644 index 2bf4e35..0000000 --- a/libraries/SdFat/extras/html/search/all_10.js +++ /dev/null @@ -1,29 +0,0 @@ -var searchData= -[ - ['rdstate',['rdstate',['../classios.html#aacc57e1e46e23f2f54898ff6a89129a2',1,'ios']]], - ['read',['read',['../class_minimum_serial.html#a4890dd60f2ffb61eba0821cc80d411ad',1,'MinimumSerial::read()'],['../class_file.html#a4c46a1975e66c37977bf07c58ec10b4e',1,'File::read()'],['../class_fat_file.html#a60ae55ff6fe158c2340071d702a363c5',1,'FatFile::read()'],['../class_fat_file.html#a200e6e0553d5b709520c9dfac9ef77dd',1,'FatFile::read(void *buf, size_t nbyte)'],['../class_fat_cache.html#ac2bb0b8f2ce3ab5cd86cf30b4a663cea',1,'FatCache::read()']]], - ['readblock',['readBlock',['../class_base_block_driver.html#a16bb3305f3130253dd7ab6e19aa1b524',1,'BaseBlockDriver::readBlock()'],['../class_sdio_card.html#ac94605c428fa9258106835cceec470d8',1,'SdioCard::readBlock()'],['../class_sd_spi_card.html#a4393634a82c6683ee94d1fefe0be332a',1,'SdSpiCard::readBlock()'],['../class_sd_spi_card_e_x.html#abb69c8bd538dafed1e7f33382ee48d61',1,'SdSpiCardEX::readBlock()']]], - ['readblocks',['readBlocks',['../class_base_block_driver.html#a3a029a2d02fc7cbdd7c15c8d622565c4',1,'BaseBlockDriver::readBlocks()'],['../class_sdio_card.html#a7de36d26a01dc39b7dc122c54ee03b12',1,'SdioCard::readBlocks()'],['../class_sd_spi_card.html#ac630f77c3137923b47c1bd12a9bbfadf',1,'SdSpiCard::readBlocks()'],['../class_sd_spi_card_e_x.html#a9e158cda94fadd12267fe7e63d06622a',1,'SdSpiCardEX::readBlocks()']]], - ['readcid',['readCID',['../class_sdio_card.html#add77777fbcf91cc41e8ec62fda169e79',1,'SdioCard::readCID()'],['../class_sd_spi_card.html#aa073dc42828164883db1b9faeff909ea',1,'SdSpiCard::readCID()']]], - ['readcsd',['readCSD',['../class_sdio_card.html#a1da0ca418c153e24b4e13b4c1e20d450',1,'SdioCard::readCSD()'],['../class_sd_spi_card.html#a9fbea9525e70f6e3602fe5153a5a1290',1,'SdSpiCard::readCSD()']]], - ['readdata',['readData',['../class_sd_spi_card.html#a3a1d1b4b4ceb42fcd41aaf6649482770',1,'SdSpiCard']]], - ['readdir',['readDir',['../class_fat_file.html#a1325afe074c3efecff666678cd9f116a',1,'FatFile']]], - ['readline',['readline',['../class_arduino_in_stream.html#ad4c60f813b8df6dd1d6696a3458de09c',1,'ArduinoInStream']]], - ['readocr',['readOCR',['../class_sdio_card.html#adc583f7a27f57ce55ce474b1379b9303',1,'SdioCard::readOCR()'],['../class_sd_spi_card.html#ab446e49338b3ce834a750ac6dae35f61',1,'SdSpiCard::readOCR()']]], - ['readstart',['readStart',['../class_sd_spi_card.html#a3b1710d11496c32ba4323831e00ac6d1',1,'SdSpiCard']]], - ['readstatus',['readStatus',['../class_sd_spi_card.html#a91d0413599efe0d63c8c2dfe4a12d9ae',1,'SdSpiCard']]], - ['readstop',['readStop',['../class_sd_spi_card.html#afdac7c399fa1ba3f904cf503526e007e',1,'SdSpiCard']]], - ['remove',['remove',['../class_fat_file.html#ac837a537fbcca14c7aa390c5fc9f4e7c',1,'FatFile::remove()'],['../class_fat_file.html#afe820bbb056863e91ec482961c8dc695',1,'FatFile::remove(FatFile *dirFile, const char *path)'],['../class_fat_file_system.html#abf7d7d0dab43083d5be10d70ff4669e4',1,'FatFileSystem::remove()']]], - ['rename',['rename',['../class_fat_file.html#a4b42f2454ff462555c07ea094a92a1e0',1,'FatFile::rename()'],['../class_fat_file_system.html#a0187891a24017b41bd7c5ba63e659e65',1,'FatFileSystem::rename()']]], - ['reserved1',['reserved1',['../structfat__boot.html#affa7e6efb3ccea19ba7ea0ddadce7463',1,'fat_boot::reserved1()'],['../structfat32__boot.html#a7075c3c00aae071110fd1acb2e6fd599',1,'fat32_boot::reserved1()'],['../structfat32__fsinfo.html#ac24bd4801a60a54e5133ed1bb71bcdaa',1,'fat32_fsinfo::reserved1()']]], - ['reserved2',['reserved2',['../structfat32__fsinfo.html#a9ec0e2756cd7e169268798a558df3814',1,'fat32_fsinfo']]], - ['reservednt',['reservedNT',['../structdirectory_entry.html#afe7d00be85f3b78549b21610050da52b',1,'directoryEntry']]], - ['reservedsectorcount',['reservedSectorCount',['../structbios_parm_block.html#adb4830c345b27293c7d7b97b77f52e01',1,'biosParmBlock::reservedSectorCount()'],['../structfat__boot.html#a13f272a8f780fb43a400f873a3fd7b73',1,'fat_boot::reservedSectorCount()'],['../structfat32__boot.html#a8e490f05ad3552dfbdf8f9332d287ba0',1,'fat32_boot::reservedSectorCount()']]], - ['rewind',['rewind',['../class_fat_file.html#a5aac6e0b3cb08fc8b8668e916a8b0ca5',1,'FatFile::rewind()'],['../class_stdio_stream.html#ad985866675193d2ee1dde9e27b0d08da',1,'StdioStream::rewind()']]], - ['rewinddirectory',['rewindDirectory',['../class_file.html#ae1419603dea25a6c8480b941d7ac63a3',1,'File']]], - ['right',['right',['../classios__base.html#aec064a12730b5d87e718c1864e29ac64',1,'ios_base::right()'],['../ios_8h.html#aee80fd600c5c58a2bebbd48afdcf8280',1,'right(): ios.h']]], - ['rmdir',['rmdir',['../class_fat_file.html#a9515bac181d33e7f0125e88fa2ccd283',1,'FatFile::rmdir()'],['../class_fat_file_system.html#aaed2edc7ff7fedb163458c870bb41b33',1,'FatFileSystem::rmdir()']]], - ['rmrfstar',['rmRfStar',['../class_fat_file.html#ac780a80526f86d3def701ecdc99d8bfe',1,'FatFile']]], - ['rootdirentrycount',['rootDirEntryCount',['../structbios_parm_block.html#a9a1b24bb2dbb3a123c4ffc703954d71d',1,'biosParmBlock::rootDirEntryCount()'],['../structfat__boot.html#a2124f89e12307df944f08e6657dbf4af',1,'fat_boot::rootDirEntryCount()'],['../structfat32__boot.html#a94185496fb56c6e0e8078fc3803e9142',1,'fat32_boot::rootDirEntryCount()'],['../class_fat_volume.html#ab2d483670a0a6a6a4754b23614fe11bc',1,'FatVolume::rootDirEntryCount()']]], - ['rootdirstart',['rootDirStart',['../class_fat_volume.html#ae9363ebbbae90e895ea56e8fa3f60c13',1,'FatVolume']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_11.html b/libraries/SdFat/extras/html/search/all_11.html deleted file mode 100644 index bb6241b..0000000 --- a/libraries/SdFat/extras/html/search/all_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_11.js b/libraries/SdFat/extras/html/search/all_11.js deleted file mode 100644 index 832aef4..0000000 --- a/libraries/SdFat/extras/html/search/all_11.js +++ /dev/null @@ -1,64 +0,0 @@ -var searchData= -[ - ['sd2card',['Sd2Card',['../class_sd2_card.html',1,'']]], - ['sd_5ffat_5fversion',['SD_FAT_VERSION',['../_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210',1,'SdFat.h']]], - ['sd_5fhas_5fcustom_5fspi',['SD_HAS_CUSTOM_SPI',['../_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977',1,'SdFatConfig.h']]], - ['sdbasefile',['SdBaseFile',['../class_sd_base_file.html',1,'SdBaseFile'],['../class_sd_base_file.html#a94d44fc448dc8a06867d490100a57781',1,'SdBaseFile::SdBaseFile()']]], - ['sdfat',['SdFat',['../class_sd_fat.html',1,'SdFat'],['../class_sd_fat.html#a232871b6bbd0f40d6a2883b3c7b0425f',1,'SdFat::SdFat()']]], - ['sdfat_2eh',['SdFat.h',['../_sd_fat_8h.html',1,'']]], - ['sdfatconfig_2eh',['SdFatConfig.h',['../_sd_fat_config_8h.html',1,'']]], - ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html',1,'SdFatEX'],['../class_sd_fat_e_x.html#a86b1fdf8b81dff2fced176d39b851474',1,'SdFatEX::SdFatEX()']]], - ['sdfatsdio',['SdFatSdio',['../class_sd_fat_sdio.html',1,'']]], - ['sdfatsoftspi',['SdFatSoftSpi',['../class_sd_fat_soft_spi.html',1,'']]], - ['sdfatsoftspiex',['SdFatSoftSpiEX',['../class_sd_fat_soft_spi_e_x.html',1,'']]], - ['sdfile',['SdFile',['../class_sd_file.html',1,'SdFile'],['../class_sd_file.html#aca7da9858a5e53e10f3c2fa9aeca8485',1,'SdFile::SdFile()']]], - ['sdfilesystem',['SdFileSystem',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdiocard_20_3e',['SdFileSystem< SdioCard >',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdspicard_20_3e',['SdFileSystem< SdSpiCard >',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdspicardex_20_3e',['SdFileSystem< SdSpiCardEX >',['../class_sd_file_system.html',1,'']]], - ['sdiocard',['SdioCard',['../class_sdio_card.html',1,'']]], - ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html',1,'SdSpiCard'],['../class_sd_spi_card.html#a0441c5da53bd3bd72fb833fc940f25e8',1,'SdSpiCard::SdSpiCard()']]], - ['sdspicard_2eh',['SdSpiCard.h',['../_sd_spi_card_8h.html',1,'']]], - ['sdspicardex',['SdSpiCardEX',['../class_sd_spi_card_e_x.html',1,'']]], - ['sectorspercluster',['sectorsPerCluster',['../structbios_parm_block.html#a45d5e2d8c93a028a074e8ce3dc751ab5',1,'biosParmBlock::sectorsPerCluster()'],['../structfat__boot.html#ab3063726125b16a2ccad719548d79abd',1,'fat_boot::sectorsPerCluster()'],['../structfat32__boot.html#a63ded2780732f166f7b7d36bc6aed702',1,'fat32_boot::sectorsPerCluster()']]], - ['sectorsperfat16',['sectorsPerFat16',['../structbios_parm_block.html#a24d6e5a9069491d5db6dbe747336985b',1,'biosParmBlock::sectorsPerFat16()'],['../structfat__boot.html#a0d5ab13399759acfa571e49b85600db1',1,'fat_boot::sectorsPerFat16()'],['../structfat32__boot.html#aeaa78272cd42b162ea448e1642f75cab',1,'fat32_boot::sectorsPerFat16()']]], - ['sectorsperfat32',['sectorsPerFat32',['../structbios_parm_block.html#ad80429df03a6b80f79b18cb6e1008d64',1,'biosParmBlock::sectorsPerFat32()'],['../structfat32__boot.html#aa00db084ff2f7e25febef321469adeb9',1,'fat32_boot::sectorsPerFat32()']]], - ['sectorspertrack',['sectorsPerTrack',['../structfat__boot.html#a6d5ceaf374e0607be8b8162bf657f282',1,'fat_boot::sectorsPerTrack()'],['../structfat32__boot.html#a9525b2e63f84a5cf62ea20199cedf5de',1,'fat32_boot::sectorsPerTrack()']]], - ['sectorspertrtack',['sectorsPerTrtack',['../structbios_parm_block.html#a7c27cb7f66c2c9d5266d896e8df227c7',1,'biosParmBlock']]], - ['seek',['seek',['../class_file.html#a2d41ea52356b769e05e1242685758c08',1,'File']]], - ['seek_5fcur',['SEEK_CUR',['../_stdio_stream_8h.html#a4c8d0b76b470ba65a43ca46a88320f39',1,'StdioStream.h']]], - ['seek_5fend',['SEEK_END',['../_stdio_stream_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8',1,'StdioStream.h']]], - ['seek_5fset',['SEEK_SET',['../_stdio_stream_8h.html#a0d112bae8fd35be772185b6ec6bcbe64',1,'StdioStream.h']]], - ['seekcur',['seekCur',['../class_fat_file.html#a5812037ea30777cc350698ad26f2c73f',1,'FatFile']]], - ['seekdir',['seekdir',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191e',1,'ios_base']]], - ['seekend',['seekEnd',['../class_fat_file.html#a84f677f4e75ef6fa2eb632f4cdf6b486',1,'FatFile']]], - ['seekg',['seekg',['../classistream.html#a52d637b1aeca9946085a4a72e0208aec',1,'istream::seekg(pos_type pos)'],['../classistream.html#a60dd48a3b374fb9cbdc59e1f930dea95',1,'istream::seekg(off_type off, seekdir way)']]], - ['seekp',['seekp',['../classostream.html#a18b453d2770a8852c312cbda919c4687',1,'ostream::seekp(pos_type pos)'],['../classostream.html#af6265a5be29237517b30673667ba4213',1,'ostream::seekp(off_type off, seekdir way)']]], - ['seekset',['seekSet',['../class_fat_file.html#ab067190d25733ed7e697d9890f61fd7a',1,'FatFile']]], - ['seqpos',['seqPos',['../structfname__t.html#a96b7c779dec8dd568be3290451078a4e',1,'fname_t']]], - ['setcwd',['setCwd',['../class_fat_file.html#a360ef9c05e677271bed6c0a4d663634c',1,'FatFile']]], - ['setf',['setf',['../classios__base.html#ab5db835cb45bba7684ebf72d9a3cccb4',1,'ios_base::setf(fmtflags fl)'],['../classios__base.html#a74dbc93607ab7d68a87ec326b92b6c81',1,'ios_base::setf(fmtflags fl, fmtflags mask)']]], - ['setfill',['setfill',['../structsetfill.html',1,'setfill'],['../structsetfill.html#abcd87f0632678d277df55406d25c8325',1,'setfill::setfill()']]], - ['setpos',['setpos',['../class_fat_file.html#acf264de4e3ca36c5e8a39e56173c9044',1,'FatFile']]], - ['setprecision',['setprecision',['../structsetprecision.html',1,'setprecision'],['../structsetprecision.html#a73fce143591989f56ef887a2ea86ac45',1,'setprecision::setprecision()']]], - ['setstate',['setstate',['../classios.html#aee5d194656bdfb0c8621b23ea2f51afb',1,'ios']]], - ['setw',['setw',['../structsetw.html',1,'setw'],['../structsetw.html#afd8bfd075474f63df3c8b44ad47517d2',1,'setw::setw()']]], - ['sfn',['sfn',['../structfname__t.html#a37ed0c108b1feb81be4f8c041a4336bd',1,'fname_t']]], - ['showbase',['showbase',['../classios__base.html#a7e3373ab307feecfc228bc9bdb29cd01',1,'ios_base::showbase()'],['../ios_8h.html#a73159e1398939807aeae6015dd86f2f4',1,'showbase(): ios.h']]], - ['showpoint',['showpoint',['../classios__base.html#ac9bb172682e157f037bd7fb82a236ee6',1,'ios_base::showpoint()'],['../ios_8h.html#a322f5897ace09768cd782f0c8f222770',1,'showpoint(): ios.h']]], - ['showpos',['showpos',['../classios__base.html#a7bfa4a883933105d10f8ce2693cb9f21',1,'ios_base::showpos()'],['../ios_8h.html#a80798554dbfece679adb0e05eb855943',1,'showpos(): ios.h']]], - ['size',['size',['../class_file.html#a603d3cd3319142d00a7ebd434970b017',1,'File']]], - ['skipwhite',['skipWhite',['../classistream.html#a0f7468be86d93de5d33fa99095898279',1,'istream']]], - ['skipws',['skipws',['../classios__base.html#a64977c777d6e45826d1be9763f17f824',1,'ios_base::skipws()'],['../ios_8h.html#a972282e5d9d894f61c8a54423858c0a4',1,'skipws(): ios.h']]], - ['spistart',['spiStart',['../class_sd_spi_card.html#aa39feb6ebb269071ac6843a424ac311c',1,'SdSpiCard']]], - ['spistop',['spiStop',['../class_sd_spi_card.html#a1033a4a68d38f52dddf6a1764fcca3e1',1,'SdSpiCard']]], - ['stdiostream',['StdioStream',['../class_stdio_stream.html',1,'StdioStream'],['../class_stdio_stream.html#a96b2c027e76bfca6d6835c9ae1be2ad2',1,'StdioStream::StdioStream()']]], - ['stdiostream_2eh',['StdioStream.h',['../_stdio_stream_8h.html',1,'']]], - ['stream_5fbuf_5fsize',['STREAM_BUF_SIZE',['../_stdio_stream_8h.html#ad9a6150ef11e2616c1a99bc777df17d3',1,'StdioStream.h']]], - ['streamsize',['streamsize',['../classios__base.html#a82836e1d3cc603fba8f0b54d323a2dff',1,'ios_base']]], - ['structsignature',['structSignature',['../structfat32__fsinfo.html#aa4a9ed657a0f58a7a1c75760c3a79fd4',1,'fat32_fsinfo']]], - ['sync',['sync',['../class_fat_file.html#a67f3dc4896c542d695e11aac927f585e',1,'FatFile::sync()'],['../class_fat_cache.html#a4d76d4f46ce5994f6fc4678a7b4f8cf1',1,'FatCache::sync()']]], - ['syncblocks',['syncBlocks',['../class_base_block_driver.html#a5361ff2658d7654bf00b97c54c6aa2aa',1,'BaseBlockDriver::syncBlocks()'],['../class_sdio_card.html#affcd36a5c3a42042fe24716671f06632',1,'SdioCard::syncBlocks()'],['../class_sd_spi_card.html#a1b6d5f412c4ad75c2f575ca75c56c095',1,'SdSpiCard::syncBlocks()'],['../class_sd_spi_card_e_x.html#af4a7c15bae6add50d66d066c0927a021',1,'SdSpiCardEX::syncBlocks()']]], - ['syscall',['SysCall',['../class_sys_call.html',1,'']]], - ['syscall_2eh',['SysCall.h',['../_sys_call_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_12.html b/libraries/SdFat/extras/html/search/all_12.html deleted file mode 100644 index fe93a5b..0000000 --- a/libraries/SdFat/extras/html/search/all_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_12.js b/libraries/SdFat/extras/html/search/all_12.js deleted file mode 100644 index 63a7c68..0000000 --- a/libraries/SdFat/extras/html/search/all_12.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['tailsignature',['tailSignature',['../structfat32__fsinfo.html#a484dd16425e4e687dc914d12309470e0',1,'fat32_fsinfo']]], - ['tellg',['tellg',['../classistream.html#a18332bdcb7fbe33ca06045c786cac4c3',1,'istream']]], - ['tellp',['tellp',['../classostream.html#a92dec0e2bc8352df1419d1cdc434e619',1,'ostream']]], - ['timestamp',['timestamp',['../class_fat_file.html#aa53a8d1d2467ad9af7d61cbf8ee85243',1,'FatFile::timestamp(FatFile *file)'],['../class_fat_file.html#a56dabdf73833b7e961c4530eb8e16d23',1,'FatFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)']]], - ['totalsectors',['totalSectors',['../structpartition_table.html#acf96e59ce648a9a0cf35751c3b6d7730',1,'partitionTable']]], - ['totalsectors16',['totalSectors16',['../structbios_parm_block.html#a686c686fde2fb109bea120f2f434db87',1,'biosParmBlock::totalSectors16()'],['../structfat__boot.html#ac8bd40dd9186882e423e10b0c83e89b7',1,'fat_boot::totalSectors16()'],['../structfat32__boot.html#acbcae2f15475a886f674f932da1deb3f',1,'fat32_boot::totalSectors16()']]], - ['totalsectors32',['totalSectors32',['../structbios_parm_block.html#abead42e130c40e2aa535202e7cb07578',1,'biosParmBlock::totalSectors32()'],['../structfat__boot.html#addeb2dd8f78418edbf544303d44133e2',1,'fat_boot::totalSectors32()'],['../structfat32__boot.html#ab79466016103c2762c6b057dd458d434',1,'fat32_boot::totalSectors32()']]], - ['trunc',['trunc',['../classios__base.html#ae62b8972f37509819e1384214071194b',1,'ios_base']]], - ['truncate',['truncate',['../class_fat_file.html#aa6e663098a578635d37d92e82d18d616',1,'FatFile::truncate()'],['../class_fat_file_system.html#ad60cb13557f35578f868e03e9ccb8be1',1,'FatFileSystem::truncate()']]], - ['type',['type',['../structpartition_table.html#a3861cf276c728c4dd30ca04e74197ee8',1,'partitionTable::type()'],['../structlong_directory_entry.html#a9adb019dbf24cce65c8d1419cd000f91',1,'longDirectoryEntry::type()'],['../class_sdio_card.html#a2151106a93280ae41bab654428214661',1,'SdioCard::type()'],['../class_sd_spi_card.html#a061d92bf154a1863a6321385b7505f6e',1,'SdSpiCard::type()']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_13.html b/libraries/SdFat/extras/html/search/all_13.html deleted file mode 100644 index cb938b9..0000000 --- a/libraries/SdFat/extras/html/search/all_13.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_13.js b/libraries/SdFat/extras/html/search/all_13.js deleted file mode 100644 index a2e23a1..0000000 --- a/libraries/SdFat/extras/html/search/all_13.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['ungetc',['ungetc',['../class_stdio_stream.html#ac00e0dd906c2e857ece53794c6c92786',1,'StdioStream']]], - ['ungetc_5fbuf_5fsize',['UNGETC_BUF_SIZE',['../_stdio_stream_8h.html#a785dd413c0d7b05f95df82d3453ecacd',1,'StdioStream.h']]], - ['unsetf',['unsetf',['../classios__base.html#a3bf7d054a433ed15e8b984e16f630fa4',1,'ios_base']]], - ['uppercase',['uppercase',['../classios__base.html#ade3db1fe3249e87f4c47a9a8916793d9',1,'ios_base::uppercase()'],['../ios_8h.html#af5d5e1a0effa1b500bb882feed5a2061',1,'uppercase(): ios.h']]], - ['use_5flong_5ffile_5fnames',['USE_LONG_FILE_NAMES',['../_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): FatLibConfig.h']]], - ['use_5fmulti_5fblock_5fio',['USE_MULTI_BLOCK_IO',['../_sd_fat_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): SdFatConfig.h'],['../_fat_lib_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): FatLibConfig.h']]], - ['use_5fsd_5fcrc',['USE_SD_CRC',['../_sd_fat_config_8h.html#af2e76ffb2fdb830175abf513dd640fdd',1,'SdFatConfig.h']]], - ['use_5fseparate_5ffat_5fcache',['USE_SEPARATE_FAT_CACHE',['../_sd_fat_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): FatLibConfig.h']]], - ['use_5fstandard_5fspi_5flibrary',['USE_STANDARD_SPI_LIBRARY',['../_sd_fat_config_8h.html#a3dc42547ca4567cb789bec55759afeb2',1,'SdFatConfig.h']]], - ['usuallyzero',['usuallyZero',['../structmaster_boot_record.html#afacfc863e98f64053cd9459c6dec948f',1,'masterBootRecord']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_14.html b/libraries/SdFat/extras/html/search/all_14.html deleted file mode 100644 index 2fcfb13..0000000 --- a/libraries/SdFat/extras/html/search/all_14.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_14.js b/libraries/SdFat/extras/html/search/all_14.js deleted file mode 100644 index 2983655..0000000 --- a/libraries/SdFat/extras/html/search/all_14.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['vol',['vol',['../class_fat_file_system.html#a4ca68fe47bb675df0a80df1ed7a53698',1,'FatFileSystem']]], - ['volume',['volume',['../class_fat_file.html#a3c64bd8a9abb9a6461d4addb405614df',1,'FatFile']]], - ['volumeblockcount',['volumeBlockCount',['../class_fat_volume.html#a07bc98088ce4a9c725700899c184f7fc',1,'FatVolume']]], - ['volumelabel',['volumeLabel',['../structfat__boot.html#a9ee733f1b1abc0210ec8f9676bba2218',1,'fat_boot::volumeLabel()'],['../structfat32__boot.html#a8e6349f46344145a7320637a58107b3b',1,'fat32_boot::volumeLabel()']]], - ['volumeserialnumber',['volumeSerialNumber',['../structfat__boot.html#ac05e88a0d27f0340ba008834361d2b20',1,'fat_boot::volumeSerialNumber()'],['../structfat32__boot.html#a20768678da224faefd8acf12cabdbfb8',1,'fat32_boot::volumeSerialNumber()']]], - ['vwd',['vwd',['../class_fat_file_system.html#acf257d02b7166683bda2abc5058004bf',1,'FatFileSystem']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_15.html b/libraries/SdFat/extras/html/search/all_15.html deleted file mode 100644 index a31c6e8..0000000 --- a/libraries/SdFat/extras/html/search/all_15.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_15.js b/libraries/SdFat/extras/html/search/all_15.js deleted file mode 100644 index a92f3a2..0000000 --- a/libraries/SdFat/extras/html/search/all_15.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['w',['w',['../structsetw.html#ab48d915a24d3f3365c9eb76e138a6f4e',1,'setw']]], - ['wdt_5fyield_5ftime_5fmicros',['WDT_YIELD_TIME_MICROS',['../_sd_fat_config_8h.html#a4e8a928d86c50c91c0bfc9a442373e14',1,'SdFatConfig.h']]], - ['width',['width',['../classios__base.html#afa30e7644b4eae5928ad9c487ad387de',1,'ios_base::width()'],['../classios__base.html#ab2ba0f005bbf3d8ebed93b64068492e0',1,'ios_base::width(unsigned n)']]], - ['wipe',['wipe',['../class_fat_file_system.html#a36d7831f92acfbfef1c4a24dd7103dc4',1,'FatFileSystem::wipe()'],['../class_fat_volume.html#a8088aa74cf601996905dadd2eea6966c',1,'FatVolume::wipe()']]], - ['write',['write',['../class_minimum_serial.html#a0ca1d9631fe5f2f00878bd481dbbd3aa',1,'MinimumSerial::write()'],['../class_print_file.html#a460b033ff85e85f684f8d9b615645db1',1,'PrintFile::write(uint8_t b)'],['../class_print_file.html#a29c1d534d21c3a82ad04232d37119a57',1,'PrintFile::write(const uint8_t *buf, size_t size)'],['../class_file.html#a618a6b2b7e81bfb93e0d3c158f614f90',1,'File::write(uint8_t b)'],['../class_file.html#aa531c1641a2363e1f6b9d103f37433da',1,'File::write(const uint8_t *buf, size_t size)'],['../class_fat_file.html#aa4a5b81161994cea07938702cdfce49f',1,'FatFile::write(const char *str)'],['../class_fat_file.html#a5524bd9f3b8f54ee163e391cba618186',1,'FatFile::write(uint8_t b)'],['../class_fat_file.html#a0ab9df44a9ee4b6eb0a78f15f1e30004',1,'FatFile::write(const void *buf, size_t nbyte)']]], - ['writeblock',['writeBlock',['../class_base_block_driver.html#a87df3db1b400286883661525441d39fa',1,'BaseBlockDriver::writeBlock()'],['../class_sdio_card.html#ae53e5f72ddf9ace3f47774d968e064ed',1,'SdioCard::writeBlock()'],['../class_sd_spi_card.html#a03a0bdb0f37a88076f24a2133cf5b4ed',1,'SdSpiCard::writeBlock()'],['../class_sd_spi_card_e_x.html#a6bd5e6bcfc2ab9574daa11bdd342be7b',1,'SdSpiCardEX::writeBlock()']]], - ['writeblocks',['writeBlocks',['../class_base_block_driver.html#a3d6520b21252ebfb17b0cac0b87689b1',1,'BaseBlockDriver::writeBlocks()'],['../class_sdio_card.html#a8b811f875497e90e75fbe6c2d41d89cb',1,'SdioCard::writeBlocks()'],['../class_sd_spi_card.html#a181d96fe44891b7caabcd47dd29ac913',1,'SdSpiCard::writeBlocks()'],['../class_sd_spi_card_e_x.html#a9a7a5815b56c2cc77590a72635593762',1,'SdSpiCardEX::writeBlocks()']]], - ['writedata',['writeData',['../class_sd_spi_card.html#a9495c0b148eb380358bb4a9721c0dffa',1,'SdSpiCard']]], - ['writestart',['writeStart',['../class_sd_spi_card.html#a56d4750a5d2f693943eec985cb61ffe2',1,'SdSpiCard::writeStart(uint32_t blockNumber)'],['../class_sd_spi_card.html#a8bf0dc991308dcd2a7427bad89a9e2ba',1,'SdSpiCard::writeStart(uint32_t blockNumber, uint32_t eraseCount)']]], - ['writestop',['writeStop',['../class_sd_spi_card.html#aef9154785a4de5560fb807e4f9316fb0',1,'SdSpiCard']]], - ['ws',['ws',['../iostream_8h.html#a8adf4c714b8c8f201dedc83ee04556b1',1,'iostream.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_16.html b/libraries/SdFat/extras/html/search/all_16.html deleted file mode 100644 index 6343dec..0000000 --- a/libraries/SdFat/extras/html/search/all_16.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_16.js b/libraries/SdFat/extras/html/search/all_16.js deleted file mode 100644 index 685c4a7..0000000 --- a/libraries/SdFat/extras/html/search/all_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['yield',['yield',['../class_sys_call.html#a2219ba5ea8e411b022a3a00df5f380e0',1,'SysCall']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_2.html b/libraries/SdFat/extras/html/search/all_2.html deleted file mode 100644 index 93962b7..0000000 --- a/libraries/SdFat/extras/html/search/all_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_2.js b/libraries/SdFat/extras/html/search/all_2.js deleted file mode 100644 index 2cabb23..0000000 --- a/libraries/SdFat/extras/html/search/all_2.js +++ /dev/null @@ -1,32 +0,0 @@ -var searchData= -[ - ['bad',['bad',['../classios.html#a7daa417c60277a4a4a452df4ad0af8e6',1,'ios']]], - ['badbit',['badbit',['../classios__base.html#ac8c2c8f2f6bc9e6ce101c20e88ebce35',1,'ios_base']]], - ['baseblockdriver',['BaseBlockDriver',['../class_base_block_driver.html',1,'']]], - ['basefield',['basefield',['../classios__base.html#a75ce5482aa207d7aa0265d138b50a102',1,'ios_base']]], - ['beg',['beg',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191ea6639b4dd9e9b57ffef4a176cd1a1e7bb',1,'ios_base']]], - ['begin',['begin',['../class_minimum_serial.html#a5c56beb3472bb97f949defeecacda52c',1,'MinimumSerial::begin()'],['../class_sd_file_system.html#ad94237ef45c52698e97b04e8c131f21e',1,'SdFileSystem::begin()'],['../class_sd_fat.html#abfafe10a64b28e6c1698ed82d340f624',1,'SdFat::begin()'],['../class_sd_fat_sdio.html#ac742b37bd8f2f4eb4df44b37c98398e0',1,'SdFatSdio::begin()'],['../class_sd_fat_soft_spi.html#a061019e4b5e17fad3cf8b0e3a08532e4',1,'SdFatSoftSpi::begin()'],['../class_sd_fat_e_x.html#a25acc97272c6004a6a4118bacef07467',1,'SdFatEX::begin()'],['../class_sd_fat_soft_spi_e_x.html#af84b3a6a61dd4c7f3c2c4bb17a8a6609',1,'SdFatSoftSpiEX::begin()'],['../class_sd2_card.html#a8506e1a2d7c4d8ec3f26e8b62ea81cd7',1,'Sd2Card::begin()'],['../class_fat_file_system.html#a5dda20d3dcbfc8c641babbb2c9aac382',1,'FatFileSystem::begin()'],['../class_sdio_card.html#ac749bdad92a4465d062f5d21a7f4faf5',1,'SdioCard::begin()'],['../class_sd_spi_card.html#a824cd60ef8ac2b06262597d6f30a4ea7',1,'SdSpiCard::begin()'],['../class_sd_spi_card_e_x.html#a4fd0b23d230c6ad7dc406e798bbd5470',1,'SdSpiCardEX::begin()']]], - ['begincylinderhigh',['beginCylinderHigh',['../structpartition_table.html#a744f0c7f9ad4c426b10de085b4f52392',1,'partitionTable']]], - ['begincylinderlow',['beginCylinderLow',['../structpartition_table.html#a941fcb4df298f5f73ccca011bf40787a',1,'partitionTable']]], - ['beginhead',['beginHead',['../structpartition_table.html#a7d426694b8cf2151ae38568670a8c845',1,'partitionTable']]], - ['beginsector',['beginSector',['../structpartition_table.html#ae201c11d9671c9efc307c654a2b6c026',1,'partitionTable']]], - ['binary',['binary',['../classios__base.html#ac99947c17c2936d15243671366605602',1,'ios_base']]], - ['biosparmblock',['biosParmBlock',['../structbios_parm_block.html',1,'']]], - ['block',['block',['../class_fat_cache.html#ab3d9c4f94af61065b6d6d0892827fd8a',1,'FatCache']]], - ['blockdriver',['BlockDriver',['../_block_driver_8h.html#ace97f2377acdc471a01f9f7ec1fd6bbb',1,'BlockDriver.h']]], - ['blockdriver_2eh',['BlockDriver.h',['../_block_driver_8h.html',1,'']]], - ['blockspercluster',['blocksPerCluster',['../class_fat_volume.html#a06beed4cea5e38116b58254a57125442',1,'FatVolume']]], - ['blocksperfat',['blocksPerFat',['../class_fat_volume.html#abc66d856d05198d9ebe7104c8c4155d7',1,'FatVolume']]], - ['boolalpha',['boolalpha',['../classios__base.html#afa74acd95d4bbc7cc3551251aac2bf00',1,'ios_base::boolalpha()'],['../ios_8h.html#a0016daaaf730481e2ad36972fa7abb17',1,'boolalpha(): ios.h']]], - ['boot',['boot',['../structpartition_table.html#adf386afb1f33046d8b6a1a0afa780ec9',1,'partitionTable']]], - ['bootcode',['bootCode',['../structfat__boot.html#acf9f5d9f61a6e680e11849f957ecf782',1,'fat_boot::bootCode()'],['../structfat32__boot.html#a7a74880066860140386edf3d9278b9f7',1,'fat32_boot::bootCode()']]], - ['bootsectorsig0',['bootSectorSig0',['../structfat__boot.html#a7951b888af4f357b84dd40af2ef7f29d',1,'fat_boot::bootSectorSig0()'],['../structfat32__boot.html#a1cb46a5427b641a6017a082bc56df1be',1,'fat32_boot::bootSectorSig0()']]], - ['bootsectorsig1',['bootSectorSig1',['../structfat__boot.html#afe8f58668ff594bb2022ce7c06b7726c',1,'fat_boot::bootSectorSig1()'],['../structfat32__boot.html#a53bc302a398f02a86d3b28f25a5ec8e2',1,'fat32_boot::bootSectorSig1()']]], - ['bootsig0',['BOOTSIG0',['../_fat_structs_8h.html#acb7f0c892eb84c121c5698b2605e95e3',1,'FatStructs.h']]], - ['bootsig1',['BOOTSIG1',['../_fat_structs_8h.html#a52f90172e11e828b411c803f29853753',1,'FatStructs.h']]], - ['bootsignature',['bootSignature',['../structfat__boot.html#a712dc388c530e91e4a692e7102d6bdc8',1,'fat_boot::bootSignature()'],['../structfat32__boot.html#ab79a1205277ecab05526fb0bac6e42f6',1,'fat32_boot::bootSignature()']]], - ['bpb_5ft',['bpb_t',['../_fat_structs_8h.html#a5c8af240713e05e7e6c959006ced35fb',1,'FatStructs.h']]], - ['buf',['buf',['../classobufstream.html#a4f699181bd3727f4288f4f95a5ce207f',1,'obufstream']]], - ['bufstream_2eh',['bufstream.h',['../bufstream_8h.html',1,'']]], - ['bytespersector',['bytesPerSector',['../structbios_parm_block.html#aec24d316af486445d55da14cbbfa6bf4',1,'biosParmBlock::bytesPerSector()'],['../structfat__boot.html#a60b2461f8ebf0ad295a95094e1bd7d65',1,'fat_boot::bytesPerSector()'],['../structfat32__boot.html#a03c7086a8c988257a6678179a67a3fee',1,'fat32_boot::bytesPerSector()']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_3.html b/libraries/SdFat/extras/html/search/all_3.html deleted file mode 100644 index 679f93c..0000000 --- a/libraries/SdFat/extras/html/search/all_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_3.js b/libraries/SdFat/extras/html/search/all_3.js deleted file mode 100644 index fb88ee5..0000000 --- a/libraries/SdFat/extras/html/search/all_3.js +++ /dev/null @@ -1,40 +0,0 @@ -var searchData= -[ - ['c',['c',['../structsetfill.html#a42ffb4e6135c1274ae827cfed7793a82',1,'setfill']]], - ['cache_5ffor_5fread',['CACHE_FOR_READ',['../class_fat_cache.html#ab4b446515ff9a0cebc747630ddd10c93',1,'FatCache']]], - ['cache_5ffor_5fwrite',['CACHE_FOR_WRITE',['../class_fat_cache.html#a81cb572f33443bd6aee9aa33ec395d0f',1,'FatCache']]], - ['cache_5foption_5fno_5fread',['CACHE_OPTION_NO_READ',['../class_fat_cache.html#adf974f55e53ee0aaa85abb0d7d67181c',1,'FatCache']]], - ['cache_5freserve_5ffor_5fwrite',['CACHE_RESERVE_FOR_WRITE',['../class_fat_cache.html#a49d2896ff525ab77852f76df5c2a09c2',1,'FatCache']]], - ['cache_5fstatus_5fdirty',['CACHE_STATUS_DIRTY',['../class_fat_cache.html#aac8c38e5c545d0f80b13d816117f626e',1,'FatCache']]], - ['cache_5fstatus_5fmask',['CACHE_STATUS_MASK',['../class_fat_cache.html#ab70dc4a2e387f0e9bf392044c702ae32',1,'FatCache']]], - ['cache_5fstatus_5fmirror_5ffat',['CACHE_STATUS_MIRROR_FAT',['../class_fat_cache.html#a45236e1c0a2a098f08d3add0e4b1467a',1,'FatCache']]], - ['cache_5ft',['cache_t',['../unioncache__t.html',1,'']]], - ['cacheclear',['cacheClear',['../class_fat_volume.html#aa1e3b1d0c21d202deb82668068ab00e8',1,'FatVolume']]], - ['card',['card',['../class_sd_file_system.html#ab5dcfbeeb7caa38a38db86003341eb07',1,'SdFileSystem']]], - ['cardbegin',['cardBegin',['../class_sd_fat.html#ae380e4572776db851b2f80a3ed143fca',1,'SdFat::cardBegin()'],['../class_sd_fat_sdio.html#ac49062cc8fb2a42564d0ff05b4c0be8b',1,'SdFatSdio::cardBegin()']]], - ['carderrorcode',['cardErrorCode',['../class_sd_file_system.html#aedfd5a0830c955bc5514e52f2f2dd066',1,'SdFileSystem']]], - ['carderrordata',['cardErrorData',['../class_sd_file_system.html#a0602ab3c04ea33293649f0a15fc81e05',1,'SdFileSystem']]], - ['cardsize',['cardSize',['../class_sdio_card.html#a3d8f9a92f7faec77094ec65e6c41dd45',1,'SdioCard::cardSize()'],['../class_sd_spi_card.html#afca8bd6b7e465bf9c475ba375c4deec8',1,'SdSpiCard::cardSize()']]], - ['chdir',['chdir',['../class_fat_file_system.html#a5667915e63187a43a71dfada63800865',1,'FatFileSystem::chdir(bool set_cwd=false)'],['../class_fat_file_system.html#a44af1b98e8d986d12107b654453acbc4',1,'FatFileSystem::chdir(const char *path, bool set_cwd=false)']]], - ['chksum',['chksum',['../structlong_directory_entry.html#a60c35531bc0e12f2d764d290244f8cc9',1,'longDirectoryEntry']]], - ['chvol',['chvol',['../class_fat_file_system.html#af24917d6e00c8766dab168eb834047ec',1,'FatFileSystem']]], - ['clear',['clear',['../classfstream.html#a682b278a6a299ffb21b8737717ff12bf',1,'fstream::clear()'],['../classofstream.html#a09edfdb3dbda20aff105e751001313f0',1,'ofstream::clear()'],['../classios.html#aa49ed6670d1743e7a373b2d915ec739a',1,'ios::clear()']]], - ['clearerr',['clearerr',['../class_stdio_stream.html#aa737e5680fc2808a03a603ea8559d82b',1,'StdioStream']]], - ['clearerror',['clearError',['../class_fat_file.html#a052e2c15a39b322a5307b693b8835b22',1,'FatFile']]], - ['clearwriteerror',['clearWriteError',['../class_fat_file.html#aeca2a2eff91e6aa55fe1b0e3860c9a05',1,'FatFile']]], - ['close',['close',['../class_fat_file.html#afd16af325e0642e4bff6430b7d8bb18b',1,'FatFile::close()'],['../classfstream.html#ac5720ee620c09d63dd186823e688ea9a',1,'fstream::close()'],['../classifstream.html#ac5892f472afdef6160f5fe2401b16dce',1,'ifstream::close()'],['../classofstream.html#a240f3752c7ff7a78d10c143d2083715f',1,'ofstream::close()']]], - ['cluster',['cluster',['../struct_fat_pos__t.html#a7b50657b0debaf0e6231af2c74a655fe',1,'FatPos_t']]], - ['clustercount',['clusterCount',['../class_fat_volume.html#a18446a9c5924304fa7a87d5f03ccaf21',1,'FatVolume']]], - ['clustersizeshift',['clusterSizeShift',['../class_fat_volume.html#ac0e63f33d71d5dc95a602834274def6a',1,'FatVolume']]], - ['codearea',['codeArea',['../structmaster_boot_record.html#a26ca1fb4ebbff2cc1a54153b1dfcd688',1,'masterBootRecord']]], - ['contiguousrange',['contiguousRange',['../class_fat_file.html#aa367708bcc8bc0e0c45c0c2a812c65da',1,'FatFile']]], - ['createcontiguous',['createContiguous',['../class_fat_file.html#a0afc2a1cffa238d1cb2049bfa2d8d199',1,'FatFile::createContiguous(FatFile *dirFile, const char *path, uint32_t size)'],['../class_fat_file.html#a0853fbd44aee2798d14d8e3aed78f8bf',1,'FatFile::createContiguous(const char *path, uint32_t size)']]], - ['creationdate',['creationDate',['../structdirectory_entry.html#a7b43372794655fe6604d3c17c02302fe',1,'directoryEntry']]], - ['creationtime',['creationTime',['../structdirectory_entry.html#a622bfa70c2cd9006108d7473d737a953',1,'directoryEntry']]], - ['creationtimetenths',['creationTimeTenths',['../structdirectory_entry.html#aa5e1ce5b411b88f005b28a3e7c7c5af6',1,'directoryEntry']]], - ['cur',['cur',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191ea53910041525b9e2f33bfc3bb4482134c',1,'ios_base']]], - ['curcluster',['curCluster',['../class_fat_file.html#a4c03e2f6729526786e6ab4a623e0339b',1,'FatFile']]], - ['curposition',['curPosition',['../class_fat_file.html#a20c55b134bfd1d287a00bf64eba9332e',1,'FatFile']]], - ['curtimems',['curTimeMS',['../_sys_call_8h.html#a7a1c5babdcf00c78d4d2e6a012bd9e68',1,'SysCall.h']]], - ['cwd',['cwd',['../class_fat_file.html#a3b68e603ad8e47bad915f0547e580adb',1,'FatFile']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_4.html b/libraries/SdFat/extras/html/search/all_4.html deleted file mode 100644 index adc99fb..0000000 --- a/libraries/SdFat/extras/html/search/all_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_4.js b/libraries/SdFat/extras/html/search/all_4.js deleted file mode 100644 index fb8b966..0000000 --- a/libraries/SdFat/extras/html/search/all_4.js +++ /dev/null @@ -1,43 +0,0 @@ -var searchData= -[ - ['data',['data',['../unioncache__t.html#ae675b7a3a87d809070de111d1d1f1d81',1,'cache_t']]], - ['datastartblock',['dataStartBlock',['../class_fat_volume.html#a443364af257c219f8e908d5b073d8fa3',1,'FatVolume']]], - ['datetimecallback',['dateTimeCallback',['../class_fat_file.html#a29a623f50df057e8b49045ba6611ec2b',1,'FatFile']]], - ['datetimecallbackcancel',['dateTimeCallbackCancel',['../class_fat_file.html#a5df02f1d037e6091375488af25244ebc',1,'FatFile']]], - ['dbgfat',['dbgFat',['../class_fat_volume.html#a25c6311b70fa274b3be94ff25fdebba7',1,'FatVolume']]], - ['dec',['dec',['../classios__base.html#a2826aed005e7c1f6858060cddae7971a',1,'ios_base::dec()'],['../ios_8h.html#ada38ab90e22f0ebb638cb864a35c562d',1,'dec(): ios.h']]], - ['destructor_5fcloses_5ffile',['DESTRUCTOR_CLOSES_FILE',['../_sd_fat_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): FatLibConfig.h']]], - ['dir',['dir',['../unioncache__t.html#a7396fdbdb7c52bd1d72c5329ff32acd1',1,'cache_t']]], - ['dir_5fatt_5farchive',['DIR_ATT_ARCHIVE',['../_fat_structs_8h.html#a0d0745a2bc191d12f6e3294a890c4b13',1,'FatStructs.h']]], - ['dir_5fatt_5fdefined_5fbits',['DIR_ATT_DEFINED_BITS',['../_fat_structs_8h.html#ad0c6ed5cf186a40f98cc3929b52cf8ee',1,'FatStructs.h']]], - ['dir_5fatt_5fdirectory',['DIR_ATT_DIRECTORY',['../_fat_structs_8h.html#a5fe039a9af7304fc97a0e903acd217f7',1,'FatStructs.h']]], - ['dir_5fatt_5ffile_5ftype_5fmask',['DIR_ATT_FILE_TYPE_MASK',['../_fat_structs_8h.html#af006ada1b85a9761dd9538273c1ee97f',1,'FatStructs.h']]], - ['dir_5fatt_5fhidden',['DIR_ATT_HIDDEN',['../_fat_structs_8h.html#aed394afe98ff4b7876a5815319b6ef94',1,'FatStructs.h']]], - ['dir_5fatt_5flong_5fname',['DIR_ATT_LONG_NAME',['../_fat_structs_8h.html#a0039e1903007eb7383a9fe4b80a3569e',1,'FatStructs.h']]], - ['dir_5fatt_5flong_5fname_5fmask',['DIR_ATT_LONG_NAME_MASK',['../_fat_structs_8h.html#a74ddbd24c315a682449a51a2a35adf39',1,'FatStructs.h']]], - ['dir_5fatt_5fread_5fonly',['DIR_ATT_READ_ONLY',['../_fat_structs_8h.html#ae5efa2fd21e8a563a3a45f8a52538cde',1,'FatStructs.h']]], - ['dir_5fatt_5fsystem',['DIR_ATT_SYSTEM',['../_fat_structs_8h.html#a31c7e5c119c9ebc1237746c985cf385d',1,'FatStructs.h']]], - ['dir_5fatt_5fvolume_5fid',['DIR_ATT_VOLUME_ID',['../_fat_structs_8h.html#a410501be78b30a75224dd4e81a4a1105',1,'FatStructs.h']]], - ['dir_5fis_5ffile',['DIR_IS_FILE',['../_fat_structs_8h.html#a5ce8bde4d6ff3950df951e84c7bb8d58',1,'FatStructs.h']]], - ['dir_5fis_5ffile_5for_5fsubdir',['DIR_IS_FILE_OR_SUBDIR',['../_fat_structs_8h.html#a9d99b04fa090825a9b9c2468fa81e627',1,'FatStructs.h']]], - ['dir_5fis_5fhidden',['DIR_IS_HIDDEN',['../_fat_structs_8h.html#a5137c8165addb9d32c6094d03a9d029d',1,'FatStructs.h']]], - ['dir_5fis_5flong_5fname',['DIR_IS_LONG_NAME',['../_fat_structs_8h.html#a504c3d996b412f386becc27a8c49cd2c',1,'FatStructs.h']]], - ['dir_5fis_5fsubdir',['DIR_IS_SUBDIR',['../_fat_structs_8h.html#ace8ed88fcb41afc4d2fe0eabf96e71c6',1,'FatStructs.h']]], - ['dir_5fis_5fsystem',['DIR_IS_SYSTEM',['../_fat_structs_8h.html#a46cad0d590c5e290c52ccf660b316dd9',1,'FatStructs.h']]], - ['dir_5fname_5f0xe5',['DIR_NAME_0XE5',['../_fat_structs_8h.html#a1696d3db9949d6e22d1c2c595fd14669',1,'FatStructs.h']]], - ['dir_5fname_5fdeleted',['DIR_NAME_DELETED',['../_fat_structs_8h.html#a8c08d4823047505f3231e86c5033d08c',1,'FatStructs.h']]], - ['dir_5fname_5ffree',['DIR_NAME_FREE',['../_fat_structs_8h.html#a0f1f0001102ae59b9e7c9e3b04cc06d8',1,'FatStructs.h']]], - ['dir_5fnt_5flc_5fbase',['DIR_NT_LC_BASE',['../_fat_structs_8h.html#a39f9b8960dba007b537e9b71c25384fe',1,'FatStructs.h']]], - ['dir_5fnt_5flc_5fext',['DIR_NT_LC_EXT',['../_fat_structs_8h.html#a8766a8bbab6ad3da38c1b308545d7572',1,'FatStructs.h']]], - ['dir_5ft',['dir_t',['../_fat_structs_8h.html#a803db59d4e16a0c54a647afc6a7954e3',1,'FatStructs.h']]], - ['directoryentry',['directoryEntry',['../structdirectory_entry.html',1,'']]], - ['direntry',['dirEntry',['../class_fat_file.html#a6858d18c807411a071fd6d1b39d50087',1,'FatFile']]], - ['dirindex',['dirIndex',['../class_fat_file.html#ae5ec24d4a94d3780384d3f2b731c7eb9',1,'FatFile']]], - ['dirname',['dirName',['../class_fat_file.html#a648461081fe07578780f4cd3f246cb66',1,'FatFile']]], - ['dirsize',['dirSize',['../class_fat_file.html#ae2ed15f05c9ccbce355e7a8d3ce8382d',1,'FatFile']]], - ['dirty',['dirty',['../class_fat_cache.html#ab4d3b0c16bb6a116c7d01afff2dcb307',1,'FatCache']]], - ['disksignature',['diskSignature',['../structmaster_boot_record.html#a77151c641444c0653ff71a253f0423ef',1,'masterBootRecord']]], - ['dmabusy',['dmaBusy',['../class_sdio_card.html#a9781b9b4f91366a69dd077ad8fb364c5',1,'SdioCard']]], - ['dmpfile',['dmpFile',['../class_fat_file.html#a4f01d27954ae49aeb6888ac7302f55d9',1,'FatFile']]], - ['drivenumber',['driveNumber',['../structfat__boot.html#aebd280b93563b75b9612d3db844b0d16',1,'fat_boot::driveNumber()'],['../structfat32__boot.html#aca415c1a6eb1c242d460a6d0ffa9ebec',1,'fat32_boot::driveNumber()']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_5.html b/libraries/SdFat/extras/html/search/all_5.html deleted file mode 100644 index a9fcd17..0000000 --- a/libraries/SdFat/extras/html/search/all_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_5.js b/libraries/SdFat/extras/html/search/all_5.js deleted file mode 100644 index c89df75..0000000 --- a/libraries/SdFat/extras/html/search/all_5.js +++ /dev/null @@ -1,26 +0,0 @@ -var searchData= -[ - ['enable_5farduino_5ffeatures',['ENABLE_ARDUINO_FEATURES',['../_fat_lib_config_8h.html#a9a8c1ea8596f35f7f33a24b642567206',1,'FatLibConfig.h']]], - ['enable_5fextended_5ftransfer_5fclass',['ENABLE_EXTENDED_TRANSFER_CLASS',['../_sd_fat_config_8h.html#aad4f0ecbc65cdc3a7be544225b44f86a',1,'SdFatConfig.h']]], - ['enable_5fsdio_5fclass',['ENABLE_SDIO_CLASS',['../_sd_fat_config_8h.html#a1d106f3a0ba8577abdcc9ce3961ef90b',1,'SdFatConfig.h']]], - ['enable_5fsoftware_5fspi_5fclass',['ENABLE_SOFTWARE_SPI_CLASS',['../_sd_fat_config_8h.html#acc3d779d87b785bb7236b9b3acf7e619',1,'SdFatConfig.h']]], - ['end',['end',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191eaae47c0ae984e90b38907783a1a804811',1,'ios_base']]], - ['endcylinderhigh',['endCylinderHigh',['../structpartition_table.html#a32fea225b8ffd925ad919ffc56e9abda',1,'partitionTable']]], - ['endcylinderlow',['endCylinderLow',['../structpartition_table.html#ad7829e34be70084abe145227b0d18274',1,'partitionTable']]], - ['endhead',['endHead',['../structpartition_table.html#a4a3945bfd3a29f474984cb9f180dbd51',1,'partitionTable']]], - ['endl',['endl',['../iostream_8h.html#ab9868f8e151efc1705646437dbb59bb2',1,'iostream.h']]], - ['endl_5fcalls_5fflush',['ENDL_CALLS_FLUSH',['../_sd_fat_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): FatLibConfig.h']]], - ['endsector',['endSector',['../structpartition_table.html#a27cdc4320c418ed0d833ab163ed77ad7',1,'partitionTable']]], - ['eof',['eof',['../classios.html#ad2f091f3ed1a2e13f62557854c0885a7',1,'ios::eof()'],['../_stdio_stream_8h.html#a59adc4c82490d23754cd39c2fb99b0da',1,'EOF(): StdioStream.h']]], - ['eofbit',['eofbit',['../classios__base.html#af75072b7ef2a931c77a2cb8e7ccda460',1,'ios_base']]], - ['erase',['erase',['../class_sdio_card.html#a1ce82b035257790ed8e4a9be3d966b80',1,'SdioCard::erase()'],['../class_sd_spi_card.html#a1caa13d19df6596b2c0dd62365c75362',1,'SdSpiCard::erase()']]], - ['erasesingleblockenable',['eraseSingleBlockEnable',['../class_sd_spi_card.html#aed4591884254c9f58daa8738d7c1ccdd',1,'SdSpiCard']]], - ['error',['error',['../class_sd_spi_card.html#aa12ad53111abcb187d3c6119a3a77592',1,'SdSpiCard']]], - ['errorcode',['errorCode',['../class_sdio_card.html#a4ff272009a24fc4078ac87c2d87ccd16',1,'SdioCard::errorCode()'],['../class_sd_spi_card.html#a50bf5f92223222beacec2b203a6b7a95',1,'SdSpiCard::errorCode()']]], - ['errordata',['errorData',['../class_sdio_card.html#a8251b9aa0d623487e80cf908fc1625b5',1,'SdioCard::errorData()'],['../class_sd_spi_card.html#a7b1abdb8dd5254cd4af0df19ba59ce4a',1,'SdSpiCard::errorData()']]], - ['errorhalt',['errorHalt',['../class_sd_file_system.html#a855267374306bfee2df67642c99d4d18',1,'SdFileSystem::errorHalt()'],['../class_sd_file_system.html#ae1f79a2974ebe134e70f898c32d97e98',1,'SdFileSystem::errorHalt(Print *pr)'],['../class_sd_file_system.html#a32c20dfa6a8cb8af95f25847b19bdbca',1,'SdFileSystem::errorHalt(char const *msg)'],['../class_sd_file_system.html#a27fb329d6aee79a63c20386218ce7e9e',1,'SdFileSystem::errorHalt(Print *pr, char const *msg)'],['../class_sd_file_system.html#af856494745a9842d9728dfeabf19c51e',1,'SdFileSystem::errorHalt(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a746c80d048c30baf0b281e16932670a2',1,'SdFileSystem::errorHalt(Print *pr, const __FlashStringHelper *msg)']]], - ['errorline',['errorLine',['../class_sdio_card.html#aafa9feb1b5a90f3cf96456b6b286bfdf',1,'SdioCard']]], - ['errorprint',['errorPrint',['../class_sd_file_system.html#ab0b78154d6874c29279ba81f36ccb09c',1,'SdFileSystem::errorPrint()'],['../class_sd_file_system.html#a03736274debea71fef5e2ff34d7ec3dc',1,'SdFileSystem::errorPrint(Print *pr)'],['../class_sd_file_system.html#a2e2436b7b2666737cbaf4b22218bc69f',1,'SdFileSystem::errorPrint(const char *msg)'],['../class_sd_file_system.html#a0eb6b92a0700ba932f6127962981d153',1,'SdFileSystem::errorPrint(Print *pr, char const *msg)'],['../class_sd_file_system.html#a1ccb1f937f42e9c1331c942bc357f6da',1,'SdFileSystem::errorPrint(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a43344a079d9af92ea4b550914d0512f6',1,'SdFileSystem::errorPrint(Print *pr, const __FlashStringHelper *msg)']]], - ['exists',['exists',['../class_fat_file.html#a50242f98dea0d4488ce4039a279f2a57',1,'FatFile::exists()'],['../class_fat_file_system.html#aee58c6352652f216577196e32a594b67',1,'FatFileSystem::exists()']]], - ['extended_5fboot_5fsig',['EXTENDED_BOOT_SIG',['../_fat_structs_8h.html#aefadfae26e4cc8d57c1ff727a9d1cd20',1,'FatStructs.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_6.html b/libraries/SdFat/extras/html/search/all_6.html deleted file mode 100644 index 821c374..0000000 --- a/libraries/SdFat/extras/html/search/all_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_6.js b/libraries/SdFat/extras/html/search/all_6.js deleted file mode 100644 index 39257bc..0000000 --- a/libraries/SdFat/extras/html/search/all_6.js +++ /dev/null @@ -1,98 +0,0 @@ -var searchData= -[ - ['f',['F',['../_sys_call_8h.html#a0e3009529aac180ed5f48296d6670d6b',1,'SysCall.h']]], - ['fail',['fail',['../classios.html#a1c7b563046a50c5a0430405964998034',1,'ios']]], - ['failbit',['failbit',['../classios__base.html#a36157154001bcce17827db6786e35efd',1,'ios_base']]], - ['fat12_5fsupport',['FAT12_SUPPORT',['../_sd_fat_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): FatLibConfig.h']]], - ['fat12eoc',['FAT12EOC',['../_fat_structs_8h.html#af314c45d1d37d09c9e44847326232466',1,'FatStructs.h']]], - ['fat12eoc_5fmin',['FAT12EOC_MIN',['../_fat_structs_8h.html#a48951911b522ebf72bf5561c3402aa15',1,'FatStructs.h']]], - ['fat16',['fat16',['../unioncache__t.html#a8f3a4e9392a7d8ace954fc44c57df887',1,'cache_t']]], - ['fat16eoc',['FAT16EOC',['../_fat_structs_8h.html#afcd95ebc621a46c82b9997c8b9208550',1,'FatStructs.h']]], - ['fat16eoc_5fmin',['FAT16EOC_MIN',['../_fat_structs_8h.html#a2f549b850b74666ba7d922bcb373896e',1,'FatStructs.h']]], - ['fat32',['fat32',['../unioncache__t.html#a57e16421bf460d1ba6cb9ce9a23a4a83',1,'cache_t']]], - ['fat32_5fboot',['fat32_boot',['../structfat32__boot.html',1,'']]], - ['fat32_5fboot_5ft',['fat32_boot_t',['../_fat_structs_8h.html#a38fa081d004647a828095d31b07ec491',1,'FatStructs.h']]], - ['fat32_5ffsinfo',['fat32_fsinfo',['../structfat32__fsinfo.html',1,'']]], - ['fat32_5ffsinfo_5ft',['fat32_fsinfo_t',['../_fat_structs_8h.html#a6030ed0fce3a819326a2548407fc8556',1,'FatStructs.h']]], - ['fat32backbootblock',['fat32BackBootBlock',['../structbios_parm_block.html#a7a4e93790b6e66f090c1551020b099bd',1,'biosParmBlock::fat32BackBootBlock()'],['../structfat32__boot.html#ac93acdae62dab5cd1f7a35187992dbf2',1,'fat32_boot::fat32BackBootBlock()']]], - ['fat32eoc',['FAT32EOC',['../_fat_structs_8h.html#a67a9dbf970f43fadd41a6a9fede60c47',1,'FatStructs.h']]], - ['fat32eoc_5fmin',['FAT32EOC_MIN',['../_fat_structs_8h.html#a8f97a312e990c3f4faf7e98c3256aae5',1,'FatStructs.h']]], - ['fat32flags',['fat32Flags',['../structbios_parm_block.html#a626ac3dc473d764688b8171916eecf44',1,'biosParmBlock::fat32Flags()'],['../structfat32__boot.html#aaa31a140202021bf33aed72765531b3f',1,'fat32_boot::fat32Flags()']]], - ['fat32fsinfo',['fat32FSInfo',['../structbios_parm_block.html#a25ea392d8284e6c1d007cb8fcad4b86c',1,'biosParmBlock::fat32FSInfo()'],['../structfat32__boot.html#a03ff6d1197c08688f20c7aad40206bc4',1,'fat32_boot::fat32FSInfo()']]], - ['fat32mask',['FAT32MASK',['../_fat_structs_8h.html#a7491c79fff0bda3b026ffa098a28d6df',1,'FatStructs.h']]], - ['fat32reserved',['fat32Reserved',['../structbios_parm_block.html#a351f87fe3446b1a71963a30bbdc23218',1,'biosParmBlock::fat32Reserved()'],['../structfat32__boot.html#a3343ad07c664fb7564d68c5194ea7da9',1,'fat32_boot::fat32Reserved()']]], - ['fat32rootcluster',['fat32RootCluster',['../structbios_parm_block.html#a77ca01bd99f746e05dd872cbd2979937',1,'biosParmBlock::fat32RootCluster()'],['../structfat32__boot.html#aa216677f22a95dd86ed2e61604883a13',1,'fat32_boot::fat32RootCluster()']]], - ['fat32version',['fat32Version',['../structbios_parm_block.html#abad4f6f0c14dad9f5b7d43de94e685e8',1,'biosParmBlock::fat32Version()'],['../structfat32__boot.html#a29c37e1163772493efb524c5ca0e1aa8',1,'fat32_boot::fat32Version()']]], - ['fat_5fboot',['fat_boot',['../structfat__boot.html',1,'']]], - ['fat_5fboot_5ft',['fat_boot_t',['../_fat_structs_8h.html#aedac4595ee08198da26c14b9891a07d5',1,'FatStructs.h']]], - ['fat_5fdate',['FAT_DATE',['../_fat_structs_8h.html#a44899ad42ddf32ff1c1a73b5251b304a',1,'FatStructs.h']]], - ['fat_5fday',['FAT_DAY',['../_fat_structs_8h.html#a4cc8bc105529bf9e9c11e8ef099d68b0',1,'FatStructs.h']]], - ['fat_5fdefault_5fdate',['FAT_DEFAULT_DATE',['../_fat_structs_8h.html#a42eeb0322bced1f7b527c707f8bd54a4',1,'FatStructs.h']]], - ['fat_5fdefault_5ftime',['FAT_DEFAULT_TIME',['../_fat_structs_8h.html#a23c2510407ec3be457e0e4807644deb2',1,'FatStructs.h']]], - ['fat_5fhour',['FAT_HOUR',['../_fat_structs_8h.html#ae7c733d49a5570054f6db3bd53332ba1',1,'FatStructs.h']]], - ['fat_5fminute',['FAT_MINUTE',['../_fat_structs_8h.html#a1b09676a41ae6c9e19664bdcd5b1d34e',1,'FatStructs.h']]], - ['fat_5fmonth',['FAT_MONTH',['../_fat_structs_8h.html#a429bc2d96f5bc26dc3bd6cc2bd535b84',1,'FatStructs.h']]], - ['fat_5fsecond',['FAT_SECOND',['../_fat_structs_8h.html#a4d553e2088d42e01d6c08ee84e611b00',1,'FatStructs.h']]], - ['fat_5ftime',['FAT_TIME',['../_fat_structs_8h.html#a375720927be5a39475d48b2d75dae29a',1,'FatStructs.h']]], - ['fat_5fyear',['FAT_YEAR',['../_fat_structs_8h.html#a279a75f907dd2603543c7bdad00ff603',1,'FatStructs.h']]], - ['fatcache',['FatCache',['../class_fat_cache.html',1,'']]], - ['fatcount',['fatCount',['../structbios_parm_block.html#a7c03f147c3fb18f0df03d346050af13b',1,'biosParmBlock::fatCount()'],['../structfat__boot.html#a04d3b6a45acf28a80ff909dc1b33da2f',1,'fat_boot::fatCount()'],['../structfat32__boot.html#a7882fa8744bd171bfa1512bd442574bc',1,'fat32_boot::fatCount()'],['../class_fat_volume.html#acdedc6a200b01e401c9cd9b511eae6ec',1,'FatVolume::fatCount()']]], - ['fatfile',['FatFile',['../class_fat_file.html',1,'FatFile'],['../class_fat_file.html#a7b591c9b92165fa8e4eae8c30c30e533',1,'FatFile::FatFile()'],['../class_fat_file.html#a29d31067d0aa3a9a74b1a660c38775cc',1,'FatFile::FatFile(const char *path, uint8_t oflag)']]], - ['fatfile_2eh',['FatFile.h',['../_fat_file_8h.html',1,'']]], - ['fatfilesystem',['FatFileSystem',['../class_fat_file_system.html',1,'']]], - ['fatfilesystem_2eh',['FatFileSystem.h',['../_fat_file_system_8h.html',1,'']]], - ['fatlibconfig_2eh',['FatLibConfig.h',['../_fat_lib_config_8h.html',1,'']]], - ['fatpos_5ft',['FatPos_t',['../struct_fat_pos__t.html',1,'']]], - ['fatstartblock',['fatStartBlock',['../class_fat_volume.html#a0dd0cc689b63ef0702aed1cf36b1722d',1,'FatVolume']]], - ['fatstreambase',['FatStreamBase',['../class_fat_stream_base.html',1,'']]], - ['fatstructs_2eh',['FatStructs.h',['../_fat_structs_8h.html',1,'']]], - ['fattype',['fatType',['../class_fat_volume.html#a1364f11fe9bb4717ce0685e2b7b86027',1,'FatVolume']]], - ['fatvolume',['FatVolume',['../class_fat_volume.html',1,'FatVolume'],['../class_fat_volume.html#a026de2bb58026e4edea130db2949b84c',1,'FatVolume::FatVolume()']]], - ['fatvolume_2eh',['FatVolume.h',['../_fat_volume_8h.html',1,'']]], - ['fbs',['fbs',['../unioncache__t.html#ad1a4f1c0e8b8ca4d530427dbc920c764',1,'cache_t']]], - ['fbs32',['fbs32',['../unioncache__t.html#ad0613173ed4e83920eedfeb33102848a',1,'cache_t']]], - ['fclose',['fclose',['../class_stdio_stream.html#a4ddd4658d49182013d2fa2a181e96c5a',1,'StdioStream']]], - ['feof',['feof',['../class_stdio_stream.html#acb38c3211feedbf2206eb1d9a3a9d24f',1,'StdioStream']]], - ['ferror',['ferror',['../class_stdio_stream.html#afd64cec6440b923660b444f6d5f0586e',1,'StdioStream']]], - ['fflush',['fflush',['../class_stdio_stream.html#a7ce32ec7ea3f2fd8ea42b9633890f1c0',1,'StdioStream']]], - ['fgetc',['fgetc',['../class_stdio_stream.html#a160bd2828cb7e7370cffe1046eff8899',1,'StdioStream']]], - ['fgets',['fgets',['../class_fat_file.html#a31ef26b3ee37cf5f5f4c6024c0ddab69',1,'FatFile::fgets()'],['../class_stdio_stream.html#aa240c1021a1aad1cc57f63a483541dc7',1,'StdioStream::fgets()']]], - ['file',['File',['../class_file.html',1,'File'],['../class_file.html#a9ecb14efb960d1369926182479f56213',1,'File::File()']]], - ['file_5fread',['FILE_READ',['../_arduino_files_8h.html#ad52d51659a75e25d96fb04d22ff718cb',1,'ArduinoFiles.h']]], - ['file_5fwrite',['FILE_WRITE',['../_arduino_files_8h.html#ace34e503254fa9004599ddf122264c8f',1,'ArduinoFiles.h']]], - ['fileattr',['fileAttr',['../class_fat_file.html#a7e043dfb89d268bfd620bbbadacf1002',1,'FatFile']]], - ['filesize',['fileSize',['../structdirectory_entry.html#ac2445d99b50f925f662952e0ccd26a02',1,'directoryEntry::fileSize()'],['../class_fat_file.html#a02fc3b3ca36b4745f695f3de8c8ec36d',1,'FatFile::fileSize()']]], - ['filesystemtype',['fileSystemType',['../structfat__boot.html#aee529e32908406866f3ec3c17c4632fa',1,'fat_boot::fileSystemType()'],['../structfat32__boot.html#a13ee6c63e17d634b6826bfdfa94cbd78',1,'fat32_boot::fileSystemType()']]], - ['fill',['fill',['../classios__base.html#ade5bd46462e075999c3a5c2cff2015f1',1,'ios_base::fill()'],['../classios__base.html#aa5683f9bdf295311bd5a6d3cdc2fedd5',1,'ios_base::fill(char c)']]], - ['firstblock',['firstBlock',['../class_fat_file.html#ac87b753811e540c7b799da56fa89724b',1,'FatFile']]], - ['firstcluster',['firstCluster',['../class_fat_file.html#a1057bc23b92a074539f661e896e79a09',1,'FatFile']]], - ['firstclusterhigh',['firstClusterHigh',['../structdirectory_entry.html#a3b492598b2b05e8425d2a500443613bd',1,'directoryEntry']]], - ['firstclusterlow',['firstClusterLow',['../structdirectory_entry.html#a74bd660417a9c3501eae353326c14bb9',1,'directoryEntry']]], - ['firstsector',['firstSector',['../structpartition_table.html#a02bbdff840c854dc96fa0b6da8589d86',1,'partitionTable']]], - ['flags',['flags',['../structfname__t.html#a39c69edff13165c6e03b308104e7286d',1,'fname_t::flags()'],['../classios__base.html#ab5e9c7dbcbc33b7de9dcb70525ec7384',1,'ios_base::flags() const '],['../classios__base.html#ae67e900dc12e4c7cbc0741ad1c70d6c2',1,'ios_base::flags(fmtflags fl)']]], - ['flush',['flush',['../class_minimum_serial.html#a872f0ff70f0e256352004f83d13fff28',1,'MinimumSerial::flush()'],['../class_print_file.html#a53c4cb94af030fdf83a9160ec9a96949',1,'PrintFile::flush()'],['../class_file.html#af87fa862de707575b8badd044a5af80e',1,'File::flush()'],['../classostream.html#af6be1f30d824f5a65d27d5b5d20b8c6c',1,'ostream::flush()'],['../iostream_8h.html#a2f6f5344fca38fd4fe7b6231fd992a0d',1,'flush(): iostream.h']]], - ['fmtflags',['fmtflags',['../classios__base.html#ac9a54e52cef4f01ac0afd8ae896a3413',1,'ios_base']]], - ['fname_5fflag_5flc_5fbase',['FNAME_FLAG_LC_BASE',['../_fat_file_8h.html#a79e43960e1b4eecf274f5faea9c3168c',1,'FatFile.h']]], - ['fname_5fflag_5flc_5fext',['FNAME_FLAG_LC_EXT',['../_fat_file_8h.html#a135b7572768b09661aa38afaceec7296',1,'FatFile.h']]], - ['fname_5fflag_5flost_5fchars',['FNAME_FLAG_LOST_CHARS',['../_fat_file_8h.html#acd45286b7dfc5ba68be18c8c3a9d298d',1,'FatFile.h']]], - ['fname_5fflag_5fmixed_5fcase',['FNAME_FLAG_MIXED_CASE',['../_fat_file_8h.html#a63994c21f3b723a55247f063a1b01c9c',1,'FatFile.h']]], - ['fname_5fflag_5fneed_5flfn',['FNAME_FLAG_NEED_LFN',['../_fat_file_8h.html#a1a041207a19d2fd9a1e2739343ccb29b',1,'FatFile.h']]], - ['fname_5ft',['fname_t',['../structfname__t.html',1,'']]], - ['fopen',['fopen',['../class_stdio_stream.html#a4ffc37225fb6deed98905aa71d1f9c4b',1,'StdioStream']]], - ['fputc',['fputc',['../class_stdio_stream.html#a9f23cfa6b112a5da6ae08340af23c57b',1,'StdioStream']]], - ['fputs',['fputs',['../class_stdio_stream.html#a6adea52f55ef7d97cdb54e9e11fc2daa',1,'StdioStream']]], - ['fread',['fread',['../class_stdio_stream.html#a2d363b02abcef82b25ff025d50375bce',1,'StdioStream']]], - ['freeclustercount',['freeClusterCount',['../class_fat_volume.html#a1683b063fc6202ab85470b9610f16f93',1,'FatVolume']]], - ['freecount',['freeCount',['../structfat32__fsinfo.html#a6c2d84388c0a38a74f7682fd602492c7',1,'fat32_fsinfo']]], - ['freestack',['FreeStack',['../_free_stack_8h.html#a2c0121d5649d35329a8d0a71e4ffb89b',1,'FreeStack.h']]], - ['freestack_2eh',['FreeStack.h',['../_free_stack_8h.html',1,'']]], - ['fsbegin',['fsBegin',['../class_sd_fat.html#add6a9a3ad07585f6e0e5c35e35cacb9a',1,'SdFat::fsBegin()'],['../class_sd_fat_sdio.html#aac0e8d86182a0e0566c4671c15f3df61',1,'SdFatSdio::fsBegin()']]], - ['fseek',['fseek',['../class_stdio_stream.html#a71584fd5c5cda3c31ce6cdbcc56f104d',1,'StdioStream']]], - ['fsinfo',['fsinfo',['../unioncache__t.html#a46c7b14586a6248824a97101111cbae1',1,'cache_t']]], - ['fsinfo_5flead_5fsig',['FSINFO_LEAD_SIG',['../_fat_structs_8h.html#a7a7a74a7315ad523e3b0c9dbd44d9a32',1,'FatStructs.h']]], - ['fsinfo_5fstruct_5fsig',['FSINFO_STRUCT_SIG',['../_fat_structs_8h.html#a9bf6b77df7bec6c49d81562c54371e81',1,'FatStructs.h']]], - ['fstream',['fstream',['../classfstream.html',1,'fstream'],['../classfstream.html#aed23877c52f828cab8de7a23603b3b6c',1,'fstream::fstream()']]], - ['fstream_2eh',['fstream.h',['../fstream_8h.html',1,'']]], - ['ftell',['ftell',['../class_stdio_stream.html#a809639fc5fb4fa5b6789dc121659f386',1,'StdioStream']]], - ['fwrite',['fwrite',['../class_stdio_stream.html#ad79465afb52579cbc801f4585c3f9c25',1,'StdioStream']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_7.html b/libraries/SdFat/extras/html/search/all_7.html deleted file mode 100644 index 38c6c00..0000000 --- a/libraries/SdFat/extras/html/search/all_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_7.js b/libraries/SdFat/extras/html/search/all_7.js deleted file mode 100644 index 6f50794..0000000 --- a/libraries/SdFat/extras/html/search/all_7.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['gcount',['gcount',['../classistream.html#ad2b705d2f363ed59db6ac4046f78b4bb',1,'istream']]], - ['get',['get',['../classistream.html#a36573c9b7fc522e6c85a73221019fd11',1,'istream::get()'],['../classistream.html#a9c7313d6f21f1f7ac9b0e759e74b4db2',1,'istream::get(char &ch)'],['../classistream.html#a4247f47e388598c69ef3bd39ea4c056f',1,'istream::get(char *str, streamsize n, char delim= '\n')']]], - ['getc',['getc',['../class_stdio_stream.html#a28ba31e7b526607744bfa41844ffce31',1,'StdioStream']]], - ['geterror',['getError',['../class_fat_file.html#ad0dbbd083180f44c7a3ce7124d4ce19c',1,'FatFile']]], - ['getline',['getline',['../classistream.html#a7d86035d178e526283e5c7555ab7b243',1,'istream']]], - ['getname',['getName',['../class_fat_file.html#aafa565e286440aab612cdb430fc01da5',1,'FatFile']]], - ['getpos',['getpos',['../class_fat_file.html#aaa4f9886887947815a61eaf015996932',1,'FatFile']]], - ['getsfn',['getSFN',['../class_fat_file.html#aba30e92a66f8e0d2f815c85662772a58',1,'FatFile']]], - ['getwriteerror',['getWriteError',['../class_fat_file.html#a8062c0d3a118e8d77d0310418703d5f5',1,'FatFile']]], - ['good',['good',['../classios.html#a5fdf9247f642a7a5c5a21323ffd45366',1,'ios']]], - ['goodbit',['goodbit',['../classios__base.html#a07a00996a6e525b88bdfe7935d5ead05',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_8.html b/libraries/SdFat/extras/html/search/all_8.html deleted file mode 100644 index 2a22cd5..0000000 --- a/libraries/SdFat/extras/html/search/all_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_8.js b/libraries/SdFat/extras/html/search/all_8.js deleted file mode 100644 index 035f01b..0000000 --- a/libraries/SdFat/extras/html/search/all_8.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['halt',['halt',['../class_sys_call.html#a9b1ef8900e97f572ca561760b4dd4191',1,'SysCall']]], - ['headcount',['headCount',['../structbios_parm_block.html#a2324ca82e2a7da4d91f458fa32a6e239',1,'biosParmBlock::headCount()'],['../structfat__boot.html#ae31da876cd9f48de5268a129218df2c2',1,'fat_boot::headCount()'],['../structfat32__boot.html#a1a5298db692526bc64243766d6b54181',1,'fat32_boot::headCount()']]], - ['hex',['hex',['../classios__base.html#a3608e51eb0a80ea94ddadd5b713a3750',1,'ios_base::hex()'],['../ios_8h.html#ace2036d970905192360d622140bfe336',1,'hex(): ios.h']]], - ['hidddensectors',['hidddenSectors',['../structbios_parm_block.html#a9413199be8525190d40589f60c22bcab',1,'biosParmBlock::hidddenSectors()'],['../structfat__boot.html#a18f1b4c245fe7bd09f5a9430c005e23a',1,'fat_boot::hidddenSectors()'],['../structfat32__boot.html#ab10224aa4bba42b262fcd3479e279e1f',1,'fat32_boot::hidddenSectors()']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_9.html b/libraries/SdFat/extras/html/search/all_9.html deleted file mode 100644 index bd9b05c..0000000 --- a/libraries/SdFat/extras/html/search/all_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_9.js b/libraries/SdFat/extras/html/search/all_9.js deleted file mode 100644 index 1bd0687..0000000 --- a/libraries/SdFat/extras/html/search/all_9.js +++ /dev/null @@ -1,36 +0,0 @@ -var searchData= -[ - ['ibufstream',['ibufstream',['../classibufstream.html',1,'ibufstream'],['../classibufstream.html#afe28f27d24a62a21428b60fe8834dd05',1,'ibufstream::ibufstream()'],['../classibufstream.html#a819561105ef7dc3828e0cfedfed708d8',1,'ibufstream::ibufstream(const char *str)']]], - ['ifstream',['ifstream',['../classifstream.html',1,'ifstream'],['../classifstream.html#a11f4bfaa5c37cfcf8878c367fd861a88',1,'ifstream::ifstream()']]], - ['ignore',['ignore',['../classistream.html#a12597b03d86b66047a5581bbd26eb032',1,'istream']]], - ['implement_5fspi_5fport_5fselection',['IMPLEMENT_SPI_PORT_SELECTION',['../_sd_fat_config_8h.html#aa13678c06fd801cb8f00b497a517d91e',1,'SdFatConfig.h']]], - ['in',['in',['../classios__base.html#ae5432e3c269064480652c4602f5f74ad',1,'ios_base']]], - ['init',['init',['../classibufstream.html#a1d7bae17d9d2c79218085251946f322a',1,'ibufstream::init()'],['../classobufstream.html#a8f75dbadab2fed7770d01a2cc2628258',1,'obufstream::init()'],['../class_fat_cache.html#ae1d8a2da1493b5ffca0520184daaddf1',1,'FatCache::init()'],['../class_fat_volume.html#acab819fa25a91dad1cc698a7e1e0eb32',1,'FatVolume::init()'],['../class_fat_volume.html#a034d997a1e7a0b2b664a4357bcccd256',1,'FatVolume::init(uint8_t part)']]], - ['initerrorhalt',['initErrorHalt',['../class_sd_file_system.html#a8e1f26486bb878a24fa9868e59dbbbc2',1,'SdFileSystem::initErrorHalt()'],['../class_sd_file_system.html#a24bd0f699cf0fe11fd2148b15c49251a',1,'SdFileSystem::initErrorHalt(Print *pr)'],['../class_sd_file_system.html#a893833a880e2a83757480ba4c1351041',1,'SdFileSystem::initErrorHalt(char const *msg)'],['../class_sd_file_system.html#a3077b1a53d789d0401b707963cb28f46',1,'SdFileSystem::initErrorHalt(Print *pr, char const *msg)'],['../class_sd_file_system.html#a2a1e4cc8056ba23b55dfa2c6486b8798',1,'SdFileSystem::initErrorHalt(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#ab03d98012dea18733c3252f27832de69',1,'SdFileSystem::initErrorHalt(Print *pr, const __FlashStringHelper *msg)']]], - ['initerrorprint',['initErrorPrint',['../class_sd_file_system.html#ae31c9cbd7e1c03129d6c99b25f73cd50',1,'SdFileSystem::initErrorPrint()'],['../class_sd_file_system.html#a066707dce0667213b5f083d59f67448d',1,'SdFileSystem::initErrorPrint(Print *pr)'],['../class_sd_file_system.html#a538796f79fd9db9c5bbeefd9defe639a',1,'SdFileSystem::initErrorPrint(char const *msg)'],['../class_sd_file_system.html#ad9855d33ebd465715b706d0926291b13',1,'SdFileSystem::initErrorPrint(Print *pr, char const *msg)'],['../class_sd_file_system.html#ad6ffec5a7d82be46d46b8a4f82d0803b',1,'SdFileSystem::initErrorPrint(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a8a2018b6366145a9843d3d29a47d6560',1,'SdFileSystem::initErrorPrint(Print *pr, const __FlashStringHelper *msg)']]], - ['internal',['internal',['../classios__base.html#afc720b7f6f461ec8e9cf5505059e5d7c',1,'ios_base::internal()'],['../ios_8h.html#a8dd76c1ce8fced364a98428ca1eea7a6',1,'internal(): ios.h']]], - ['invalidate',['invalidate',['../class_fat_cache.html#a70071a128d647b49b523dbb2f5f944a5',1,'FatCache']]], - ['ios',['ios',['../classios.html',1,'ios'],['../classios.html#adc5dbd7b69da79493ebc84aa1e681aaa',1,'ios::ios()']]], - ['ios_2eh',['ios.h',['../ios_8h.html',1,'']]], - ['ios_5fbase',['ios_base',['../classios__base.html',1,'']]], - ['iostate',['iostate',['../classios__base.html#aef19291eeae0f072ac42c6ba1fe3033c',1,'ios_base']]], - ['iostream',['iostream',['../classiostream.html',1,'']]], - ['iostream_2eh',['iostream.h',['../iostream_8h.html',1,'']]], - ['is_5fopen',['is_open',['../classfstream.html#ae4a71c6f3da2f168ec222739d796fc8b',1,'fstream::is_open()'],['../classifstream.html#aaa16c6422ea371995d02159f2e6707b2',1,'ifstream::is_open()'],['../classofstream.html#a9c97eb2eb6e35ae87cf7f7453a67e70a',1,'ofstream::is_open()']]], - ['isbusy',['isBusy',['../class_sd_spi_card.html#aa3cb9139dbc1e6596c6717da2b486328',1,'SdSpiCard']]], - ['isdir',['isDir',['../class_fat_file.html#aef41d65e0f1ce753d18cc9ed691f7de4',1,'FatFile']]], - ['isdirectory',['isDirectory',['../class_file.html#a6ba5bdb943363cda56649238ccb18c27',1,'File']]], - ['isdirseparator',['isDirSeparator',['../_fat_file_8h.html#a9f85580ad6f1dfc86fff09a58ff0a1c0',1,'FatFile.h']]], - ['isfile',['isFile',['../class_fat_file.html#afcf6270ea8d4a3a5f8e89523bc684e22',1,'FatFile']]], - ['ishidden',['isHidden',['../class_fat_file.html#a7eefe7408f34b6326f0c6e78af7eb05f',1,'FatFile']]], - ['islfn',['isLFN',['../class_fat_file.html#aed36d17f8fde597b6ed9446faec1f7e3',1,'FatFile']]], - ['isopen',['isOpen',['../class_fat_file.html#a4c8a07b081f04aa25839c6f56c739bdc',1,'FatFile']]], - ['isreadonly',['isReadOnly',['../class_fat_file.html#a6872d3acb1e70f81c9c2be2495977583',1,'FatFile']]], - ['isroot',['isRoot',['../class_fat_file.html#aa4a206803a4bf8243be20244c1aef4d2',1,'FatFile']]], - ['isroot32',['isRoot32',['../class_fat_file.html#a1449b294e3a838396c62e47674ca8cf0',1,'FatFile']]], - ['isrootfixed',['isRootFixed',['../class_fat_file.html#a8215bd4b21e11ec83fa88ef226ceb06f',1,'FatFile']]], - ['issubdir',['isSubDir',['../class_fat_file.html#a95b503b17442c2b364a2f53de1b2aeba',1,'FatFile']]], - ['issystem',['isSystem',['../class_fat_file.html#add932e13e5bf32ad467af6ec34824e3c',1,'FatFile']]], - ['istream',['istream',['../classistream.html',1,'']]], - ['istream_2eh',['istream.h',['../istream_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_a.html b/libraries/SdFat/extras/html/search/all_a.html deleted file mode 100644 index 4a25af1..0000000 --- a/libraries/SdFat/extras/html/search/all_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_a.js b/libraries/SdFat/extras/html/search/all_a.js deleted file mode 100644 index e043c52..0000000 --- a/libraries/SdFat/extras/html/search/all_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['jump',['jump',['../structfat__boot.html#a83f9f2d1d0130f25f34c90dfc82e3751',1,'fat_boot::jump()'],['../structfat32__boot.html#a2d93fc193a64ecffbd71ead207fe4810',1,'fat32_boot::jump()']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_b.html b/libraries/SdFat/extras/html/search/all_b.html deleted file mode 100644 index a92de48..0000000 --- a/libraries/SdFat/extras/html/search/all_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_b.js b/libraries/SdFat/extras/html/search/all_b.js deleted file mode 100644 index aaf99c9..0000000 --- a/libraries/SdFat/extras/html/search/all_b.js +++ /dev/null @@ -1,20 +0,0 @@ -var searchData= -[ - ['lastaccessdate',['lastAccessDate',['../structdirectory_entry.html#abca70dc5c5fcbe199fd78df010111331',1,'directoryEntry']]], - ['lastwritedate',['lastWriteDate',['../structdirectory_entry.html#a12b2e7cf87482a942a0b5d3df6c51468',1,'directoryEntry']]], - ['lastwritetime',['lastWriteTime',['../structdirectory_entry.html#a7bab435322d1928f66fbce53ee1f402d',1,'directoryEntry']]], - ['lbn',['lbn',['../class_fat_cache.html#a9f981b53e212f79937e5f6381b169374',1,'FatCache']]], - ['ldir_5fname1_5fdim',['LDIR_NAME1_DIM',['../_fat_structs_8h.html#af843af29c67dd30ca7c5684806bf02fc',1,'FatStructs.h']]], - ['ldir_5fname2_5fdim',['LDIR_NAME2_DIM',['../_fat_structs_8h.html#a99cae591c59e261f54617617e173e7e0',1,'FatStructs.h']]], - ['ldir_5fname3_5fdim',['LDIR_NAME3_DIM',['../_fat_structs_8h.html#a99fbd27fa9e5003a8d77ca7fc14d2090',1,'FatStructs.h']]], - ['ldir_5ford_5flast_5flong_5fentry',['LDIR_ORD_LAST_LONG_ENTRY',['../_fat_structs_8h.html#a8cfb60b9eaf04dcdc6e4f5a466af5540',1,'FatStructs.h']]], - ['ldir_5ft',['ldir_t',['../_fat_structs_8h.html#aa1b540ee1eedd1aa9b267d11cba0d9e2',1,'FatStructs.h']]], - ['leadsignature',['leadSignature',['../structfat32__fsinfo.html#aa8ee056cc1beb1355e15610c1beba5e3',1,'fat32_fsinfo']]], - ['left',['left',['../classios__base.html#ad364df9af2cfde1f40bd8e10c62bb215',1,'ios_base::left()'],['../ios_8h.html#a24a80a73f0a0d2d72d1cb74f49ff4759',1,'left(): ios.h']]], - ['legal83char',['legal83Char',['../class_fat_file.html#a94df8090f16e9666cdc53ca20f6aff90',1,'FatFile']]], - ['len',['len',['../structfname__t.html#a471184cc4c2671526d7d6fb80b2fe20c',1,'fname_t']]], - ['length',['length',['../classobufstream.html#ac650708e968b0c0545a3badeb809cf15',1,'obufstream']]], - ['lfn',['lfn',['../structfname__t.html#a76ffd7abd5b7d3acf90b329c905770fd',1,'fname_t']]], - ['longdirectoryentry',['longDirectoryEntry',['../structlong_directory_entry.html',1,'']]], - ['ls',['ls',['../class_fat_file.html#ad49f688a494b351ccbb0102dcfafb925',1,'FatFile::ls(uint8_t flags=0)'],['../class_fat_file.html#acabf31ff85e696fbf384c49428012fea',1,'FatFile::ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)'],['../class_fat_file_system.html#a2398fb37a7a9d5e0dc0ffde6a44a993d',1,'FatFileSystem::ls(uint8_t flags=0)'],['../class_fat_file_system.html#a122b61dbec5051304bcc81bc08b1b99d',1,'FatFileSystem::ls(const char *path, uint8_t flags=0)'],['../class_fat_file_system.html#ae12fb8bfad5c4a8e052dda70a5a0ed93',1,'FatFileSystem::ls(print_t *pr, uint8_t flags=0)'],['../class_fat_file_system.html#aa79695db8e910300507210b3067d39fd',1,'FatFileSystem::ls(print_t *pr, const char *path, uint8_t flags)']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_c.html b/libraries/SdFat/extras/html/search/all_c.html deleted file mode 100644 index 20cdfbc..0000000 --- a/libraries/SdFat/extras/html/search/all_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_c.js b/libraries/SdFat/extras/html/search/all_c.js deleted file mode 100644 index 30a4bf7..0000000 --- a/libraries/SdFat/extras/html/search/all_c.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['maintain_5ffree_5fcluster_5fcount',['MAINTAIN_FREE_CLUSTER_COUNT',['../_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): FatLibConfig.h']]], - ['masterbootrecord',['masterBootRecord',['../structmaster_boot_record.html',1,'']]], - ['mbr',['mbr',['../unioncache__t.html#a6ac10bfb1ebb1139c448456679663bb6',1,'cache_t']]], - ['mbr_5ft',['mbr_t',['../_fat_structs_8h.html#a7c429e5097f101c8c97663d6c4155bd9',1,'FatStructs.h']]], - ['mbrsig0',['mbrSig0',['../structmaster_boot_record.html#a42b0b413ecb21ac5314d4f6bca05308f',1,'masterBootRecord']]], - ['mbrsig1',['mbrSig1',['../structmaster_boot_record.html#aafbbcb4f6a2d1181c6458d4c9603df4f',1,'masterBootRecord']]], - ['mediatype',['mediaType',['../structbios_parm_block.html#a4237e7c3ba247516d546c149954e5042',1,'biosParmBlock::mediaType()'],['../structfat__boot.html#a63eaf7185663369af2527309634d3c90',1,'fat_boot::mediaType()'],['../structfat32__boot.html#a3b1ab5d2dc872c0d80cd4f34622de417',1,'fat32_boot::mediaType()']]], - ['minimumserial',['MinimumSerial',['../class_minimum_serial.html',1,'']]], - ['minimumserial_2eh',['MinimumSerial.h',['../_minimum_serial_8h.html',1,'']]], - ['mkdir',['mkdir',['../class_fat_file.html#abab5b9f72cc796388dd4eed01d13d90d',1,'FatFile::mkdir()'],['../class_fat_file_system.html#a231c62c98ba8ac3c2624dc5ad2053ebf',1,'FatFileSystem::mkdir()']]], - ['mustbezero',['mustBeZero',['../structlong_directory_entry.html#af3055930e869875e49b32ef0b49c3649',1,'longDirectoryEntry']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_d.html b/libraries/SdFat/extras/html/search/all_d.html deleted file mode 100644 index 00b28ed..0000000 --- a/libraries/SdFat/extras/html/search/all_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_d.js b/libraries/SdFat/extras/html/search/all_d.js deleted file mode 100644 index 8b100cc..0000000 --- a/libraries/SdFat/extras/html/search/all_d.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['name',['name',['../structdirectory_entry.html#a05dc993ea55a1a742de5970541a31ecb',1,'directoryEntry::name()'],['../class_file.html#a7ca23d8d3997c10c221977c64736f575',1,'File::name()']]], - ['name1',['name1',['../structlong_directory_entry.html#a629f1ca5ba2ccce6cac5295578b6e7b4',1,'longDirectoryEntry']]], - ['name2',['name2',['../structlong_directory_entry.html#ad763b5a3da4b8d326d9888493fbb819a',1,'longDirectoryEntry']]], - ['name3',['name3',['../structlong_directory_entry.html#a6f14c81b7d224dc4431217f92601257a',1,'longDirectoryEntry']]], - ['nextfree',['nextFree',['../structfat32__fsinfo.html#a539b3bb0a2ead9df417df9ac8b6b1606',1,'fat32_fsinfo']]], - ['noboolalpha',['noboolalpha',['../ios_8h.html#aa6a1ec04992fc8090ca775a39678be01',1,'ios.h']]], - ['noshowbase',['noshowbase',['../ios_8h.html#ab861ff5f863de0ae002b65390dde36b0',1,'ios.h']]], - ['noshowpoint',['noshowpoint',['../ios_8h.html#ad85399d1b75151cf9e2436f2a1ccfc13',1,'ios.h']]], - ['noshowpos',['noshowpos',['../ios_8h.html#a985805b22ffb4ce2f5298168662bd2d7',1,'ios.h']]], - ['noskipws',['noskipws',['../ios_8h.html#a773b847300db776fde08a0b562792131',1,'ios.h']]], - ['nouppercase',['nouppercase',['../ios_8h.html#a24b96fb317e056b34aa84c4bb965a79a',1,'ios.h']]], - ['null',['NULL',['../_stdio_stream_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4',1,'StdioStream.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_e.html b/libraries/SdFat/extras/html/search/all_e.html deleted file mode 100644 index 07d5259..0000000 --- a/libraries/SdFat/extras/html/search/all_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_e.js b/libraries/SdFat/extras/html/search/all_e.js deleted file mode 100644 index 18ca515..0000000 --- a/libraries/SdFat/extras/html/search/all_e.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['obufstream',['obufstream',['../classobufstream.html',1,'obufstream'],['../classobufstream.html#a74f7dbcf1131b77d3665aa85d6629722',1,'obufstream::obufstream()'],['../classobufstream.html#a7af0555c5c08ebf9cbc70fc5e2f67db7',1,'obufstream::obufstream(char *buf, size_t size)']]], - ['oct',['oct',['../classios__base.html#a4155540f8d3ffdb8d25a2f50ee4df08f',1,'ios_base::oct()'],['../ios_8h.html#ae661b435df22f8e8e643817f4f915123',1,'oct(): ios.h']]], - ['oemid',['oemId',['../structfat__boot.html#adc034212201e879fea1eb44db43e55a5',1,'fat_boot::oemId()'],['../structfat32__boot.html#af623a473a960ea20904dce0edfb6bb9d',1,'fat32_boot::oemId()']]], - ['off_5ftype',['off_type',['../classios__base.html#a45de7cca0d01da781f4b886179c65c22',1,'ios_base']]], - ['ofstream',['ofstream',['../classofstream.html',1,'ofstream'],['../classofstream.html#ae8a8145adf2cfe1f948ad482ed504b75',1,'ofstream::ofstream()']]], - ['open',['open',['../class_fat_file.html#a5f64576d3d19177ab3cf3812b69abdfa',1,'FatFile::open(FatFileSystem *fs, const char *path, uint8_t oflag)'],['../class_fat_file.html#ad3fa9daaccb4e4179fb88a8ca037aa80',1,'FatFile::open(FatFile *dirFile, uint16_t index, uint8_t oflag)'],['../class_fat_file.html#a211be757679b18708f6b6a36464e4f61',1,'FatFile::open(FatFile *dirFile, const char *path, uint8_t oflag)'],['../class_fat_file.html#ab0e7075062c89f356441f80fc64d03e6',1,'FatFile::open(const char *path, uint8_t oflag=O_READ)'],['../class_fat_file_system.html#a947e4586077a922892b632edac33b67a',1,'FatFileSystem::open(const char *path, uint8_t mode=FILE_READ)'],['../class_fat_file_system.html#a0abfb1f754a8fb559cfa884ee040f56f',1,'FatFileSystem::open(const String &path, uint8_t mode=FILE_READ)'],['../classfstream.html#a85b24d94552991f33caf4c3a83420879',1,'fstream::open()'],['../classifstream.html#a169694d6535fd551fd6db48a2867590e',1,'ifstream::open()'],['../classofstream.html#a4b9d30c742fbe01baa336406c7afdcb2',1,'ofstream::open()']]], - ['openmode',['openmode',['../classios__base.html#aaa192ec0dccc43050715553a34644523',1,'ios_base']]], - ['opennext',['openNext',['../class_fat_file.html#a8034c4649eb0d26715b1a8a69e73d9d0',1,'FatFile']]], - ['opennextfile',['openNextFile',['../class_file.html#acd72000ab1f6a1ce73ac8fbdc854ae0c',1,'File']]], - ['openroot',['openRoot',['../class_fat_file.html#a7e0c0548fed3a69e7284b91b694439d4',1,'FatFile']]], - ['operator_20bool',['operator bool',['../class_minimum_serial.html#a73a1a2a92604ecb8507afde0022aedd8',1,'MinimumSerial::operator bool()'],['../class_file.html#af171fbf441c899cf71d88b8b0b83d38b',1,'File::operator bool()']]], - ['operator_20const_20void_20_2a',['operator const void *',['../classios.html#a8c2e7e42e31d3d7898a51c0bc837b2a3',1,'ios']]], - ['operator_21',['operator!',['../classios.html#a1ae2d4f1ccdfcaaef6a3a8ac9e28c267',1,'ios']]], - ['operator_3c_3c',['operator<<',['../classostream.html#a4dfc0cdb38bced959ba7cf963db38c30',1,'ostream::operator<<(ostream &(*pf)(ostream &str))'],['../classostream.html#af52c607ea168aff1025222c62cad392f',1,'ostream::operator<<(ios_base &(*pf)(ios_base &str))'],['../classostream.html#a63e3999be154253cf92a45c22e548f51',1,'ostream::operator<<(bool arg)'],['../classostream.html#a618b5d6861dde2347847102b89e0ccfa',1,'ostream::operator<<(const char *arg)'],['../classostream.html#aebe24ff723b806cbee19deb2165d0a5b',1,'ostream::operator<<(const signed char *arg)'],['../classostream.html#ac0cf68ffa4706994f47acb1fa37c601a',1,'ostream::operator<<(const unsigned char *arg)'],['../classostream.html#a1d1e11d2fadaf4c9e34194a1f28572e4',1,'ostream::operator<<(char arg)'],['../classostream.html#ad06f8c6c47667e9c7b14620882c09434',1,'ostream::operator<<(signed char arg)'],['../classostream.html#a69912ec4a8536f289b716e95953d09d7',1,'ostream::operator<<(unsigned char arg)'],['../classostream.html#a8065697d56d5e5d1a0ca50c1916b4955',1,'ostream::operator<<(double arg)'],['../classostream.html#a6c68e418e19d9dcdfe6b1790b2621666',1,'ostream::operator<<(float arg)'],['../classostream.html#a227c47e2b631f29d8873b00290bb4872',1,'ostream::operator<<(short arg)'],['../classostream.html#ace10a3a767dc55faff2cec71cd0a89b1',1,'ostream::operator<<(unsigned short arg)'],['../classostream.html#a62488f7ce7822c777ea27d15223b8e5f',1,'ostream::operator<<(int arg)'],['../classostream.html#ad31df6cd88c7248c01808e40889a7907',1,'ostream::operator<<(unsigned int arg)'],['../classostream.html#a15db9977ed82e503bd3cd1f585acf9e6',1,'ostream::operator<<(long arg)'],['../classostream.html#aaedd44fefa48cf3f0967fcd699a2909d',1,'ostream::operator<<(unsigned long arg)'],['../classostream.html#a2a8febd7c07f078120dd69bb71f25a94',1,'ostream::operator<<(const void *arg)'],['../classostream.html#a99ee8d9265d9354f197d02a3d17116be',1,'ostream::operator<<(const __FlashStringHelper *arg)'],['../iostream_8h.html#aa125ac928f3377cbc6e3cf288b9378fd',1,'operator<<(ostream &os, const setfill &arg): iostream.h'],['../iostream_8h.html#a23d4c29ef8ae37ec7d972d0b66187652',1,'operator<<(ostream &os, const setprecision &arg): iostream.h'],['../iostream_8h.html#a331649f2fdb01ed069dc18a5fad781b1',1,'operator<<(ostream &os, const setw &arg): iostream.h']]], - ['operator_3e_3e',['operator>>',['../classistream.html#aa67d3b8ac67e2097d876a66657ec6067',1,'istream::operator>>(istream &(*pf)(istream &str))'],['../classistream.html#ac6e2f17c80edd19deecdc20f804c424e',1,'istream::operator>>(ios_base &(*pf)(ios_base &str))'],['../classistream.html#a5a0a2c0e06abadb79951ebe34f36d62a',1,'istream::operator>>(ios &(*pf)(ios &str))'],['../classistream.html#a99db66d2e192f02deff0171ad098271f',1,'istream::operator>>(char *str)'],['../classistream.html#addaf5e0f39a15cc213117165dfef0d77',1,'istream::operator>>(char &ch)'],['../classistream.html#a390af4d28adbdc537e436f2121d1c862',1,'istream::operator>>(signed char *str)'],['../classistream.html#a49ab1a573fbf69809d19a52855a30072',1,'istream::operator>>(signed char &ch)'],['../classistream.html#a52e85d01198968330f20026a52cb9f72',1,'istream::operator>>(unsigned char *str)'],['../classistream.html#a74875fcf9ccdc0dca4b46a0b66821798',1,'istream::operator>>(unsigned char &ch)'],['../classistream.html#a3708636d095d360695e9c23335639317',1,'istream::operator>>(bool &arg)'],['../classistream.html#a662060e885a0551c390b7042b3b9e4a5',1,'istream::operator>>(short &arg)'],['../classistream.html#a31a706a374c5a594e400734b8992e2a0',1,'istream::operator>>(unsigned short &arg)'],['../classistream.html#ae8451bc86d83828892d9d67c67b7f02b',1,'istream::operator>>(int &arg)'],['../classistream.html#a35c9847ebf7b822c5ec9742e9de19345',1,'istream::operator>>(unsigned int &arg)'],['../classistream.html#aa26e7f35e74d96803bb0dfb3fb0dc154',1,'istream::operator>>(long &arg)'],['../classistream.html#a5aafa4c7f6615a7f1441962b61b8ef59',1,'istream::operator>>(unsigned long &arg)'],['../classistream.html#af9bf453725ce1d9ef62142a7ee38936e',1,'istream::operator>>(double &arg)'],['../classistream.html#aa8efce6fecab80cf7a17d5dfa31f5aa8',1,'istream::operator>>(float &arg)'],['../classistream.html#a62ef4762feacc64a8acdcbf8f1296936',1,'istream::operator>>(void *&arg)'],['../iostream_8h.html#a4a4079de901e0f3f10c743115bd345b2',1,'operator>>(istream &obj, const setfill &arg): iostream.h'],['../iostream_8h.html#a2f819cd0ccda31a8b648f20534469308',1,'operator>>(istream &is, const setprecision &arg): iostream.h'],['../iostream_8h.html#a8d1b3da6f1074322a6e9e11ff4ce8c33',1,'operator>>(istream &is, const setw &arg): iostream.h']]], - ['ord',['ord',['../structlong_directory_entry.html#a1b65e85dd63d0708cd1b875ce4e5e338',1,'longDirectoryEntry']]], - ['ostream',['ostream',['../classostream.html',1,'']]], - ['ostream_2eh',['ostream.h',['../ostream_8h.html',1,'']]], - ['out',['out',['../classios__base.html#a4c1d517774c0d11af3424e90395f26ae',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/all_f.html b/libraries/SdFat/extras/html/search/all_f.html deleted file mode 100644 index 2213eb2..0000000 --- a/libraries/SdFat/extras/html/search/all_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/all_f.js b/libraries/SdFat/extras/html/search/all_f.js deleted file mode 100644 index 6392abf..0000000 --- a/libraries/SdFat/extras/html/search/all_f.js +++ /dev/null @@ -1,33 +0,0 @@ -var searchData= -[ - ['p',['p',['../structsetprecision.html#a7cb7bb355a303fa39a8035615bde9348',1,'setprecision']]], - ['part',['part',['../structmaster_boot_record.html#aa4e294e50f311635c10c92f4c99227c5',1,'masterBootRecord']]], - ['part_5ft',['part_t',['../_fat_structs_8h.html#a37251e7d5c69a159be727a3fc8c9d0e6',1,'FatStructs.h']]], - ['partitiontable',['partitionTable',['../structpartition_table.html',1,'']]], - ['peek',['peek',['../class_print_file.html#a3a2a66f4a0cb69ab4edc66d39997fda7',1,'PrintFile::peek()'],['../class_file.html#a0e5025f39bd584563bfe4b05fc1db268',1,'File::peek()'],['../class_fat_file.html#ac05b7136b887539426856c623869aa3a',1,'FatFile::peek()'],['../classistream.html#a4022265e0ede3698454f1ff59348c14a',1,'istream::peek()']]], - ['pgm_5fread_5fbyte',['pgm_read_byte',['../_fat_file_8h.html#a48c60b057902adf805797f183286728d',1,'FatFile.h']]], - ['pgm_5fread_5fword',['pgm_read_word',['../_fat_file_8h.html#a910fb5f01313d339d3b835d45e1e5ad0',1,'FatFile.h']]], - ['pos_5ftype',['pos_type',['../classios__base.html#abe85cf1f181b8bce8022f05ab76aae7f',1,'ios_base']]], - ['position',['position',['../struct_fat_pos__t.html#a8e14c6f2705777502b543452743eaa26',1,'FatPos_t::position()'],['../class_file.html#aae991c597c0bc4c5eb44c1f3b06a21ec',1,'File::position()']]], - ['precision',['precision',['../classios__base.html#a9d36cb5a859b74e04f640d2f5e53b41d',1,'ios_base::precision() const '],['../classios__base.html#a5b70cc65fc2c276136fea99bddedb6f0',1,'ios_base::precision(unsigned int n)']]], - ['print',['print',['../class_stdio_stream.html#ad3f6ee8e8ca5dcf6dabfd88199b172e2',1,'StdioStream::print(char c)'],['../class_stdio_stream.html#a1158ea5f9bf041f21b1733b7811c9bb9',1,'StdioStream::print(const char *str)'],['../class_stdio_stream.html#aac4d7b3548d03b8fd70adf12c7ee315c',1,'StdioStream::print(const __FlashStringHelper *str)'],['../class_stdio_stream.html#a26f5b98560b6771225005b073166108b',1,'StdioStream::print(double val, uint8_t prec=2)'],['../class_stdio_stream.html#a06b6eb9f0a7000fdcc73cd6af8d40560',1,'StdioStream::print(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a7129f85c7c5f16867f467731ef84dee9',1,'StdioStream::print(T val)']]], - ['print_5ft',['print_t',['../_fat_volume_8h.html#ac62f6449331cfe1a71f29be30efe7890',1,'FatVolume.h']]], - ['printcreatedatetime',['printCreateDateTime',['../class_fat_file.html#a558530f20314a8d8ee3d1a488fc7f46e',1,'FatFile']]], - ['printdec',['printDec',['../class_stdio_stream.html#ac0a907feb1e4b7e00de99857b4c0a470',1,'StdioStream::printDec(char n)'],['../class_stdio_stream.html#a2707ea97f6113c226781469f4f39ff62',1,'StdioStream::printDec(signed char n)'],['../class_stdio_stream.html#a6e6ac78caa6259a4c4934707bf497a2b',1,'StdioStream::printDec(unsigned char n)'],['../class_stdio_stream.html#a218af88db35f38babf01d6e0a9cdceeb',1,'StdioStream::printDec(int16_t n)'],['../class_stdio_stream.html#a90b2999af94a3578fff7579c2acf8e35',1,'StdioStream::printDec(uint16_t n)'],['../class_stdio_stream.html#ad4591f1234b57f63c1acf0f3392099ac',1,'StdioStream::printDec(int32_t n)'],['../class_stdio_stream.html#a8b6c2c80342abe45e6f564e9bd5bb7ea',1,'StdioStream::printDec(uint32_t n)'],['../class_stdio_stream.html#aaa8921947d4dbbae840d285cb633e8aa',1,'StdioStream::printDec(double value, uint8_t prec)'],['../class_stdio_stream.html#a6a09284b1c6d0769c27916a2e131e749',1,'StdioStream::printDec(float value, uint8_t prec)']]], - ['printfatdate',['printFatDate',['../class_fat_file.html#a8fdb038aafdf3a17ac80b53c063aa73b',1,'FatFile::printFatDate(uint16_t fatDate)'],['../class_fat_file.html#ada5364f66204b1a64afbf9d2e6cd2b0b',1,'FatFile::printFatDate(print_t *pr, uint16_t fatDate)']]], - ['printfattime',['printFatTime',['../class_fat_file.html#a7740731f08ef97de7dfbc9b075c4c7d1',1,'FatFile::printFatTime(uint16_t fatTime)'],['../class_fat_file.html#a4e7e56ba52ca17c602af1b85684b09a9',1,'FatFile::printFatTime(print_t *pr, uint16_t fatTime)']]], - ['printfield',['printField',['../class_fat_file.html#a7478cad0f9e5079311b9e1fa558016ff',1,'FatFile::printField(float value, char term, uint8_t prec=2)'],['../class_fat_file.html#abd3e1747511216462b3ef98167156cbb',1,'FatFile::printField(int16_t value, char term)'],['../class_fat_file.html#a9972c2419c293ef9c382bff666b9ae4d',1,'FatFile::printField(uint16_t value, char term)'],['../class_fat_file.html#a41b3b32dd8482429b74c7af3432d6cf8',1,'FatFile::printField(int32_t value, char term)'],['../class_fat_file.html#a097240f08baadeb1c64b63eab9afb088',1,'FatFile::printField(uint32_t value, char term)'],['../class_stdio_stream.html#a4988592ada39c4b4c603b061f84d183f',1,'StdioStream::printField(double value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a3b90b2317cc391f94784a847f5313c08',1,'StdioStream::printField(float value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a02c2ad1a2e71e82d238b8386cf3e6c41',1,'StdioStream::printField(T value, char term)']]], - ['printfile',['PrintFile',['../class_print_file.html',1,'PrintFile'],['../class_print_file.html#adc3bcb2a5c4207de7ff7e9be3ac54233',1,'PrintFile::PrintFile()']]], - ['printfilesize',['printFileSize',['../class_fat_file.html#a12a5d2de2737c201aa39ca1bd2ab9c47',1,'FatFile']]], - ['printhex',['printHex',['../class_stdio_stream.html#add39b2b4ec3daa7c8922e96ce5d368bc',1,'StdioStream']]], - ['printhexln',['printHexln',['../class_stdio_stream.html#aec6ebea511489b0ef6b61d9132d93af9',1,'StdioStream']]], - ['println',['println',['../class_stdio_stream.html#ad0cd3acc05a91456f505752377bd405a',1,'StdioStream::println()'],['../class_stdio_stream.html#a3793dd66cf347a1ca0b7b167e948cce9',1,'StdioStream::println(double val, uint8_t prec=2)'],['../class_stdio_stream.html#aac250d041a7844c8db1cbd2d97ecfdaa',1,'StdioStream::println(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a3b14532768d07e6ed89c762d04792c12',1,'StdioStream::println(T val)']]], - ['printmodifydatetime',['printModifyDateTime',['../class_fat_file.html#a05cee5df46a370bf916d3ba597c82e39',1,'FatFile']]], - ['printname',['printName',['../class_fat_file.html#ad1cbc3aeb0f5193b7a26595966da9621',1,'FatFile::printName()'],['../class_fat_file.html#afe18a787fb8640e2d2483370c770f82f',1,'FatFile::printName(print_t *pr)']]], - ['printsfn',['printSFN',['../class_fat_file.html#a791cd7aade71f609aab62ec018aea3c0',1,'FatFile']]], - ['progmem',['PROGMEM',['../_fat_file_8h.html#a75acaba9e781937468d0911423bc0c35',1,'FatFile.h']]], - ['pstr',['PSTR',['../_fat_file_8h.html#a9c00057fd19e916cc1aa0a5949336beb',1,'FatFile.h']]], - ['put',['put',['../classostream.html#a11aad8a1efd284ccfa91cbfb78d089bd',1,'ostream']]], - ['putc',['putc',['../class_stdio_stream.html#adf9e552212aad6fc2284da0ee62d04dc',1,'StdioStream']]], - ['putcrlf',['putCRLF',['../class_stdio_stream.html#a09ccc4b6cabc3502c1052e85d94e84ef',1,'StdioStream']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_0.html b/libraries/SdFat/extras/html/search/classes_0.html deleted file mode 100644 index 523591f..0000000 --- a/libraries/SdFat/extras/html/search/classes_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_0.js b/libraries/SdFat/extras/html/search/classes_0.js deleted file mode 100644 index a9adadb..0000000 --- a/libraries/SdFat/extras/html/search/classes_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['arduinoinstream',['ArduinoInStream',['../class_arduino_in_stream.html',1,'']]], - ['arduinooutstream',['ArduinoOutStream',['../class_arduino_out_stream.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_1.html b/libraries/SdFat/extras/html/search/classes_1.html deleted file mode 100644 index f5a65ad..0000000 --- a/libraries/SdFat/extras/html/search/classes_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_1.js b/libraries/SdFat/extras/html/search/classes_1.js deleted file mode 100644 index db111f8..0000000 --- a/libraries/SdFat/extras/html/search/classes_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['baseblockdriver',['BaseBlockDriver',['../class_base_block_driver.html',1,'']]], - ['biosparmblock',['biosParmBlock',['../structbios_parm_block.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_2.html b/libraries/SdFat/extras/html/search/classes_2.html deleted file mode 100644 index 5b89b27..0000000 --- a/libraries/SdFat/extras/html/search/classes_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_2.js b/libraries/SdFat/extras/html/search/classes_2.js deleted file mode 100644 index 2cec96a..0000000 --- a/libraries/SdFat/extras/html/search/classes_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['cache_5ft',['cache_t',['../unioncache__t.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_3.html b/libraries/SdFat/extras/html/search/classes_3.html deleted file mode 100644 index 63ffc5d..0000000 --- a/libraries/SdFat/extras/html/search/classes_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_3.js b/libraries/SdFat/extras/html/search/classes_3.js deleted file mode 100644 index 6d9643b..0000000 --- a/libraries/SdFat/extras/html/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['directoryentry',['directoryEntry',['../structdirectory_entry.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_4.html b/libraries/SdFat/extras/html/search/classes_4.html deleted file mode 100644 index 4acce5b..0000000 --- a/libraries/SdFat/extras/html/search/classes_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_4.js b/libraries/SdFat/extras/html/search/classes_4.js deleted file mode 100644 index 29dc35e..0000000 --- a/libraries/SdFat/extras/html/search/classes_4.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['fat32_5fboot',['fat32_boot',['../structfat32__boot.html',1,'']]], - ['fat32_5ffsinfo',['fat32_fsinfo',['../structfat32__fsinfo.html',1,'']]], - ['fat_5fboot',['fat_boot',['../structfat__boot.html',1,'']]], - ['fatcache',['FatCache',['../class_fat_cache.html',1,'']]], - ['fatfile',['FatFile',['../class_fat_file.html',1,'']]], - ['fatfilesystem',['FatFileSystem',['../class_fat_file_system.html',1,'']]], - ['fatpos_5ft',['FatPos_t',['../struct_fat_pos__t.html',1,'']]], - ['fatstreambase',['FatStreamBase',['../class_fat_stream_base.html',1,'']]], - ['fatvolume',['FatVolume',['../class_fat_volume.html',1,'']]], - ['file',['File',['../class_file.html',1,'']]], - ['fname_5ft',['fname_t',['../structfname__t.html',1,'']]], - ['fstream',['fstream',['../classfstream.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_5.html b/libraries/SdFat/extras/html/search/classes_5.html deleted file mode 100644 index 67b3b9f..0000000 --- a/libraries/SdFat/extras/html/search/classes_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_5.js b/libraries/SdFat/extras/html/search/classes_5.js deleted file mode 100644 index 356cc7b..0000000 --- a/libraries/SdFat/extras/html/search/classes_5.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['ibufstream',['ibufstream',['../classibufstream.html',1,'']]], - ['ifstream',['ifstream',['../classifstream.html',1,'']]], - ['ios',['ios',['../classios.html',1,'']]], - ['ios_5fbase',['ios_base',['../classios__base.html',1,'']]], - ['iostream',['iostream',['../classiostream.html',1,'']]], - ['istream',['istream',['../classistream.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_6.html b/libraries/SdFat/extras/html/search/classes_6.html deleted file mode 100644 index ab174b5..0000000 --- a/libraries/SdFat/extras/html/search/classes_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_6.js b/libraries/SdFat/extras/html/search/classes_6.js deleted file mode 100644 index 61b2f45..0000000 --- a/libraries/SdFat/extras/html/search/classes_6.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['longdirectoryentry',['longDirectoryEntry',['../structlong_directory_entry.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_7.html b/libraries/SdFat/extras/html/search/classes_7.html deleted file mode 100644 index 737ed8b..0000000 --- a/libraries/SdFat/extras/html/search/classes_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_7.js b/libraries/SdFat/extras/html/search/classes_7.js deleted file mode 100644 index 5be458c..0000000 --- a/libraries/SdFat/extras/html/search/classes_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['masterbootrecord',['masterBootRecord',['../structmaster_boot_record.html',1,'']]], - ['minimumserial',['MinimumSerial',['../class_minimum_serial.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_8.html b/libraries/SdFat/extras/html/search/classes_8.html deleted file mode 100644 index b58c4b4..0000000 --- a/libraries/SdFat/extras/html/search/classes_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_8.js b/libraries/SdFat/extras/html/search/classes_8.js deleted file mode 100644 index 7979fbb..0000000 --- a/libraries/SdFat/extras/html/search/classes_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['obufstream',['obufstream',['../classobufstream.html',1,'']]], - ['ofstream',['ofstream',['../classofstream.html',1,'']]], - ['ostream',['ostream',['../classostream.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_9.html b/libraries/SdFat/extras/html/search/classes_9.html deleted file mode 100644 index 83984ab..0000000 --- a/libraries/SdFat/extras/html/search/classes_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_9.js b/libraries/SdFat/extras/html/search/classes_9.js deleted file mode 100644 index fcf5b92..0000000 --- a/libraries/SdFat/extras/html/search/classes_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['partitiontable',['partitionTable',['../structpartition_table.html',1,'']]], - ['printfile',['PrintFile',['../class_print_file.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/classes_a.html b/libraries/SdFat/extras/html/search/classes_a.html deleted file mode 100644 index 8a0a656..0000000 --- a/libraries/SdFat/extras/html/search/classes_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/classes_a.js b/libraries/SdFat/extras/html/search/classes_a.js deleted file mode 100644 index 2ff10e5..0000000 --- a/libraries/SdFat/extras/html/search/classes_a.js +++ /dev/null @@ -1,23 +0,0 @@ -var searchData= -[ - ['sd2card',['Sd2Card',['../class_sd2_card.html',1,'']]], - ['sdbasefile',['SdBaseFile',['../class_sd_base_file.html',1,'']]], - ['sdfat',['SdFat',['../class_sd_fat.html',1,'']]], - ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html',1,'']]], - ['sdfatsdio',['SdFatSdio',['../class_sd_fat_sdio.html',1,'']]], - ['sdfatsoftspi',['SdFatSoftSpi',['../class_sd_fat_soft_spi.html',1,'']]], - ['sdfatsoftspiex',['SdFatSoftSpiEX',['../class_sd_fat_soft_spi_e_x.html',1,'']]], - ['sdfile',['SdFile',['../class_sd_file.html',1,'']]], - ['sdfilesystem',['SdFileSystem',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdiocard_20_3e',['SdFileSystem< SdioCard >',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdspicard_20_3e',['SdFileSystem< SdSpiCard >',['../class_sd_file_system.html',1,'']]], - ['sdfilesystem_3c_20sdspicardex_20_3e',['SdFileSystem< SdSpiCardEX >',['../class_sd_file_system.html',1,'']]], - ['sdiocard',['SdioCard',['../class_sdio_card.html',1,'']]], - ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html',1,'']]], - ['sdspicardex',['SdSpiCardEX',['../class_sd_spi_card_e_x.html',1,'']]], - ['setfill',['setfill',['../structsetfill.html',1,'']]], - ['setprecision',['setprecision',['../structsetprecision.html',1,'']]], - ['setw',['setw',['../structsetw.html',1,'']]], - ['stdiostream',['StdioStream',['../class_stdio_stream.html',1,'']]], - ['syscall',['SysCall',['../class_sys_call.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/close.png b/libraries/SdFat/extras/html/search/close.png deleted file mode 100644 index 9342d3d..0000000 Binary files a/libraries/SdFat/extras/html/search/close.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/search/defines_0.html b/libraries/SdFat/extras/html/search/defines_0.html deleted file mode 100644 index c3b3619..0000000 --- a/libraries/SdFat/extras/html/search/defines_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_0.js b/libraries/SdFat/extras/html/search/defines_0.js deleted file mode 100644 index 567d919..0000000 --- a/libraries/SdFat/extras/html/search/defines_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['destructor_5fcloses_5ffile',['DESTRUCTOR_CLOSES_FILE',['../_sd_fat_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a9a2b1ca4d91cff876f48deeaacbc33da',1,'DESTRUCTOR_CLOSES_FILE(): FatLibConfig.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_1.html b/libraries/SdFat/extras/html/search/defines_1.html deleted file mode 100644 index 09fcf9e..0000000 --- a/libraries/SdFat/extras/html/search/defines_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_1.js b/libraries/SdFat/extras/html/search/defines_1.js deleted file mode 100644 index 0ac9ddd..0000000 --- a/libraries/SdFat/extras/html/search/defines_1.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['enable_5farduino_5ffeatures',['ENABLE_ARDUINO_FEATURES',['../_fat_lib_config_8h.html#a9a8c1ea8596f35f7f33a24b642567206',1,'FatLibConfig.h']]], - ['enable_5fextended_5ftransfer_5fclass',['ENABLE_EXTENDED_TRANSFER_CLASS',['../_sd_fat_config_8h.html#aad4f0ecbc65cdc3a7be544225b44f86a',1,'SdFatConfig.h']]], - ['enable_5fsdio_5fclass',['ENABLE_SDIO_CLASS',['../_sd_fat_config_8h.html#a1d106f3a0ba8577abdcc9ce3961ef90b',1,'SdFatConfig.h']]], - ['enable_5fsoftware_5fspi_5fclass',['ENABLE_SOFTWARE_SPI_CLASS',['../_sd_fat_config_8h.html#acc3d779d87b785bb7236b9b3acf7e619',1,'SdFatConfig.h']]], - ['endl_5fcalls_5fflush',['ENDL_CALLS_FLUSH',['../_sd_fat_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a270eefdaec4778f2a491658f34f61b17',1,'ENDL_CALLS_FLUSH(): FatLibConfig.h']]], - ['eof',['EOF',['../_stdio_stream_8h.html#a59adc4c82490d23754cd39c2fb99b0da',1,'StdioStream.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_2.html b/libraries/SdFat/extras/html/search/defines_2.html deleted file mode 100644 index 6d6dc75..0000000 --- a/libraries/SdFat/extras/html/search/defines_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_2.js b/libraries/SdFat/extras/html/search/defines_2.js deleted file mode 100644 index a89012f..0000000 --- a/libraries/SdFat/extras/html/search/defines_2.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['f',['F',['../_sys_call_8h.html#a0e3009529aac180ed5f48296d6670d6b',1,'SysCall.h']]], - ['fat12_5fsupport',['FAT12_SUPPORT',['../_sd_fat_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a28998c5daf4bd038f4f93172698320b1',1,'FAT12_SUPPORT(): FatLibConfig.h']]], - ['file_5fread',['FILE_READ',['../_arduino_files_8h.html#ad52d51659a75e25d96fb04d22ff718cb',1,'ArduinoFiles.h']]], - ['file_5fwrite',['FILE_WRITE',['../_arduino_files_8h.html#ace34e503254fa9004599ddf122264c8f',1,'ArduinoFiles.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_3.html b/libraries/SdFat/extras/html/search/defines_3.html deleted file mode 100644 index 5aba72e..0000000 --- a/libraries/SdFat/extras/html/search/defines_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_3.js b/libraries/SdFat/extras/html/search/defines_3.js deleted file mode 100644 index 49f56af..0000000 --- a/libraries/SdFat/extras/html/search/defines_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['implement_5fspi_5fport_5fselection',['IMPLEMENT_SPI_PORT_SELECTION',['../_sd_fat_config_8h.html#aa13678c06fd801cb8f00b497a517d91e',1,'SdFatConfig.h']]], - ['isdirseparator',['isDirSeparator',['../_fat_file_8h.html#a9f85580ad6f1dfc86fff09a58ff0a1c0',1,'FatFile.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_4.html b/libraries/SdFat/extras/html/search/defines_4.html deleted file mode 100644 index 7486f56..0000000 --- a/libraries/SdFat/extras/html/search/defines_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_4.js b/libraries/SdFat/extras/html/search/defines_4.js deleted file mode 100644 index df3950f..0000000 --- a/libraries/SdFat/extras/html/search/defines_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['maintain_5ffree_5fcluster_5fcount',['MAINTAIN_FREE_CLUSTER_COUNT',['../_sd_fat_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): SdFatConfig.h'],['../_fat_lib_config_8h.html#ac2865dac8fdbb4fff47105db32ddf05b',1,'MAINTAIN_FREE_CLUSTER_COUNT(): FatLibConfig.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_5.html b/libraries/SdFat/extras/html/search/defines_5.html deleted file mode 100644 index 3137e0a..0000000 --- a/libraries/SdFat/extras/html/search/defines_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_5.js b/libraries/SdFat/extras/html/search/defines_5.js deleted file mode 100644 index b45fe3d..0000000 --- a/libraries/SdFat/extras/html/search/defines_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['null',['NULL',['../_stdio_stream_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4',1,'StdioStream.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_6.html b/libraries/SdFat/extras/html/search/defines_6.html deleted file mode 100644 index ae03e5c..0000000 --- a/libraries/SdFat/extras/html/search/defines_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_6.js b/libraries/SdFat/extras/html/search/defines_6.js deleted file mode 100644 index 9894a74..0000000 --- a/libraries/SdFat/extras/html/search/defines_6.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['pgm_5fread_5fbyte',['pgm_read_byte',['../_fat_file_8h.html#a48c60b057902adf805797f183286728d',1,'FatFile.h']]], - ['pgm_5fread_5fword',['pgm_read_word',['../_fat_file_8h.html#a910fb5f01313d339d3b835d45e1e5ad0',1,'FatFile.h']]], - ['progmem',['PROGMEM',['../_fat_file_8h.html#a75acaba9e781937468d0911423bc0c35',1,'FatFile.h']]], - ['pstr',['PSTR',['../_fat_file_8h.html#a9c00057fd19e916cc1aa0a5949336beb',1,'FatFile.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_7.html b/libraries/SdFat/extras/html/search/defines_7.html deleted file mode 100644 index cff9f02..0000000 --- a/libraries/SdFat/extras/html/search/defines_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_7.js b/libraries/SdFat/extras/html/search/defines_7.js deleted file mode 100644 index 7c30917..0000000 --- a/libraries/SdFat/extras/html/search/defines_7.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['sd_5ffat_5fversion',['SD_FAT_VERSION',['../_sd_fat_8h.html#aca25ecce379f446043bdee2c55304210',1,'SdFat.h']]], - ['sd_5fhas_5fcustom_5fspi',['SD_HAS_CUSTOM_SPI',['../_sd_fat_config_8h.html#a838861a01379e94361148d22e62b1977',1,'SdFatConfig.h']]], - ['seek_5fcur',['SEEK_CUR',['../_stdio_stream_8h.html#a4c8d0b76b470ba65a43ca46a88320f39',1,'StdioStream.h']]], - ['seek_5fend',['SEEK_END',['../_stdio_stream_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8',1,'StdioStream.h']]], - ['seek_5fset',['SEEK_SET',['../_stdio_stream_8h.html#a0d112bae8fd35be772185b6ec6bcbe64',1,'StdioStream.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_8.html b/libraries/SdFat/extras/html/search/defines_8.html deleted file mode 100644 index ed546ae..0000000 --- a/libraries/SdFat/extras/html/search/defines_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_8.js b/libraries/SdFat/extras/html/search/defines_8.js deleted file mode 100644 index 41661be..0000000 --- a/libraries/SdFat/extras/html/search/defines_8.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['use_5flong_5ffile_5fnames',['USE_LONG_FILE_NAMES',['../_sd_fat_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a2536b194b3b007604a39e8526e108b52',1,'USE_LONG_FILE_NAMES(): FatLibConfig.h']]], - ['use_5fmulti_5fblock_5fio',['USE_MULTI_BLOCK_IO',['../_sd_fat_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): SdFatConfig.h'],['../_fat_lib_config_8h.html#afc3ef382d3ab8d7e6f8fc134ef21d487',1,'USE_MULTI_BLOCK_IO(): FatLibConfig.h']]], - ['use_5fsd_5fcrc',['USE_SD_CRC',['../_sd_fat_config_8h.html#af2e76ffb2fdb830175abf513dd640fdd',1,'SdFatConfig.h']]], - ['use_5fseparate_5ffat_5fcache',['USE_SEPARATE_FAT_CACHE',['../_sd_fat_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): SdFatConfig.h'],['../_fat_lib_config_8h.html#a23f662882413dcb017ebd8107473b8c3',1,'USE_SEPARATE_FAT_CACHE(): FatLibConfig.h']]], - ['use_5fstandard_5fspi_5flibrary',['USE_STANDARD_SPI_LIBRARY',['../_sd_fat_config_8h.html#a3dc42547ca4567cb789bec55759afeb2',1,'SdFatConfig.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/defines_9.html b/libraries/SdFat/extras/html/search/defines_9.html deleted file mode 100644 index a16c035..0000000 --- a/libraries/SdFat/extras/html/search/defines_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/defines_9.js b/libraries/SdFat/extras/html/search/defines_9.js deleted file mode 100644 index beb4463..0000000 --- a/libraries/SdFat/extras/html/search/defines_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['wdt_5fyield_5ftime_5fmicros',['WDT_YIELD_TIME_MICROS',['../_sd_fat_config_8h.html#a4e8a928d86c50c91c0bfc9a442373e14',1,'SdFatConfig.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/enums_0.html b/libraries/SdFat/extras/html/search/enums_0.html deleted file mode 100644 index d8d79a3..0000000 --- a/libraries/SdFat/extras/html/search/enums_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/enums_0.js b/libraries/SdFat/extras/html/search/enums_0.js deleted file mode 100644 index 82b6107..0000000 --- a/libraries/SdFat/extras/html/search/enums_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['seekdir',['seekdir',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191e',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/enumvalues_0.html b/libraries/SdFat/extras/html/search/enumvalues_0.html deleted file mode 100644 index 450f1ac..0000000 --- a/libraries/SdFat/extras/html/search/enumvalues_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/enumvalues_0.js b/libraries/SdFat/extras/html/search/enumvalues_0.js deleted file mode 100644 index 1836d03..0000000 --- a/libraries/SdFat/extras/html/search/enumvalues_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['beg',['beg',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191ea6639b4dd9e9b57ffef4a176cd1a1e7bb',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/enumvalues_1.html b/libraries/SdFat/extras/html/search/enumvalues_1.html deleted file mode 100644 index ac8ff57..0000000 --- a/libraries/SdFat/extras/html/search/enumvalues_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/enumvalues_1.js b/libraries/SdFat/extras/html/search/enumvalues_1.js deleted file mode 100644 index 8d0da19..0000000 --- a/libraries/SdFat/extras/html/search/enumvalues_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['cur',['cur',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191ea53910041525b9e2f33bfc3bb4482134c',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/enumvalues_2.html b/libraries/SdFat/extras/html/search/enumvalues_2.html deleted file mode 100644 index 71e42ad..0000000 --- a/libraries/SdFat/extras/html/search/enumvalues_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/enumvalues_2.js b/libraries/SdFat/extras/html/search/enumvalues_2.js deleted file mode 100644 index b1792d5..0000000 --- a/libraries/SdFat/extras/html/search/enumvalues_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['end',['end',['../classios__base.html#ab01103ba35f6ba93a704b3ec0c86191eaae47c0ae984e90b38907783a1a804811',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/files_0.html b/libraries/SdFat/extras/html/search/files_0.html deleted file mode 100644 index a2ec540..0000000 --- a/libraries/SdFat/extras/html/search/files_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/files_0.js b/libraries/SdFat/extras/html/search/files_0.js deleted file mode 100644 index ff5b52d..0000000 --- a/libraries/SdFat/extras/html/search/files_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['arduinofiles_2eh',['ArduinoFiles.h',['../_arduino_files_8h.html',1,'']]], - ['arduinostream_2eh',['ArduinoStream.h',['../_arduino_stream_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/files_1.html b/libraries/SdFat/extras/html/search/files_1.html deleted file mode 100644 index 9e974da..0000000 --- a/libraries/SdFat/extras/html/search/files_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/files_1.js b/libraries/SdFat/extras/html/search/files_1.js deleted file mode 100644 index 22718b3..0000000 --- a/libraries/SdFat/extras/html/search/files_1.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['blockdriver_2eh',['BlockDriver.h',['../_block_driver_8h.html',1,'']]], - ['bufstream_2eh',['bufstream.h',['../bufstream_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/files_2.html b/libraries/SdFat/extras/html/search/files_2.html deleted file mode 100644 index 04348f9..0000000 --- a/libraries/SdFat/extras/html/search/files_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/files_2.js b/libraries/SdFat/extras/html/search/files_2.js deleted file mode 100644 index 2aca7f9..0000000 --- a/libraries/SdFat/extras/html/search/files_2.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['fatfile_2eh',['FatFile.h',['../_fat_file_8h.html',1,'']]], - ['fatfilesystem_2eh',['FatFileSystem.h',['../_fat_file_system_8h.html',1,'']]], - ['fatlibconfig_2eh',['FatLibConfig.h',['../_fat_lib_config_8h.html',1,'']]], - ['fatstructs_2eh',['FatStructs.h',['../_fat_structs_8h.html',1,'']]], - ['fatvolume_2eh',['FatVolume.h',['../_fat_volume_8h.html',1,'']]], - ['freestack_2eh',['FreeStack.h',['../_free_stack_8h.html',1,'']]], - ['fstream_2eh',['fstream.h',['../fstream_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/files_3.html b/libraries/SdFat/extras/html/search/files_3.html deleted file mode 100644 index 7794200..0000000 --- a/libraries/SdFat/extras/html/search/files_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/files_3.js b/libraries/SdFat/extras/html/search/files_3.js deleted file mode 100644 index 19c93d7..0000000 --- a/libraries/SdFat/extras/html/search/files_3.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['ios_2eh',['ios.h',['../ios_8h.html',1,'']]], - ['iostream_2eh',['iostream.h',['../iostream_8h.html',1,'']]], - ['istream_2eh',['istream.h',['../istream_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/files_4.html b/libraries/SdFat/extras/html/search/files_4.html deleted file mode 100644 index e6bc285..0000000 --- a/libraries/SdFat/extras/html/search/files_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/files_4.js b/libraries/SdFat/extras/html/search/files_4.js deleted file mode 100644 index 13b542b..0000000 --- a/libraries/SdFat/extras/html/search/files_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['minimumserial_2eh',['MinimumSerial.h',['../_minimum_serial_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/files_5.html b/libraries/SdFat/extras/html/search/files_5.html deleted file mode 100644 index 5ab2ed6..0000000 --- a/libraries/SdFat/extras/html/search/files_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/files_5.js b/libraries/SdFat/extras/html/search/files_5.js deleted file mode 100644 index fbe6ff4..0000000 --- a/libraries/SdFat/extras/html/search/files_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['ostream_2eh',['ostream.h',['../ostream_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/files_6.html b/libraries/SdFat/extras/html/search/files_6.html deleted file mode 100644 index 9453495..0000000 --- a/libraries/SdFat/extras/html/search/files_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/files_6.js b/libraries/SdFat/extras/html/search/files_6.js deleted file mode 100644 index 7a8b712..0000000 --- a/libraries/SdFat/extras/html/search/files_6.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['sdfat_2eh',['SdFat.h',['../_sd_fat_8h.html',1,'']]], - ['sdfatconfig_2eh',['SdFatConfig.h',['../_sd_fat_config_8h.html',1,'']]], - ['sdspicard_2eh',['SdSpiCard.h',['../_sd_spi_card_8h.html',1,'']]], - ['stdiostream_2eh',['StdioStream.h',['../_stdio_stream_8h.html',1,'']]], - ['syscall_2eh',['SysCall.h',['../_sys_call_8h.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_0.html b/libraries/SdFat/extras/html/search/functions_0.html deleted file mode 100644 index 246d167..0000000 --- a/libraries/SdFat/extras/html/search/functions_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_0.js b/libraries/SdFat/extras/html/search/functions_0.js deleted file mode 100644 index 53143e8..0000000 --- a/libraries/SdFat/extras/html/search/functions_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['arduinoinstream',['ArduinoInStream',['../class_arduino_in_stream.html#a61ee22a5824849ec3261ee2f814dfb93',1,'ArduinoInStream']]], - ['arduinooutstream',['ArduinoOutStream',['../class_arduino_out_stream.html#a228b667f9f53dc91c6ed7735d34f04a8',1,'ArduinoOutStream']]], - ['available',['available',['../class_minimum_serial.html#a2abe4370989968938b5dc4872d51c3df',1,'MinimumSerial::available()'],['../class_print_file.html#a600592235b2bee6bdb3a9701d0d6eee3',1,'PrintFile::available()'],['../class_file.html#acf613c4e75bae85f543b30e701ebcc44',1,'File::available()'],['../class_fat_file.html#ac1fa779d98db7ffdb96f8019ab0060d6',1,'FatFile::available()']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_1.html b/libraries/SdFat/extras/html/search/functions_1.html deleted file mode 100644 index 5f14d67..0000000 --- a/libraries/SdFat/extras/html/search/functions_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_1.js b/libraries/SdFat/extras/html/search/functions_1.js deleted file mode 100644 index 3b9b854..0000000 --- a/libraries/SdFat/extras/html/search/functions_1.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['bad',['bad',['../classios.html#a7daa417c60277a4a4a452df4ad0af8e6',1,'ios']]], - ['begin',['begin',['../class_minimum_serial.html#a5c56beb3472bb97f949defeecacda52c',1,'MinimumSerial::begin()'],['../class_sd_file_system.html#ad94237ef45c52698e97b04e8c131f21e',1,'SdFileSystem::begin()'],['../class_sd_fat.html#abfafe10a64b28e6c1698ed82d340f624',1,'SdFat::begin()'],['../class_sd_fat_sdio.html#ac742b37bd8f2f4eb4df44b37c98398e0',1,'SdFatSdio::begin()'],['../class_sd_fat_soft_spi.html#a061019e4b5e17fad3cf8b0e3a08532e4',1,'SdFatSoftSpi::begin()'],['../class_sd_fat_e_x.html#a25acc97272c6004a6a4118bacef07467',1,'SdFatEX::begin()'],['../class_sd_fat_soft_spi_e_x.html#af84b3a6a61dd4c7f3c2c4bb17a8a6609',1,'SdFatSoftSpiEX::begin()'],['../class_sd2_card.html#a8506e1a2d7c4d8ec3f26e8b62ea81cd7',1,'Sd2Card::begin()'],['../class_fat_file_system.html#a5dda20d3dcbfc8c641babbb2c9aac382',1,'FatFileSystem::begin()'],['../class_sdio_card.html#ac749bdad92a4465d062f5d21a7f4faf5',1,'SdioCard::begin()'],['../class_sd_spi_card.html#a824cd60ef8ac2b06262597d6f30a4ea7',1,'SdSpiCard::begin()'],['../class_sd_spi_card_e_x.html#a4fd0b23d230c6ad7dc406e798bbd5470',1,'SdSpiCardEX::begin()']]], - ['block',['block',['../class_fat_cache.html#ab3d9c4f94af61065b6d6d0892827fd8a',1,'FatCache']]], - ['blockspercluster',['blocksPerCluster',['../class_fat_volume.html#a06beed4cea5e38116b58254a57125442',1,'FatVolume']]], - ['blocksperfat',['blocksPerFat',['../class_fat_volume.html#abc66d856d05198d9ebe7104c8c4155d7',1,'FatVolume']]], - ['boolalpha',['boolalpha',['../ios_8h.html#a0016daaaf730481e2ad36972fa7abb17',1,'ios.h']]], - ['buf',['buf',['../classobufstream.html#a4f699181bd3727f4288f4f95a5ce207f',1,'obufstream']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_10.html b/libraries/SdFat/extras/html/search/functions_10.html deleted file mode 100644 index c322f40..0000000 --- a/libraries/SdFat/extras/html/search/functions_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_10.js b/libraries/SdFat/extras/html/search/functions_10.js deleted file mode 100644 index 5223bda..0000000 --- a/libraries/SdFat/extras/html/search/functions_10.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['tellg',['tellg',['../classistream.html#a18332bdcb7fbe33ca06045c786cac4c3',1,'istream']]], - ['tellp',['tellp',['../classostream.html#a92dec0e2bc8352df1419d1cdc434e619',1,'ostream']]], - ['timestamp',['timestamp',['../class_fat_file.html#aa53a8d1d2467ad9af7d61cbf8ee85243',1,'FatFile::timestamp(FatFile *file)'],['../class_fat_file.html#a56dabdf73833b7e961c4530eb8e16d23',1,'FatFile::timestamp(uint8_t flags, uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)']]], - ['truncate',['truncate',['../class_fat_file.html#aa6e663098a578635d37d92e82d18d616',1,'FatFile::truncate()'],['../class_fat_file_system.html#ad60cb13557f35578f868e03e9ccb8be1',1,'FatFileSystem::truncate()']]], - ['type',['type',['../class_sdio_card.html#a2151106a93280ae41bab654428214661',1,'SdioCard::type()'],['../class_sd_spi_card.html#a061d92bf154a1863a6321385b7505f6e',1,'SdSpiCard::type()']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_11.html b/libraries/SdFat/extras/html/search/functions_11.html deleted file mode 100644 index c49fcd4..0000000 --- a/libraries/SdFat/extras/html/search/functions_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_11.js b/libraries/SdFat/extras/html/search/functions_11.js deleted file mode 100644 index e5df246..0000000 --- a/libraries/SdFat/extras/html/search/functions_11.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['ungetc',['ungetc',['../class_stdio_stream.html#ac00e0dd906c2e857ece53794c6c92786',1,'StdioStream']]], - ['unsetf',['unsetf',['../classios__base.html#a3bf7d054a433ed15e8b984e16f630fa4',1,'ios_base']]], - ['uppercase',['uppercase',['../ios_8h.html#af5d5e1a0effa1b500bb882feed5a2061',1,'ios.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_12.html b/libraries/SdFat/extras/html/search/functions_12.html deleted file mode 100644 index 6a02772..0000000 --- a/libraries/SdFat/extras/html/search/functions_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_12.js b/libraries/SdFat/extras/html/search/functions_12.js deleted file mode 100644 index d3159c0..0000000 --- a/libraries/SdFat/extras/html/search/functions_12.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['vol',['vol',['../class_fat_file_system.html#a4ca68fe47bb675df0a80df1ed7a53698',1,'FatFileSystem']]], - ['volume',['volume',['../class_fat_file.html#a3c64bd8a9abb9a6461d4addb405614df',1,'FatFile']]], - ['volumeblockcount',['volumeBlockCount',['../class_fat_volume.html#a07bc98088ce4a9c725700899c184f7fc',1,'FatVolume']]], - ['vwd',['vwd',['../class_fat_file_system.html#acf257d02b7166683bda2abc5058004bf',1,'FatFileSystem']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_13.html b/libraries/SdFat/extras/html/search/functions_13.html deleted file mode 100644 index 23ac5da..0000000 --- a/libraries/SdFat/extras/html/search/functions_13.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_13.js b/libraries/SdFat/extras/html/search/functions_13.js deleted file mode 100644 index 696afe6..0000000 --- a/libraries/SdFat/extras/html/search/functions_13.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['width',['width',['../classios__base.html#afa30e7644b4eae5928ad9c487ad387de',1,'ios_base::width()'],['../classios__base.html#ab2ba0f005bbf3d8ebed93b64068492e0',1,'ios_base::width(unsigned n)']]], - ['wipe',['wipe',['../class_fat_file_system.html#a36d7831f92acfbfef1c4a24dd7103dc4',1,'FatFileSystem::wipe()'],['../class_fat_volume.html#a8088aa74cf601996905dadd2eea6966c',1,'FatVolume::wipe()']]], - ['write',['write',['../class_minimum_serial.html#a0ca1d9631fe5f2f00878bd481dbbd3aa',1,'MinimumSerial::write()'],['../class_print_file.html#a460b033ff85e85f684f8d9b615645db1',1,'PrintFile::write(uint8_t b)'],['../class_print_file.html#a29c1d534d21c3a82ad04232d37119a57',1,'PrintFile::write(const uint8_t *buf, size_t size)'],['../class_file.html#a618a6b2b7e81bfb93e0d3c158f614f90',1,'File::write(uint8_t b)'],['../class_file.html#aa531c1641a2363e1f6b9d103f37433da',1,'File::write(const uint8_t *buf, size_t size)'],['../class_fat_file.html#aa4a5b81161994cea07938702cdfce49f',1,'FatFile::write(const char *str)'],['../class_fat_file.html#a5524bd9f3b8f54ee163e391cba618186',1,'FatFile::write(uint8_t b)'],['../class_fat_file.html#a0ab9df44a9ee4b6eb0a78f15f1e30004',1,'FatFile::write(const void *buf, size_t nbyte)']]], - ['writeblock',['writeBlock',['../class_base_block_driver.html#a87df3db1b400286883661525441d39fa',1,'BaseBlockDriver::writeBlock()'],['../class_sdio_card.html#ae53e5f72ddf9ace3f47774d968e064ed',1,'SdioCard::writeBlock()'],['../class_sd_spi_card.html#a03a0bdb0f37a88076f24a2133cf5b4ed',1,'SdSpiCard::writeBlock()'],['../class_sd_spi_card_e_x.html#a6bd5e6bcfc2ab9574daa11bdd342be7b',1,'SdSpiCardEX::writeBlock()']]], - ['writeblocks',['writeBlocks',['../class_base_block_driver.html#a3d6520b21252ebfb17b0cac0b87689b1',1,'BaseBlockDriver::writeBlocks()'],['../class_sdio_card.html#a8b811f875497e90e75fbe6c2d41d89cb',1,'SdioCard::writeBlocks()'],['../class_sd_spi_card.html#a181d96fe44891b7caabcd47dd29ac913',1,'SdSpiCard::writeBlocks()'],['../class_sd_spi_card_e_x.html#a9a7a5815b56c2cc77590a72635593762',1,'SdSpiCardEX::writeBlocks()']]], - ['writedata',['writeData',['../class_sd_spi_card.html#a9495c0b148eb380358bb4a9721c0dffa',1,'SdSpiCard']]], - ['writestart',['writeStart',['../class_sd_spi_card.html#a56d4750a5d2f693943eec985cb61ffe2',1,'SdSpiCard::writeStart(uint32_t blockNumber)'],['../class_sd_spi_card.html#a8bf0dc991308dcd2a7427bad89a9e2ba',1,'SdSpiCard::writeStart(uint32_t blockNumber, uint32_t eraseCount)']]], - ['writestop',['writeStop',['../class_sd_spi_card.html#aef9154785a4de5560fb807e4f9316fb0',1,'SdSpiCard']]], - ['ws',['ws',['../iostream_8h.html#a8adf4c714b8c8f201dedc83ee04556b1',1,'iostream.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_14.html b/libraries/SdFat/extras/html/search/functions_14.html deleted file mode 100644 index 16e2625..0000000 --- a/libraries/SdFat/extras/html/search/functions_14.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_14.js b/libraries/SdFat/extras/html/search/functions_14.js deleted file mode 100644 index 685c4a7..0000000 --- a/libraries/SdFat/extras/html/search/functions_14.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['yield',['yield',['../class_sys_call.html#a2219ba5ea8e411b022a3a00df5f380e0',1,'SysCall']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_2.html b/libraries/SdFat/extras/html/search/functions_2.html deleted file mode 100644 index 3995cf8..0000000 --- a/libraries/SdFat/extras/html/search/functions_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_2.js b/libraries/SdFat/extras/html/search/functions_2.js deleted file mode 100644 index cd0abd8..0000000 --- a/libraries/SdFat/extras/html/search/functions_2.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['cacheclear',['cacheClear',['../class_fat_volume.html#aa1e3b1d0c21d202deb82668068ab00e8',1,'FatVolume']]], - ['card',['card',['../class_sd_file_system.html#ab5dcfbeeb7caa38a38db86003341eb07',1,'SdFileSystem']]], - ['cardbegin',['cardBegin',['../class_sd_fat.html#ae380e4572776db851b2f80a3ed143fca',1,'SdFat::cardBegin()'],['../class_sd_fat_sdio.html#ac49062cc8fb2a42564d0ff05b4c0be8b',1,'SdFatSdio::cardBegin()']]], - ['carderrorcode',['cardErrorCode',['../class_sd_file_system.html#aedfd5a0830c955bc5514e52f2f2dd066',1,'SdFileSystem']]], - ['carderrordata',['cardErrorData',['../class_sd_file_system.html#a0602ab3c04ea33293649f0a15fc81e05',1,'SdFileSystem']]], - ['cardsize',['cardSize',['../class_sdio_card.html#a3d8f9a92f7faec77094ec65e6c41dd45',1,'SdioCard::cardSize()'],['../class_sd_spi_card.html#afca8bd6b7e465bf9c475ba375c4deec8',1,'SdSpiCard::cardSize()']]], - ['chdir',['chdir',['../class_fat_file_system.html#a5667915e63187a43a71dfada63800865',1,'FatFileSystem::chdir(bool set_cwd=false)'],['../class_fat_file_system.html#a44af1b98e8d986d12107b654453acbc4',1,'FatFileSystem::chdir(const char *path, bool set_cwd=false)']]], - ['chvol',['chvol',['../class_fat_file_system.html#af24917d6e00c8766dab168eb834047ec',1,'FatFileSystem']]], - ['clear',['clear',['../classfstream.html#a682b278a6a299ffb21b8737717ff12bf',1,'fstream::clear()'],['../classofstream.html#a09edfdb3dbda20aff105e751001313f0',1,'ofstream::clear()'],['../classios.html#aa49ed6670d1743e7a373b2d915ec739a',1,'ios::clear()']]], - ['clearerr',['clearerr',['../class_stdio_stream.html#aa737e5680fc2808a03a603ea8559d82b',1,'StdioStream']]], - ['clearerror',['clearError',['../class_fat_file.html#a052e2c15a39b322a5307b693b8835b22',1,'FatFile']]], - ['clearwriteerror',['clearWriteError',['../class_fat_file.html#aeca2a2eff91e6aa55fe1b0e3860c9a05',1,'FatFile']]], - ['close',['close',['../class_fat_file.html#afd16af325e0642e4bff6430b7d8bb18b',1,'FatFile::close()'],['../classfstream.html#ac5720ee620c09d63dd186823e688ea9a',1,'fstream::close()'],['../classifstream.html#ac5892f472afdef6160f5fe2401b16dce',1,'ifstream::close()'],['../classofstream.html#a240f3752c7ff7a78d10c143d2083715f',1,'ofstream::close()']]], - ['clustercount',['clusterCount',['../class_fat_volume.html#a18446a9c5924304fa7a87d5f03ccaf21',1,'FatVolume']]], - ['clustersizeshift',['clusterSizeShift',['../class_fat_volume.html#ac0e63f33d71d5dc95a602834274def6a',1,'FatVolume']]], - ['contiguousrange',['contiguousRange',['../class_fat_file.html#aa367708bcc8bc0e0c45c0c2a812c65da',1,'FatFile']]], - ['createcontiguous',['createContiguous',['../class_fat_file.html#a0afc2a1cffa238d1cb2049bfa2d8d199',1,'FatFile::createContiguous(FatFile *dirFile, const char *path, uint32_t size)'],['../class_fat_file.html#a0853fbd44aee2798d14d8e3aed78f8bf',1,'FatFile::createContiguous(const char *path, uint32_t size)']]], - ['curcluster',['curCluster',['../class_fat_file.html#a4c03e2f6729526786e6ab4a623e0339b',1,'FatFile']]], - ['curposition',['curPosition',['../class_fat_file.html#a20c55b134bfd1d287a00bf64eba9332e',1,'FatFile']]], - ['curtimems',['curTimeMS',['../_sys_call_8h.html#a7a1c5babdcf00c78d4d2e6a012bd9e68',1,'SysCall.h']]], - ['cwd',['cwd',['../class_fat_file.html#a3b68e603ad8e47bad915f0547e580adb',1,'FatFile']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_3.html b/libraries/SdFat/extras/html/search/functions_3.html deleted file mode 100644 index 4e302d6..0000000 --- a/libraries/SdFat/extras/html/search/functions_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_3.js b/libraries/SdFat/extras/html/search/functions_3.js deleted file mode 100644 index e4cdd50..0000000 --- a/libraries/SdFat/extras/html/search/functions_3.js +++ /dev/null @@ -1,21 +0,0 @@ -var searchData= -[ - ['datastartblock',['dataStartBlock',['../class_fat_volume.html#a443364af257c219f8e908d5b073d8fa3',1,'FatVolume']]], - ['datetimecallback',['dateTimeCallback',['../class_fat_file.html#a29a623f50df057e8b49045ba6611ec2b',1,'FatFile']]], - ['datetimecallbackcancel',['dateTimeCallbackCancel',['../class_fat_file.html#a5df02f1d037e6091375488af25244ebc',1,'FatFile']]], - ['dbgfat',['dbgFat',['../class_fat_volume.html#a25c6311b70fa274b3be94ff25fdebba7',1,'FatVolume']]], - ['dec',['dec',['../ios_8h.html#ada38ab90e22f0ebb638cb864a35c562d',1,'ios.h']]], - ['dir_5fis_5ffile',['DIR_IS_FILE',['../_fat_structs_8h.html#a5ce8bde4d6ff3950df951e84c7bb8d58',1,'FatStructs.h']]], - ['dir_5fis_5ffile_5for_5fsubdir',['DIR_IS_FILE_OR_SUBDIR',['../_fat_structs_8h.html#a9d99b04fa090825a9b9c2468fa81e627',1,'FatStructs.h']]], - ['dir_5fis_5fhidden',['DIR_IS_HIDDEN',['../_fat_structs_8h.html#a5137c8165addb9d32c6094d03a9d029d',1,'FatStructs.h']]], - ['dir_5fis_5flong_5fname',['DIR_IS_LONG_NAME',['../_fat_structs_8h.html#a504c3d996b412f386becc27a8c49cd2c',1,'FatStructs.h']]], - ['dir_5fis_5fsubdir',['DIR_IS_SUBDIR',['../_fat_structs_8h.html#ace8ed88fcb41afc4d2fe0eabf96e71c6',1,'FatStructs.h']]], - ['dir_5fis_5fsystem',['DIR_IS_SYSTEM',['../_fat_structs_8h.html#a46cad0d590c5e290c52ccf660b316dd9',1,'FatStructs.h']]], - ['direntry',['dirEntry',['../class_fat_file.html#a6858d18c807411a071fd6d1b39d50087',1,'FatFile']]], - ['dirindex',['dirIndex',['../class_fat_file.html#ae5ec24d4a94d3780384d3f2b731c7eb9',1,'FatFile']]], - ['dirname',['dirName',['../class_fat_file.html#a648461081fe07578780f4cd3f246cb66',1,'FatFile']]], - ['dirsize',['dirSize',['../class_fat_file.html#ae2ed15f05c9ccbce355e7a8d3ce8382d',1,'FatFile']]], - ['dirty',['dirty',['../class_fat_cache.html#ab4d3b0c16bb6a116c7d01afff2dcb307',1,'FatCache']]], - ['dmabusy',['dmaBusy',['../class_sdio_card.html#a9781b9b4f91366a69dd077ad8fb364c5',1,'SdioCard']]], - ['dmpfile',['dmpFile',['../class_fat_file.html#a4f01d27954ae49aeb6888ac7302f55d9',1,'FatFile']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_4.html b/libraries/SdFat/extras/html/search/functions_4.html deleted file mode 100644 index 58ca83a..0000000 --- a/libraries/SdFat/extras/html/search/functions_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_4.js b/libraries/SdFat/extras/html/search/functions_4.js deleted file mode 100644 index fd5e3ef..0000000 --- a/libraries/SdFat/extras/html/search/functions_4.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['endl',['endl',['../iostream_8h.html#ab9868f8e151efc1705646437dbb59bb2',1,'iostream.h']]], - ['eof',['eof',['../classios.html#ad2f091f3ed1a2e13f62557854c0885a7',1,'ios']]], - ['erase',['erase',['../class_sdio_card.html#a1ce82b035257790ed8e4a9be3d966b80',1,'SdioCard::erase()'],['../class_sd_spi_card.html#a1caa13d19df6596b2c0dd62365c75362',1,'SdSpiCard::erase()']]], - ['erasesingleblockenable',['eraseSingleBlockEnable',['../class_sd_spi_card.html#aed4591884254c9f58daa8738d7c1ccdd',1,'SdSpiCard']]], - ['error',['error',['../class_sd_spi_card.html#aa12ad53111abcb187d3c6119a3a77592',1,'SdSpiCard']]], - ['errorcode',['errorCode',['../class_sdio_card.html#a4ff272009a24fc4078ac87c2d87ccd16',1,'SdioCard::errorCode()'],['../class_sd_spi_card.html#a50bf5f92223222beacec2b203a6b7a95',1,'SdSpiCard::errorCode()']]], - ['errordata',['errorData',['../class_sdio_card.html#a8251b9aa0d623487e80cf908fc1625b5',1,'SdioCard::errorData()'],['../class_sd_spi_card.html#a7b1abdb8dd5254cd4af0df19ba59ce4a',1,'SdSpiCard::errorData()']]], - ['errorhalt',['errorHalt',['../class_sd_file_system.html#a855267374306bfee2df67642c99d4d18',1,'SdFileSystem::errorHalt()'],['../class_sd_file_system.html#ae1f79a2974ebe134e70f898c32d97e98',1,'SdFileSystem::errorHalt(Print *pr)'],['../class_sd_file_system.html#a32c20dfa6a8cb8af95f25847b19bdbca',1,'SdFileSystem::errorHalt(char const *msg)'],['../class_sd_file_system.html#a27fb329d6aee79a63c20386218ce7e9e',1,'SdFileSystem::errorHalt(Print *pr, char const *msg)'],['../class_sd_file_system.html#af856494745a9842d9728dfeabf19c51e',1,'SdFileSystem::errorHalt(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a746c80d048c30baf0b281e16932670a2',1,'SdFileSystem::errorHalt(Print *pr, const __FlashStringHelper *msg)']]], - ['errorline',['errorLine',['../class_sdio_card.html#aafa9feb1b5a90f3cf96456b6b286bfdf',1,'SdioCard']]], - ['errorprint',['errorPrint',['../class_sd_file_system.html#ab0b78154d6874c29279ba81f36ccb09c',1,'SdFileSystem::errorPrint()'],['../class_sd_file_system.html#a03736274debea71fef5e2ff34d7ec3dc',1,'SdFileSystem::errorPrint(Print *pr)'],['../class_sd_file_system.html#a2e2436b7b2666737cbaf4b22218bc69f',1,'SdFileSystem::errorPrint(const char *msg)'],['../class_sd_file_system.html#a0eb6b92a0700ba932f6127962981d153',1,'SdFileSystem::errorPrint(Print *pr, char const *msg)'],['../class_sd_file_system.html#a1ccb1f937f42e9c1331c942bc357f6da',1,'SdFileSystem::errorPrint(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a43344a079d9af92ea4b550914d0512f6',1,'SdFileSystem::errorPrint(Print *pr, const __FlashStringHelper *msg)']]], - ['exists',['exists',['../class_fat_file.html#a50242f98dea0d4488ce4039a279f2a57',1,'FatFile::exists()'],['../class_fat_file_system.html#aee58c6352652f216577196e32a594b67',1,'FatFileSystem::exists()']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_5.html b/libraries/SdFat/extras/html/search/functions_5.html deleted file mode 100644 index 5f9f05a..0000000 --- a/libraries/SdFat/extras/html/search/functions_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_5.js b/libraries/SdFat/extras/html/search/functions_5.js deleted file mode 100644 index 32b5e43..0000000 --- a/libraries/SdFat/extras/html/search/functions_5.js +++ /dev/null @@ -1,42 +0,0 @@ -var searchData= -[ - ['fail',['fail',['../classios.html#a1c7b563046a50c5a0430405964998034',1,'ios']]], - ['fat_5fdate',['FAT_DATE',['../_fat_structs_8h.html#a44899ad42ddf32ff1c1a73b5251b304a',1,'FatStructs.h']]], - ['fat_5fday',['FAT_DAY',['../_fat_structs_8h.html#a4cc8bc105529bf9e9c11e8ef099d68b0',1,'FatStructs.h']]], - ['fat_5fhour',['FAT_HOUR',['../_fat_structs_8h.html#ae7c733d49a5570054f6db3bd53332ba1',1,'FatStructs.h']]], - ['fat_5fminute',['FAT_MINUTE',['../_fat_structs_8h.html#a1b09676a41ae6c9e19664bdcd5b1d34e',1,'FatStructs.h']]], - ['fat_5fmonth',['FAT_MONTH',['../_fat_structs_8h.html#a429bc2d96f5bc26dc3bd6cc2bd535b84',1,'FatStructs.h']]], - ['fat_5fsecond',['FAT_SECOND',['../_fat_structs_8h.html#a4d553e2088d42e01d6c08ee84e611b00',1,'FatStructs.h']]], - ['fat_5ftime',['FAT_TIME',['../_fat_structs_8h.html#a375720927be5a39475d48b2d75dae29a',1,'FatStructs.h']]], - ['fat_5fyear',['FAT_YEAR',['../_fat_structs_8h.html#a279a75f907dd2603543c7bdad00ff603',1,'FatStructs.h']]], - ['fatcount',['fatCount',['../class_fat_volume.html#acdedc6a200b01e401c9cd9b511eae6ec',1,'FatVolume']]], - ['fatfile',['FatFile',['../class_fat_file.html#a7b591c9b92165fa8e4eae8c30c30e533',1,'FatFile::FatFile()'],['../class_fat_file.html#a29d31067d0aa3a9a74b1a660c38775cc',1,'FatFile::FatFile(const char *path, uint8_t oflag)']]], - ['fatstartblock',['fatStartBlock',['../class_fat_volume.html#a0dd0cc689b63ef0702aed1cf36b1722d',1,'FatVolume']]], - ['fattype',['fatType',['../class_fat_volume.html#a1364f11fe9bb4717ce0685e2b7b86027',1,'FatVolume']]], - ['fatvolume',['FatVolume',['../class_fat_volume.html#a026de2bb58026e4edea130db2949b84c',1,'FatVolume']]], - ['fclose',['fclose',['../class_stdio_stream.html#a4ddd4658d49182013d2fa2a181e96c5a',1,'StdioStream']]], - ['feof',['feof',['../class_stdio_stream.html#acb38c3211feedbf2206eb1d9a3a9d24f',1,'StdioStream']]], - ['ferror',['ferror',['../class_stdio_stream.html#afd64cec6440b923660b444f6d5f0586e',1,'StdioStream']]], - ['fflush',['fflush',['../class_stdio_stream.html#a7ce32ec7ea3f2fd8ea42b9633890f1c0',1,'StdioStream']]], - ['fgetc',['fgetc',['../class_stdio_stream.html#a160bd2828cb7e7370cffe1046eff8899',1,'StdioStream']]], - ['fgets',['fgets',['../class_fat_file.html#a31ef26b3ee37cf5f5f4c6024c0ddab69',1,'FatFile::fgets()'],['../class_stdio_stream.html#aa240c1021a1aad1cc57f63a483541dc7',1,'StdioStream::fgets()']]], - ['file',['File',['../class_file.html#a9ecb14efb960d1369926182479f56213',1,'File']]], - ['fileattr',['fileAttr',['../class_fat_file.html#a7e043dfb89d268bfd620bbbadacf1002',1,'FatFile']]], - ['filesize',['fileSize',['../class_fat_file.html#a02fc3b3ca36b4745f695f3de8c8ec36d',1,'FatFile']]], - ['fill',['fill',['../classios__base.html#ade5bd46462e075999c3a5c2cff2015f1',1,'ios_base::fill()'],['../classios__base.html#aa5683f9bdf295311bd5a6d3cdc2fedd5',1,'ios_base::fill(char c)']]], - ['firstblock',['firstBlock',['../class_fat_file.html#ac87b753811e540c7b799da56fa89724b',1,'FatFile']]], - ['firstcluster',['firstCluster',['../class_fat_file.html#a1057bc23b92a074539f661e896e79a09',1,'FatFile']]], - ['flags',['flags',['../classios__base.html#ab5e9c7dbcbc33b7de9dcb70525ec7384',1,'ios_base::flags() const '],['../classios__base.html#ae67e900dc12e4c7cbc0741ad1c70d6c2',1,'ios_base::flags(fmtflags fl)']]], - ['flush',['flush',['../class_minimum_serial.html#a872f0ff70f0e256352004f83d13fff28',1,'MinimumSerial::flush()'],['../class_print_file.html#a53c4cb94af030fdf83a9160ec9a96949',1,'PrintFile::flush()'],['../class_file.html#af87fa862de707575b8badd044a5af80e',1,'File::flush()'],['../classostream.html#af6be1f30d824f5a65d27d5b5d20b8c6c',1,'ostream::flush()'],['../iostream_8h.html#a2f6f5344fca38fd4fe7b6231fd992a0d',1,'flush(): iostream.h']]], - ['fopen',['fopen',['../class_stdio_stream.html#a4ffc37225fb6deed98905aa71d1f9c4b',1,'StdioStream']]], - ['fputc',['fputc',['../class_stdio_stream.html#a9f23cfa6b112a5da6ae08340af23c57b',1,'StdioStream']]], - ['fputs',['fputs',['../class_stdio_stream.html#a6adea52f55ef7d97cdb54e9e11fc2daa',1,'StdioStream']]], - ['fread',['fread',['../class_stdio_stream.html#a2d363b02abcef82b25ff025d50375bce',1,'StdioStream']]], - ['freeclustercount',['freeClusterCount',['../class_fat_volume.html#a1683b063fc6202ab85470b9610f16f93',1,'FatVolume']]], - ['freestack',['FreeStack',['../_free_stack_8h.html#a2c0121d5649d35329a8d0a71e4ffb89b',1,'FreeStack.h']]], - ['fsbegin',['fsBegin',['../class_sd_fat.html#add6a9a3ad07585f6e0e5c35e35cacb9a',1,'SdFat::fsBegin()'],['../class_sd_fat_sdio.html#aac0e8d86182a0e0566c4671c15f3df61',1,'SdFatSdio::fsBegin()']]], - ['fseek',['fseek',['../class_stdio_stream.html#a71584fd5c5cda3c31ce6cdbcc56f104d',1,'StdioStream']]], - ['fstream',['fstream',['../classfstream.html#aed23877c52f828cab8de7a23603b3b6c',1,'fstream']]], - ['ftell',['ftell',['../class_stdio_stream.html#a809639fc5fb4fa5b6789dc121659f386',1,'StdioStream']]], - ['fwrite',['fwrite',['../class_stdio_stream.html#ad79465afb52579cbc801f4585c3f9c25',1,'StdioStream']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_6.html b/libraries/SdFat/extras/html/search/functions_6.html deleted file mode 100644 index c980da2..0000000 --- a/libraries/SdFat/extras/html/search/functions_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_6.js b/libraries/SdFat/extras/html/search/functions_6.js deleted file mode 100644 index 9556521..0000000 --- a/libraries/SdFat/extras/html/search/functions_6.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['gcount',['gcount',['../classistream.html#ad2b705d2f363ed59db6ac4046f78b4bb',1,'istream']]], - ['get',['get',['../classistream.html#a36573c9b7fc522e6c85a73221019fd11',1,'istream::get()'],['../classistream.html#a9c7313d6f21f1f7ac9b0e759e74b4db2',1,'istream::get(char &ch)'],['../classistream.html#a4247f47e388598c69ef3bd39ea4c056f',1,'istream::get(char *str, streamsize n, char delim= '\n')']]], - ['getc',['getc',['../class_stdio_stream.html#a28ba31e7b526607744bfa41844ffce31',1,'StdioStream']]], - ['geterror',['getError',['../class_fat_file.html#ad0dbbd083180f44c7a3ce7124d4ce19c',1,'FatFile']]], - ['getline',['getline',['../classistream.html#a7d86035d178e526283e5c7555ab7b243',1,'istream']]], - ['getname',['getName',['../class_fat_file.html#aafa565e286440aab612cdb430fc01da5',1,'FatFile']]], - ['getpos',['getpos',['../class_fat_file.html#aaa4f9886887947815a61eaf015996932',1,'FatFile']]], - ['getsfn',['getSFN',['../class_fat_file.html#aba30e92a66f8e0d2f815c85662772a58',1,'FatFile']]], - ['getwriteerror',['getWriteError',['../class_fat_file.html#a8062c0d3a118e8d77d0310418703d5f5',1,'FatFile']]], - ['good',['good',['../classios.html#a5fdf9247f642a7a5c5a21323ffd45366',1,'ios']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_7.html b/libraries/SdFat/extras/html/search/functions_7.html deleted file mode 100644 index 3857329..0000000 --- a/libraries/SdFat/extras/html/search/functions_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_7.js b/libraries/SdFat/extras/html/search/functions_7.js deleted file mode 100644 index 42d85c2..0000000 --- a/libraries/SdFat/extras/html/search/functions_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['halt',['halt',['../class_sys_call.html#a9b1ef8900e97f572ca561760b4dd4191',1,'SysCall']]], - ['hex',['hex',['../ios_8h.html#ace2036d970905192360d622140bfe336',1,'ios.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_8.html b/libraries/SdFat/extras/html/search/functions_8.html deleted file mode 100644 index 088e437..0000000 --- a/libraries/SdFat/extras/html/search/functions_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_8.js b/libraries/SdFat/extras/html/search/functions_8.js deleted file mode 100644 index 9c9541d..0000000 --- a/libraries/SdFat/extras/html/search/functions_8.js +++ /dev/null @@ -1,26 +0,0 @@ -var searchData= -[ - ['ibufstream',['ibufstream',['../classibufstream.html#afe28f27d24a62a21428b60fe8834dd05',1,'ibufstream::ibufstream()'],['../classibufstream.html#a819561105ef7dc3828e0cfedfed708d8',1,'ibufstream::ibufstream(const char *str)']]], - ['ifstream',['ifstream',['../classifstream.html#a11f4bfaa5c37cfcf8878c367fd861a88',1,'ifstream']]], - ['ignore',['ignore',['../classistream.html#a12597b03d86b66047a5581bbd26eb032',1,'istream']]], - ['init',['init',['../classibufstream.html#a1d7bae17d9d2c79218085251946f322a',1,'ibufstream::init()'],['../classobufstream.html#a8f75dbadab2fed7770d01a2cc2628258',1,'obufstream::init()'],['../class_fat_cache.html#ae1d8a2da1493b5ffca0520184daaddf1',1,'FatCache::init()'],['../class_fat_volume.html#acab819fa25a91dad1cc698a7e1e0eb32',1,'FatVolume::init()'],['../class_fat_volume.html#a034d997a1e7a0b2b664a4357bcccd256',1,'FatVolume::init(uint8_t part)']]], - ['initerrorhalt',['initErrorHalt',['../class_sd_file_system.html#a8e1f26486bb878a24fa9868e59dbbbc2',1,'SdFileSystem::initErrorHalt()'],['../class_sd_file_system.html#a24bd0f699cf0fe11fd2148b15c49251a',1,'SdFileSystem::initErrorHalt(Print *pr)'],['../class_sd_file_system.html#a893833a880e2a83757480ba4c1351041',1,'SdFileSystem::initErrorHalt(char const *msg)'],['../class_sd_file_system.html#a3077b1a53d789d0401b707963cb28f46',1,'SdFileSystem::initErrorHalt(Print *pr, char const *msg)'],['../class_sd_file_system.html#a2a1e4cc8056ba23b55dfa2c6486b8798',1,'SdFileSystem::initErrorHalt(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#ab03d98012dea18733c3252f27832de69',1,'SdFileSystem::initErrorHalt(Print *pr, const __FlashStringHelper *msg)']]], - ['initerrorprint',['initErrorPrint',['../class_sd_file_system.html#ae31c9cbd7e1c03129d6c99b25f73cd50',1,'SdFileSystem::initErrorPrint()'],['../class_sd_file_system.html#a066707dce0667213b5f083d59f67448d',1,'SdFileSystem::initErrorPrint(Print *pr)'],['../class_sd_file_system.html#a538796f79fd9db9c5bbeefd9defe639a',1,'SdFileSystem::initErrorPrint(char const *msg)'],['../class_sd_file_system.html#ad9855d33ebd465715b706d0926291b13',1,'SdFileSystem::initErrorPrint(Print *pr, char const *msg)'],['../class_sd_file_system.html#ad6ffec5a7d82be46d46b8a4f82d0803b',1,'SdFileSystem::initErrorPrint(const __FlashStringHelper *msg)'],['../class_sd_file_system.html#a8a2018b6366145a9843d3d29a47d6560',1,'SdFileSystem::initErrorPrint(Print *pr, const __FlashStringHelper *msg)']]], - ['internal',['internal',['../ios_8h.html#a8dd76c1ce8fced364a98428ca1eea7a6',1,'ios.h']]], - ['invalidate',['invalidate',['../class_fat_cache.html#a70071a128d647b49b523dbb2f5f944a5',1,'FatCache']]], - ['ios',['ios',['../classios.html#adc5dbd7b69da79493ebc84aa1e681aaa',1,'ios']]], - ['is_5fopen',['is_open',['../classfstream.html#ae4a71c6f3da2f168ec222739d796fc8b',1,'fstream::is_open()'],['../classifstream.html#aaa16c6422ea371995d02159f2e6707b2',1,'ifstream::is_open()'],['../classofstream.html#a9c97eb2eb6e35ae87cf7f7453a67e70a',1,'ofstream::is_open()']]], - ['isbusy',['isBusy',['../class_sd_spi_card.html#aa3cb9139dbc1e6596c6717da2b486328',1,'SdSpiCard']]], - ['isdir',['isDir',['../class_fat_file.html#aef41d65e0f1ce753d18cc9ed691f7de4',1,'FatFile']]], - ['isdirectory',['isDirectory',['../class_file.html#a6ba5bdb943363cda56649238ccb18c27',1,'File']]], - ['isfile',['isFile',['../class_fat_file.html#afcf6270ea8d4a3a5f8e89523bc684e22',1,'FatFile']]], - ['ishidden',['isHidden',['../class_fat_file.html#a7eefe7408f34b6326f0c6e78af7eb05f',1,'FatFile']]], - ['islfn',['isLFN',['../class_fat_file.html#aed36d17f8fde597b6ed9446faec1f7e3',1,'FatFile']]], - ['isopen',['isOpen',['../class_fat_file.html#a4c8a07b081f04aa25839c6f56c739bdc',1,'FatFile']]], - ['isreadonly',['isReadOnly',['../class_fat_file.html#a6872d3acb1e70f81c9c2be2495977583',1,'FatFile']]], - ['isroot',['isRoot',['../class_fat_file.html#aa4a206803a4bf8243be20244c1aef4d2',1,'FatFile']]], - ['isroot32',['isRoot32',['../class_fat_file.html#a1449b294e3a838396c62e47674ca8cf0',1,'FatFile']]], - ['isrootfixed',['isRootFixed',['../class_fat_file.html#a8215bd4b21e11ec83fa88ef226ceb06f',1,'FatFile']]], - ['issubdir',['isSubDir',['../class_fat_file.html#a95b503b17442c2b364a2f53de1b2aeba',1,'FatFile']]], - ['issystem',['isSystem',['../class_fat_file.html#add932e13e5bf32ad467af6ec34824e3c',1,'FatFile']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_9.html b/libraries/SdFat/extras/html/search/functions_9.html deleted file mode 100644 index 61de44a..0000000 --- a/libraries/SdFat/extras/html/search/functions_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_9.js b/libraries/SdFat/extras/html/search/functions_9.js deleted file mode 100644 index 0f3e7bd..0000000 --- a/libraries/SdFat/extras/html/search/functions_9.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['lbn',['lbn',['../class_fat_cache.html#a9f981b53e212f79937e5f6381b169374',1,'FatCache']]], - ['left',['left',['../ios_8h.html#a24a80a73f0a0d2d72d1cb74f49ff4759',1,'ios.h']]], - ['legal83char',['legal83Char',['../class_fat_file.html#a94df8090f16e9666cdc53ca20f6aff90',1,'FatFile']]], - ['length',['length',['../classobufstream.html#ac650708e968b0c0545a3badeb809cf15',1,'obufstream']]], - ['ls',['ls',['../class_fat_file.html#ad49f688a494b351ccbb0102dcfafb925',1,'FatFile::ls(uint8_t flags=0)'],['../class_fat_file.html#acabf31ff85e696fbf384c49428012fea',1,'FatFile::ls(print_t *pr, uint8_t flags=0, uint8_t indent=0)'],['../class_fat_file_system.html#a2398fb37a7a9d5e0dc0ffde6a44a993d',1,'FatFileSystem::ls(uint8_t flags=0)'],['../class_fat_file_system.html#a122b61dbec5051304bcc81bc08b1b99d',1,'FatFileSystem::ls(const char *path, uint8_t flags=0)'],['../class_fat_file_system.html#ae12fb8bfad5c4a8e052dda70a5a0ed93',1,'FatFileSystem::ls(print_t *pr, uint8_t flags=0)'],['../class_fat_file_system.html#aa79695db8e910300507210b3067d39fd',1,'FatFileSystem::ls(print_t *pr, const char *path, uint8_t flags)']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_a.html b/libraries/SdFat/extras/html/search/functions_a.html deleted file mode 100644 index a46b662..0000000 --- a/libraries/SdFat/extras/html/search/functions_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_a.js b/libraries/SdFat/extras/html/search/functions_a.js deleted file mode 100644 index b9e2c88..0000000 --- a/libraries/SdFat/extras/html/search/functions_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['mkdir',['mkdir',['../class_fat_file.html#abab5b9f72cc796388dd4eed01d13d90d',1,'FatFile::mkdir()'],['../class_fat_file_system.html#a231c62c98ba8ac3c2624dc5ad2053ebf',1,'FatFileSystem::mkdir()']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_b.html b/libraries/SdFat/extras/html/search/functions_b.html deleted file mode 100644 index 3b49416..0000000 --- a/libraries/SdFat/extras/html/search/functions_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_b.js b/libraries/SdFat/extras/html/search/functions_b.js deleted file mode 100644 index acaa5a8..0000000 --- a/libraries/SdFat/extras/html/search/functions_b.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['name',['name',['../class_file.html#a7ca23d8d3997c10c221977c64736f575',1,'File']]], - ['noboolalpha',['noboolalpha',['../ios_8h.html#aa6a1ec04992fc8090ca775a39678be01',1,'ios.h']]], - ['noshowbase',['noshowbase',['../ios_8h.html#ab861ff5f863de0ae002b65390dde36b0',1,'ios.h']]], - ['noshowpoint',['noshowpoint',['../ios_8h.html#ad85399d1b75151cf9e2436f2a1ccfc13',1,'ios.h']]], - ['noshowpos',['noshowpos',['../ios_8h.html#a985805b22ffb4ce2f5298168662bd2d7',1,'ios.h']]], - ['noskipws',['noskipws',['../ios_8h.html#a773b847300db776fde08a0b562792131',1,'ios.h']]], - ['nouppercase',['nouppercase',['../ios_8h.html#a24b96fb317e056b34aa84c4bb965a79a',1,'ios.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_c.html b/libraries/SdFat/extras/html/search/functions_c.html deleted file mode 100644 index 57c6455..0000000 --- a/libraries/SdFat/extras/html/search/functions_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_c.js b/libraries/SdFat/extras/html/search/functions_c.js deleted file mode 100644 index 616374f..0000000 --- a/libraries/SdFat/extras/html/search/functions_c.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['obufstream',['obufstream',['../classobufstream.html#a74f7dbcf1131b77d3665aa85d6629722',1,'obufstream::obufstream()'],['../classobufstream.html#a7af0555c5c08ebf9cbc70fc5e2f67db7',1,'obufstream::obufstream(char *buf, size_t size)']]], - ['oct',['oct',['../ios_8h.html#ae661b435df22f8e8e643817f4f915123',1,'ios.h']]], - ['ofstream',['ofstream',['../classofstream.html#ae8a8145adf2cfe1f948ad482ed504b75',1,'ofstream']]], - ['open',['open',['../class_fat_file.html#a5f64576d3d19177ab3cf3812b69abdfa',1,'FatFile::open(FatFileSystem *fs, const char *path, uint8_t oflag)'],['../class_fat_file.html#ad3fa9daaccb4e4179fb88a8ca037aa80',1,'FatFile::open(FatFile *dirFile, uint16_t index, uint8_t oflag)'],['../class_fat_file.html#a211be757679b18708f6b6a36464e4f61',1,'FatFile::open(FatFile *dirFile, const char *path, uint8_t oflag)'],['../class_fat_file.html#ab0e7075062c89f356441f80fc64d03e6',1,'FatFile::open(const char *path, uint8_t oflag=O_READ)'],['../class_fat_file_system.html#a947e4586077a922892b632edac33b67a',1,'FatFileSystem::open(const char *path, uint8_t mode=FILE_READ)'],['../class_fat_file_system.html#a0abfb1f754a8fb559cfa884ee040f56f',1,'FatFileSystem::open(const String &path, uint8_t mode=FILE_READ)'],['../classfstream.html#a85b24d94552991f33caf4c3a83420879',1,'fstream::open()'],['../classifstream.html#a169694d6535fd551fd6db48a2867590e',1,'ifstream::open()'],['../classofstream.html#a4b9d30c742fbe01baa336406c7afdcb2',1,'ofstream::open()']]], - ['opennext',['openNext',['../class_fat_file.html#a8034c4649eb0d26715b1a8a69e73d9d0',1,'FatFile']]], - ['opennextfile',['openNextFile',['../class_file.html#acd72000ab1f6a1ce73ac8fbdc854ae0c',1,'File']]], - ['openroot',['openRoot',['../class_fat_file.html#a7e0c0548fed3a69e7284b91b694439d4',1,'FatFile']]], - ['operator_20bool',['operator bool',['../class_minimum_serial.html#a73a1a2a92604ecb8507afde0022aedd8',1,'MinimumSerial::operator bool()'],['../class_file.html#af171fbf441c899cf71d88b8b0b83d38b',1,'File::operator bool()']]], - ['operator_20const_20void_20_2a',['operator const void *',['../classios.html#a8c2e7e42e31d3d7898a51c0bc837b2a3',1,'ios']]], - ['operator_21',['operator!',['../classios.html#a1ae2d4f1ccdfcaaef6a3a8ac9e28c267',1,'ios']]], - ['operator_3c_3c',['operator<<',['../classostream.html#a4dfc0cdb38bced959ba7cf963db38c30',1,'ostream::operator<<(ostream &(*pf)(ostream &str))'],['../classostream.html#af52c607ea168aff1025222c62cad392f',1,'ostream::operator<<(ios_base &(*pf)(ios_base &str))'],['../classostream.html#a63e3999be154253cf92a45c22e548f51',1,'ostream::operator<<(bool arg)'],['../classostream.html#a618b5d6861dde2347847102b89e0ccfa',1,'ostream::operator<<(const char *arg)'],['../classostream.html#aebe24ff723b806cbee19deb2165d0a5b',1,'ostream::operator<<(const signed char *arg)'],['../classostream.html#ac0cf68ffa4706994f47acb1fa37c601a',1,'ostream::operator<<(const unsigned char *arg)'],['../classostream.html#a1d1e11d2fadaf4c9e34194a1f28572e4',1,'ostream::operator<<(char arg)'],['../classostream.html#ad06f8c6c47667e9c7b14620882c09434',1,'ostream::operator<<(signed char arg)'],['../classostream.html#a69912ec4a8536f289b716e95953d09d7',1,'ostream::operator<<(unsigned char arg)'],['../classostream.html#a8065697d56d5e5d1a0ca50c1916b4955',1,'ostream::operator<<(double arg)'],['../classostream.html#a6c68e418e19d9dcdfe6b1790b2621666',1,'ostream::operator<<(float arg)'],['../classostream.html#a227c47e2b631f29d8873b00290bb4872',1,'ostream::operator<<(short arg)'],['../classostream.html#ace10a3a767dc55faff2cec71cd0a89b1',1,'ostream::operator<<(unsigned short arg)'],['../classostream.html#a62488f7ce7822c777ea27d15223b8e5f',1,'ostream::operator<<(int arg)'],['../classostream.html#ad31df6cd88c7248c01808e40889a7907',1,'ostream::operator<<(unsigned int arg)'],['../classostream.html#a15db9977ed82e503bd3cd1f585acf9e6',1,'ostream::operator<<(long arg)'],['../classostream.html#aaedd44fefa48cf3f0967fcd699a2909d',1,'ostream::operator<<(unsigned long arg)'],['../classostream.html#a2a8febd7c07f078120dd69bb71f25a94',1,'ostream::operator<<(const void *arg)'],['../classostream.html#a99ee8d9265d9354f197d02a3d17116be',1,'ostream::operator<<(const __FlashStringHelper *arg)'],['../iostream_8h.html#aa125ac928f3377cbc6e3cf288b9378fd',1,'operator<<(ostream &os, const setfill &arg): iostream.h'],['../iostream_8h.html#a23d4c29ef8ae37ec7d972d0b66187652',1,'operator<<(ostream &os, const setprecision &arg): iostream.h'],['../iostream_8h.html#a331649f2fdb01ed069dc18a5fad781b1',1,'operator<<(ostream &os, const setw &arg): iostream.h']]], - ['operator_3e_3e',['operator>>',['../classistream.html#aa67d3b8ac67e2097d876a66657ec6067',1,'istream::operator>>(istream &(*pf)(istream &str))'],['../classistream.html#ac6e2f17c80edd19deecdc20f804c424e',1,'istream::operator>>(ios_base &(*pf)(ios_base &str))'],['../classistream.html#a5a0a2c0e06abadb79951ebe34f36d62a',1,'istream::operator>>(ios &(*pf)(ios &str))'],['../classistream.html#a99db66d2e192f02deff0171ad098271f',1,'istream::operator>>(char *str)'],['../classistream.html#addaf5e0f39a15cc213117165dfef0d77',1,'istream::operator>>(char &ch)'],['../classistream.html#a390af4d28adbdc537e436f2121d1c862',1,'istream::operator>>(signed char *str)'],['../classistream.html#a49ab1a573fbf69809d19a52855a30072',1,'istream::operator>>(signed char &ch)'],['../classistream.html#a52e85d01198968330f20026a52cb9f72',1,'istream::operator>>(unsigned char *str)'],['../classistream.html#a74875fcf9ccdc0dca4b46a0b66821798',1,'istream::operator>>(unsigned char &ch)'],['../classistream.html#a3708636d095d360695e9c23335639317',1,'istream::operator>>(bool &arg)'],['../classistream.html#a662060e885a0551c390b7042b3b9e4a5',1,'istream::operator>>(short &arg)'],['../classistream.html#a31a706a374c5a594e400734b8992e2a0',1,'istream::operator>>(unsigned short &arg)'],['../classistream.html#ae8451bc86d83828892d9d67c67b7f02b',1,'istream::operator>>(int &arg)'],['../classistream.html#a35c9847ebf7b822c5ec9742e9de19345',1,'istream::operator>>(unsigned int &arg)'],['../classistream.html#aa26e7f35e74d96803bb0dfb3fb0dc154',1,'istream::operator>>(long &arg)'],['../classistream.html#a5aafa4c7f6615a7f1441962b61b8ef59',1,'istream::operator>>(unsigned long &arg)'],['../classistream.html#af9bf453725ce1d9ef62142a7ee38936e',1,'istream::operator>>(double &arg)'],['../classistream.html#aa8efce6fecab80cf7a17d5dfa31f5aa8',1,'istream::operator>>(float &arg)'],['../classistream.html#a62ef4762feacc64a8acdcbf8f1296936',1,'istream::operator>>(void *&arg)'],['../iostream_8h.html#a4a4079de901e0f3f10c743115bd345b2',1,'operator>>(istream &obj, const setfill &arg): iostream.h'],['../iostream_8h.html#a2f819cd0ccda31a8b648f20534469308',1,'operator>>(istream &is, const setprecision &arg): iostream.h'],['../iostream_8h.html#a8d1b3da6f1074322a6e9e11ff4ce8c33',1,'operator>>(istream &is, const setw &arg): iostream.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_d.html b/libraries/SdFat/extras/html/search/functions_d.html deleted file mode 100644 index 58b3d31..0000000 --- a/libraries/SdFat/extras/html/search/functions_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_d.js b/libraries/SdFat/extras/html/search/functions_d.js deleted file mode 100644 index 0ab9be2..0000000 --- a/libraries/SdFat/extras/html/search/functions_d.js +++ /dev/null @@ -1,23 +0,0 @@ -var searchData= -[ - ['peek',['peek',['../class_print_file.html#a3a2a66f4a0cb69ab4edc66d39997fda7',1,'PrintFile::peek()'],['../class_file.html#a0e5025f39bd584563bfe4b05fc1db268',1,'File::peek()'],['../class_fat_file.html#ac05b7136b887539426856c623869aa3a',1,'FatFile::peek()'],['../classistream.html#a4022265e0ede3698454f1ff59348c14a',1,'istream::peek()']]], - ['position',['position',['../class_file.html#aae991c597c0bc4c5eb44c1f3b06a21ec',1,'File']]], - ['precision',['precision',['../classios__base.html#a9d36cb5a859b74e04f640d2f5e53b41d',1,'ios_base::precision() const '],['../classios__base.html#a5b70cc65fc2c276136fea99bddedb6f0',1,'ios_base::precision(unsigned int n)']]], - ['print',['print',['../class_stdio_stream.html#ad3f6ee8e8ca5dcf6dabfd88199b172e2',1,'StdioStream::print(char c)'],['../class_stdio_stream.html#a1158ea5f9bf041f21b1733b7811c9bb9',1,'StdioStream::print(const char *str)'],['../class_stdio_stream.html#aac4d7b3548d03b8fd70adf12c7ee315c',1,'StdioStream::print(const __FlashStringHelper *str)'],['../class_stdio_stream.html#a26f5b98560b6771225005b073166108b',1,'StdioStream::print(double val, uint8_t prec=2)'],['../class_stdio_stream.html#a06b6eb9f0a7000fdcc73cd6af8d40560',1,'StdioStream::print(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a7129f85c7c5f16867f467731ef84dee9',1,'StdioStream::print(T val)']]], - ['printcreatedatetime',['printCreateDateTime',['../class_fat_file.html#a558530f20314a8d8ee3d1a488fc7f46e',1,'FatFile']]], - ['printdec',['printDec',['../class_stdio_stream.html#ac0a907feb1e4b7e00de99857b4c0a470',1,'StdioStream::printDec(char n)'],['../class_stdio_stream.html#a2707ea97f6113c226781469f4f39ff62',1,'StdioStream::printDec(signed char n)'],['../class_stdio_stream.html#a6e6ac78caa6259a4c4934707bf497a2b',1,'StdioStream::printDec(unsigned char n)'],['../class_stdio_stream.html#a218af88db35f38babf01d6e0a9cdceeb',1,'StdioStream::printDec(int16_t n)'],['../class_stdio_stream.html#a90b2999af94a3578fff7579c2acf8e35',1,'StdioStream::printDec(uint16_t n)'],['../class_stdio_stream.html#ad4591f1234b57f63c1acf0f3392099ac',1,'StdioStream::printDec(int32_t n)'],['../class_stdio_stream.html#a8b6c2c80342abe45e6f564e9bd5bb7ea',1,'StdioStream::printDec(uint32_t n)'],['../class_stdio_stream.html#aaa8921947d4dbbae840d285cb633e8aa',1,'StdioStream::printDec(double value, uint8_t prec)'],['../class_stdio_stream.html#a6a09284b1c6d0769c27916a2e131e749',1,'StdioStream::printDec(float value, uint8_t prec)']]], - ['printfatdate',['printFatDate',['../class_fat_file.html#a8fdb038aafdf3a17ac80b53c063aa73b',1,'FatFile::printFatDate(uint16_t fatDate)'],['../class_fat_file.html#ada5364f66204b1a64afbf9d2e6cd2b0b',1,'FatFile::printFatDate(print_t *pr, uint16_t fatDate)']]], - ['printfattime',['printFatTime',['../class_fat_file.html#a7740731f08ef97de7dfbc9b075c4c7d1',1,'FatFile::printFatTime(uint16_t fatTime)'],['../class_fat_file.html#a4e7e56ba52ca17c602af1b85684b09a9',1,'FatFile::printFatTime(print_t *pr, uint16_t fatTime)']]], - ['printfield',['printField',['../class_fat_file.html#a7478cad0f9e5079311b9e1fa558016ff',1,'FatFile::printField(float value, char term, uint8_t prec=2)'],['../class_fat_file.html#abd3e1747511216462b3ef98167156cbb',1,'FatFile::printField(int16_t value, char term)'],['../class_fat_file.html#a9972c2419c293ef9c382bff666b9ae4d',1,'FatFile::printField(uint16_t value, char term)'],['../class_fat_file.html#a41b3b32dd8482429b74c7af3432d6cf8',1,'FatFile::printField(int32_t value, char term)'],['../class_fat_file.html#a097240f08baadeb1c64b63eab9afb088',1,'FatFile::printField(uint32_t value, char term)'],['../class_stdio_stream.html#a4988592ada39c4b4c603b061f84d183f',1,'StdioStream::printField(double value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a3b90b2317cc391f94784a847f5313c08',1,'StdioStream::printField(float value, char term, uint8_t prec=2)'],['../class_stdio_stream.html#a02c2ad1a2e71e82d238b8386cf3e6c41',1,'StdioStream::printField(T value, char term)']]], - ['printfile',['PrintFile',['../class_print_file.html#adc3bcb2a5c4207de7ff7e9be3ac54233',1,'PrintFile']]], - ['printfilesize',['printFileSize',['../class_fat_file.html#a12a5d2de2737c201aa39ca1bd2ab9c47',1,'FatFile']]], - ['printhex',['printHex',['../class_stdio_stream.html#add39b2b4ec3daa7c8922e96ce5d368bc',1,'StdioStream']]], - ['printhexln',['printHexln',['../class_stdio_stream.html#aec6ebea511489b0ef6b61d9132d93af9',1,'StdioStream']]], - ['println',['println',['../class_stdio_stream.html#ad0cd3acc05a91456f505752377bd405a',1,'StdioStream::println()'],['../class_stdio_stream.html#a3793dd66cf347a1ca0b7b167e948cce9',1,'StdioStream::println(double val, uint8_t prec=2)'],['../class_stdio_stream.html#aac250d041a7844c8db1cbd2d97ecfdaa',1,'StdioStream::println(float val, uint8_t prec=2)'],['../class_stdio_stream.html#a3b14532768d07e6ed89c762d04792c12',1,'StdioStream::println(T val)']]], - ['printmodifydatetime',['printModifyDateTime',['../class_fat_file.html#a05cee5df46a370bf916d3ba597c82e39',1,'FatFile']]], - ['printname',['printName',['../class_fat_file.html#ad1cbc3aeb0f5193b7a26595966da9621',1,'FatFile::printName()'],['../class_fat_file.html#afe18a787fb8640e2d2483370c770f82f',1,'FatFile::printName(print_t *pr)']]], - ['printsfn',['printSFN',['../class_fat_file.html#a791cd7aade71f609aab62ec018aea3c0',1,'FatFile']]], - ['put',['put',['../classostream.html#a11aad8a1efd284ccfa91cbfb78d089bd',1,'ostream']]], - ['putc',['putc',['../class_stdio_stream.html#adf9e552212aad6fc2284da0ee62d04dc',1,'StdioStream']]], - ['putcrlf',['putCRLF',['../class_stdio_stream.html#a09ccc4b6cabc3502c1052e85d94e84ef',1,'StdioStream']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_e.html b/libraries/SdFat/extras/html/search/functions_e.html deleted file mode 100644 index b44e5c5..0000000 --- a/libraries/SdFat/extras/html/search/functions_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_e.js b/libraries/SdFat/extras/html/search/functions_e.js deleted file mode 100644 index cf628ae..0000000 --- a/libraries/SdFat/extras/html/search/functions_e.js +++ /dev/null @@ -1,25 +0,0 @@ -var searchData= -[ - ['rdstate',['rdstate',['../classios.html#aacc57e1e46e23f2f54898ff6a89129a2',1,'ios']]], - ['read',['read',['../class_minimum_serial.html#a4890dd60f2ffb61eba0821cc80d411ad',1,'MinimumSerial::read()'],['../class_file.html#a4c46a1975e66c37977bf07c58ec10b4e',1,'File::read()'],['../class_fat_file.html#a60ae55ff6fe158c2340071d702a363c5',1,'FatFile::read()'],['../class_fat_file.html#a200e6e0553d5b709520c9dfac9ef77dd',1,'FatFile::read(void *buf, size_t nbyte)'],['../class_fat_cache.html#ac2bb0b8f2ce3ab5cd86cf30b4a663cea',1,'FatCache::read()']]], - ['readblock',['readBlock',['../class_base_block_driver.html#a16bb3305f3130253dd7ab6e19aa1b524',1,'BaseBlockDriver::readBlock()'],['../class_sdio_card.html#ac94605c428fa9258106835cceec470d8',1,'SdioCard::readBlock()'],['../class_sd_spi_card.html#a4393634a82c6683ee94d1fefe0be332a',1,'SdSpiCard::readBlock()'],['../class_sd_spi_card_e_x.html#abb69c8bd538dafed1e7f33382ee48d61',1,'SdSpiCardEX::readBlock()']]], - ['readblocks',['readBlocks',['../class_base_block_driver.html#a3a029a2d02fc7cbdd7c15c8d622565c4',1,'BaseBlockDriver::readBlocks()'],['../class_sdio_card.html#a7de36d26a01dc39b7dc122c54ee03b12',1,'SdioCard::readBlocks()'],['../class_sd_spi_card.html#ac630f77c3137923b47c1bd12a9bbfadf',1,'SdSpiCard::readBlocks()'],['../class_sd_spi_card_e_x.html#a9e158cda94fadd12267fe7e63d06622a',1,'SdSpiCardEX::readBlocks()']]], - ['readcid',['readCID',['../class_sdio_card.html#add77777fbcf91cc41e8ec62fda169e79',1,'SdioCard::readCID()'],['../class_sd_spi_card.html#aa073dc42828164883db1b9faeff909ea',1,'SdSpiCard::readCID()']]], - ['readcsd',['readCSD',['../class_sdio_card.html#a1da0ca418c153e24b4e13b4c1e20d450',1,'SdioCard::readCSD()'],['../class_sd_spi_card.html#a9fbea9525e70f6e3602fe5153a5a1290',1,'SdSpiCard::readCSD()']]], - ['readdata',['readData',['../class_sd_spi_card.html#a3a1d1b4b4ceb42fcd41aaf6649482770',1,'SdSpiCard']]], - ['readdir',['readDir',['../class_fat_file.html#a1325afe074c3efecff666678cd9f116a',1,'FatFile']]], - ['readline',['readline',['../class_arduino_in_stream.html#ad4c60f813b8df6dd1d6696a3458de09c',1,'ArduinoInStream']]], - ['readocr',['readOCR',['../class_sdio_card.html#adc583f7a27f57ce55ce474b1379b9303',1,'SdioCard::readOCR()'],['../class_sd_spi_card.html#ab446e49338b3ce834a750ac6dae35f61',1,'SdSpiCard::readOCR()']]], - ['readstart',['readStart',['../class_sd_spi_card.html#a3b1710d11496c32ba4323831e00ac6d1',1,'SdSpiCard']]], - ['readstatus',['readStatus',['../class_sd_spi_card.html#a91d0413599efe0d63c8c2dfe4a12d9ae',1,'SdSpiCard']]], - ['readstop',['readStop',['../class_sd_spi_card.html#afdac7c399fa1ba3f904cf503526e007e',1,'SdSpiCard']]], - ['remove',['remove',['../class_fat_file.html#ac837a537fbcca14c7aa390c5fc9f4e7c',1,'FatFile::remove()'],['../class_fat_file.html#afe820bbb056863e91ec482961c8dc695',1,'FatFile::remove(FatFile *dirFile, const char *path)'],['../class_fat_file_system.html#abf7d7d0dab43083d5be10d70ff4669e4',1,'FatFileSystem::remove()']]], - ['rename',['rename',['../class_fat_file.html#a4b42f2454ff462555c07ea094a92a1e0',1,'FatFile::rename()'],['../class_fat_file_system.html#a0187891a24017b41bd7c5ba63e659e65',1,'FatFileSystem::rename()']]], - ['rewind',['rewind',['../class_fat_file.html#a5aac6e0b3cb08fc8b8668e916a8b0ca5',1,'FatFile::rewind()'],['../class_stdio_stream.html#ad985866675193d2ee1dde9e27b0d08da',1,'StdioStream::rewind()']]], - ['rewinddirectory',['rewindDirectory',['../class_file.html#ae1419603dea25a6c8480b941d7ac63a3',1,'File']]], - ['right',['right',['../ios_8h.html#aee80fd600c5c58a2bebbd48afdcf8280',1,'ios.h']]], - ['rmdir',['rmdir',['../class_fat_file.html#a9515bac181d33e7f0125e88fa2ccd283',1,'FatFile::rmdir()'],['../class_fat_file_system.html#aaed2edc7ff7fedb163458c870bb41b33',1,'FatFileSystem::rmdir()']]], - ['rmrfstar',['rmRfStar',['../class_fat_file.html#ac780a80526f86d3def701ecdc99d8bfe',1,'FatFile']]], - ['rootdirentrycount',['rootDirEntryCount',['../class_fat_volume.html#ab2d483670a0a6a6a4754b23614fe11bc',1,'FatVolume']]], - ['rootdirstart',['rootDirStart',['../class_fat_volume.html#ae9363ebbbae90e895ea56e8fa3f60c13',1,'FatVolume']]] -]; diff --git a/libraries/SdFat/extras/html/search/functions_f.html b/libraries/SdFat/extras/html/search/functions_f.html deleted file mode 100644 index db9a07c..0000000 --- a/libraries/SdFat/extras/html/search/functions_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/functions_f.js b/libraries/SdFat/extras/html/search/functions_f.js deleted file mode 100644 index 858c87a..0000000 --- a/libraries/SdFat/extras/html/search/functions_f.js +++ /dev/null @@ -1,32 +0,0 @@ -var searchData= -[ - ['sdbasefile',['SdBaseFile',['../class_sd_base_file.html#a94d44fc448dc8a06867d490100a57781',1,'SdBaseFile']]], - ['sdfat',['SdFat',['../class_sd_fat.html#a232871b6bbd0f40d6a2883b3c7b0425f',1,'SdFat']]], - ['sdfatex',['SdFatEX',['../class_sd_fat_e_x.html#a86b1fdf8b81dff2fced176d39b851474',1,'SdFatEX']]], - ['sdfile',['SdFile',['../class_sd_file.html#aca7da9858a5e53e10f3c2fa9aeca8485',1,'SdFile']]], - ['sdspicard',['SdSpiCard',['../class_sd_spi_card.html#a0441c5da53bd3bd72fb833fc940f25e8',1,'SdSpiCard']]], - ['seek',['seek',['../class_file.html#a2d41ea52356b769e05e1242685758c08',1,'File']]], - ['seekcur',['seekCur',['../class_fat_file.html#a5812037ea30777cc350698ad26f2c73f',1,'FatFile']]], - ['seekend',['seekEnd',['../class_fat_file.html#a84f677f4e75ef6fa2eb632f4cdf6b486',1,'FatFile']]], - ['seekg',['seekg',['../classistream.html#a52d637b1aeca9946085a4a72e0208aec',1,'istream::seekg(pos_type pos)'],['../classistream.html#a60dd48a3b374fb9cbdc59e1f930dea95',1,'istream::seekg(off_type off, seekdir way)']]], - ['seekp',['seekp',['../classostream.html#a18b453d2770a8852c312cbda919c4687',1,'ostream::seekp(pos_type pos)'],['../classostream.html#af6265a5be29237517b30673667ba4213',1,'ostream::seekp(off_type off, seekdir way)']]], - ['seekset',['seekSet',['../class_fat_file.html#ab067190d25733ed7e697d9890f61fd7a',1,'FatFile']]], - ['setcwd',['setCwd',['../class_fat_file.html#a360ef9c05e677271bed6c0a4d663634c',1,'FatFile']]], - ['setf',['setf',['../classios__base.html#ab5db835cb45bba7684ebf72d9a3cccb4',1,'ios_base::setf(fmtflags fl)'],['../classios__base.html#a74dbc93607ab7d68a87ec326b92b6c81',1,'ios_base::setf(fmtflags fl, fmtflags mask)']]], - ['setfill',['setfill',['../structsetfill.html#abcd87f0632678d277df55406d25c8325',1,'setfill']]], - ['setpos',['setpos',['../class_fat_file.html#acf264de4e3ca36c5e8a39e56173c9044',1,'FatFile']]], - ['setprecision',['setprecision',['../structsetprecision.html#a73fce143591989f56ef887a2ea86ac45',1,'setprecision']]], - ['setstate',['setstate',['../classios.html#aee5d194656bdfb0c8621b23ea2f51afb',1,'ios']]], - ['setw',['setw',['../structsetw.html#afd8bfd075474f63df3c8b44ad47517d2',1,'setw']]], - ['showbase',['showbase',['../ios_8h.html#a73159e1398939807aeae6015dd86f2f4',1,'ios.h']]], - ['showpoint',['showpoint',['../ios_8h.html#a322f5897ace09768cd782f0c8f222770',1,'ios.h']]], - ['showpos',['showpos',['../ios_8h.html#a80798554dbfece679adb0e05eb855943',1,'ios.h']]], - ['size',['size',['../class_file.html#a603d3cd3319142d00a7ebd434970b017',1,'File']]], - ['skipwhite',['skipWhite',['../classistream.html#a0f7468be86d93de5d33fa99095898279',1,'istream']]], - ['skipws',['skipws',['../ios_8h.html#a972282e5d9d894f61c8a54423858c0a4',1,'ios.h']]], - ['spistart',['spiStart',['../class_sd_spi_card.html#aa39feb6ebb269071ac6843a424ac311c',1,'SdSpiCard']]], - ['spistop',['spiStop',['../class_sd_spi_card.html#a1033a4a68d38f52dddf6a1764fcca3e1',1,'SdSpiCard']]], - ['stdiostream',['StdioStream',['../class_stdio_stream.html#a96b2c027e76bfca6d6835c9ae1be2ad2',1,'StdioStream']]], - ['sync',['sync',['../class_fat_file.html#a67f3dc4896c542d695e11aac927f585e',1,'FatFile::sync()'],['../class_fat_cache.html#a4d76d4f46ce5994f6fc4678a7b4f8cf1',1,'FatCache::sync()']]], - ['syncblocks',['syncBlocks',['../class_base_block_driver.html#a5361ff2658d7654bf00b97c54c6aa2aa',1,'BaseBlockDriver::syncBlocks()'],['../class_sdio_card.html#affcd36a5c3a42042fe24716671f06632',1,'SdioCard::syncBlocks()'],['../class_sd_spi_card.html#a1b6d5f412c4ad75c2f575ca75c56c095',1,'SdSpiCard::syncBlocks()'],['../class_sd_spi_card_e_x.html#af4a7c15bae6add50d66d066c0927a021',1,'SdSpiCardEX::syncBlocks()']]] -]; diff --git a/libraries/SdFat/extras/html/search/mag_sel.png b/libraries/SdFat/extras/html/search/mag_sel.png deleted file mode 100644 index 81f6040..0000000 Binary files a/libraries/SdFat/extras/html/search/mag_sel.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/search/nomatches.html b/libraries/SdFat/extras/html/search/nomatches.html deleted file mode 100644 index b1ded27..0000000 --- a/libraries/SdFat/extras/html/search/nomatches.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - -
-
No Matches
-
- - diff --git a/libraries/SdFat/extras/html/search/pages_0.html b/libraries/SdFat/extras/html/search/pages_0.html deleted file mode 100644 index 75d203d..0000000 --- a/libraries/SdFat/extras/html/search/pages_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/pages_0.js b/libraries/SdFat/extras/html/search/pages_0.js deleted file mode 100644 index b18ff99..0000000 --- a/libraries/SdFat/extras/html/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['arduino_20_25sdfat_20library',['Arduino %SdFat Library',['../index.html',1,'']]] -]; diff --git a/libraries/SdFat/extras/html/search/search.css b/libraries/SdFat/extras/html/search/search.css deleted file mode 100644 index 4d7612f..0000000 --- a/libraries/SdFat/extras/html/search/search.css +++ /dev/null @@ -1,271 +0,0 @@ -/*---------------- Search Box */ - -#FSearchBox { - float: left; -} - -#MSearchBox { - white-space : nowrap; - position: absolute; - float: none; - display: inline; - margin-top: 8px; - right: 0px; - width: 170px; - z-index: 102; - background-color: white; -} - -#MSearchBox .left -{ - display:block; - position:absolute; - left:10px; - width:20px; - height:19px; - background:url('search_l.png') no-repeat; - background-position:right; -} - -#MSearchSelect { - display:block; - position:absolute; - width:20px; - height:19px; -} - -.left #MSearchSelect { - left:4px; -} - -.right #MSearchSelect { - right:5px; -} - -#MSearchField { - display:block; - position:absolute; - height:19px; - background:url('search_m.png') repeat-x; - border:none; - width:111px; - margin-left:20px; - padding-left:4px; - color: #909090; - outline: none; - font: 9pt Arial, Verdana, sans-serif; -} - -#FSearchBox #MSearchField { - margin-left:15px; -} - -#MSearchBox .right { - display:block; - position:absolute; - right:10px; - top:0px; - width:20px; - height:19px; - background:url('search_r.png') no-repeat; - background-position:left; -} - -#MSearchClose { - display: none; - position: absolute; - top: 4px; - background : none; - border: none; - margin: 0px 4px 0px 0px; - padding: 0px 0px; - outline: none; -} - -.left #MSearchClose { - left: 6px; -} - -.right #MSearchClose { - right: 2px; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 1; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; -} - -.SRResult { - display: none; -} - -DIV.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/libraries/SdFat/extras/html/search/search.js b/libraries/SdFat/extras/html/search/search.js deleted file mode 100644 index dedce3b..0000000 --- a/libraries/SdFat/extras/html/search/search.js +++ /dev/null @@ -1,791 +0,0 @@ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches.html'; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName == 'DIV' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName == 'DIV' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; e - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_0.js b/libraries/SdFat/extras/html/search/typedefs_0.js deleted file mode 100644 index f638c2b..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['blockdriver',['BlockDriver',['../_block_driver_8h.html#ace97f2377acdc471a01f9f7ec1fd6bbb',1,'BlockDriver.h']]], - ['bpb_5ft',['bpb_t',['../_fat_structs_8h.html#a5c8af240713e05e7e6c959006ced35fb',1,'FatStructs.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_1.html b/libraries/SdFat/extras/html/search/typedefs_1.html deleted file mode 100644 index c44c36f..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_1.js b/libraries/SdFat/extras/html/search/typedefs_1.js deleted file mode 100644 index d85cd76..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['dir_5ft',['dir_t',['../_fat_structs_8h.html#a803db59d4e16a0c54a647afc6a7954e3',1,'FatStructs.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_2.html b/libraries/SdFat/extras/html/search/typedefs_2.html deleted file mode 100644 index d64bac3..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_2.js b/libraries/SdFat/extras/html/search/typedefs_2.js deleted file mode 100644 index c41622d..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_2.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['fat32_5fboot_5ft',['fat32_boot_t',['../_fat_structs_8h.html#a38fa081d004647a828095d31b07ec491',1,'FatStructs.h']]], - ['fat32_5ffsinfo_5ft',['fat32_fsinfo_t',['../_fat_structs_8h.html#a6030ed0fce3a819326a2548407fc8556',1,'FatStructs.h']]], - ['fat_5fboot_5ft',['fat_boot_t',['../_fat_structs_8h.html#aedac4595ee08198da26c14b9891a07d5',1,'FatStructs.h']]], - ['fmtflags',['fmtflags',['../classios__base.html#ac9a54e52cef4f01ac0afd8ae896a3413',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_3.html b/libraries/SdFat/extras/html/search/typedefs_3.html deleted file mode 100644 index 10b9917..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_3.js b/libraries/SdFat/extras/html/search/typedefs_3.js deleted file mode 100644 index 14dc331..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['iostate',['iostate',['../classios__base.html#aef19291eeae0f072ac42c6ba1fe3033c',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_4.html b/libraries/SdFat/extras/html/search/typedefs_4.html deleted file mode 100644 index c1ff64d..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_4.js b/libraries/SdFat/extras/html/search/typedefs_4.js deleted file mode 100644 index 54a6125..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['ldir_5ft',['ldir_t',['../_fat_structs_8h.html#aa1b540ee1eedd1aa9b267d11cba0d9e2',1,'FatStructs.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_5.html b/libraries/SdFat/extras/html/search/typedefs_5.html deleted file mode 100644 index 14adc8e..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_5.js b/libraries/SdFat/extras/html/search/typedefs_5.js deleted file mode 100644 index 765b832..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['mbr_5ft',['mbr_t',['../_fat_structs_8h.html#a7c429e5097f101c8c97663d6c4155bd9',1,'FatStructs.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_6.html b/libraries/SdFat/extras/html/search/typedefs_6.html deleted file mode 100644 index 742e92b..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_6.js b/libraries/SdFat/extras/html/search/typedefs_6.js deleted file mode 100644 index d83d28f..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['off_5ftype',['off_type',['../classios__base.html#a45de7cca0d01da781f4b886179c65c22',1,'ios_base']]], - ['openmode',['openmode',['../classios__base.html#aaa192ec0dccc43050715553a34644523',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_7.html b/libraries/SdFat/extras/html/search/typedefs_7.html deleted file mode 100644 index ad03564..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_7.js b/libraries/SdFat/extras/html/search/typedefs_7.js deleted file mode 100644 index d9134e7..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['part_5ft',['part_t',['../_fat_structs_8h.html#a37251e7d5c69a159be727a3fc8c9d0e6',1,'FatStructs.h']]], - ['pos_5ftype',['pos_type',['../classios__base.html#abe85cf1f181b8bce8022f05ab76aae7f',1,'ios_base']]], - ['print_5ft',['print_t',['../_fat_volume_8h.html#ac62f6449331cfe1a71f29be30efe7890',1,'FatVolume.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/typedefs_8.html b/libraries/SdFat/extras/html/search/typedefs_8.html deleted file mode 100644 index 4e9ac73..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/typedefs_8.js b/libraries/SdFat/extras/html/search/typedefs_8.js deleted file mode 100644 index e8ea77a..0000000 --- a/libraries/SdFat/extras/html/search/typedefs_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['streamsize',['streamsize',['../classios__base.html#a82836e1d3cc603fba8f0b54d323a2dff',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_0.html b/libraries/SdFat/extras/html/search/variables_0.html deleted file mode 100644 index c98c046..0000000 --- a/libraries/SdFat/extras/html/search/variables_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_0.js b/libraries/SdFat/extras/html/search/variables_0.js deleted file mode 100644 index c3aa3dc..0000000 --- a/libraries/SdFat/extras/html/search/variables_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['_5f_5fbrkval',['__brkval',['../_free_stack_8h.html#ad193a2cc121e0d4614a1c21eb463fb56',1,'FreeStack.h']]], - ['_5f_5fbss_5fend',['__bss_end',['../_free_stack_8h.html#adbad17f740c2d7f2bc4833681c93c932',1,'FreeStack.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_1.html b/libraries/SdFat/extras/html/search/variables_1.html deleted file mode 100644 index 3eab7ea..0000000 --- a/libraries/SdFat/extras/html/search/variables_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_1.js b/libraries/SdFat/extras/html/search/variables_1.js deleted file mode 100644 index 4f7759a..0000000 --- a/libraries/SdFat/extras/html/search/variables_1.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['adjustfield',['adjustfield',['../classios__base.html#adaaf735381254aa096ebe3605e8bbd0a',1,'ios_base']]], - ['app',['app',['../classios__base.html#a8380aac3c405730708888fdc68905820',1,'ios_base']]], - ['ate',['ate',['../classios__base.html#aa434355c165500065276d955d8b36e99',1,'ios_base']]], - ['attr',['attr',['../structlong_directory_entry.html#aa36bf1210d0c2b3b80948e5f697eb02e',1,'longDirectoryEntry']]], - ['attributes',['attributes',['../structdirectory_entry.html#a16c6cde55c8175c90935c386f1cfb21a',1,'directoryEntry']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_10.html b/libraries/SdFat/extras/html/search/variables_10.html deleted file mode 100644 index 7e4c8b2..0000000 --- a/libraries/SdFat/extras/html/search/variables_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_10.js b/libraries/SdFat/extras/html/search/variables_10.js deleted file mode 100644 index 887ae38..0000000 --- a/libraries/SdFat/extras/html/search/variables_10.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['reserved1',['reserved1',['../structfat__boot.html#affa7e6efb3ccea19ba7ea0ddadce7463',1,'fat_boot::reserved1()'],['../structfat32__boot.html#a7075c3c00aae071110fd1acb2e6fd599',1,'fat32_boot::reserved1()'],['../structfat32__fsinfo.html#ac24bd4801a60a54e5133ed1bb71bcdaa',1,'fat32_fsinfo::reserved1()']]], - ['reserved2',['reserved2',['../structfat32__fsinfo.html#a9ec0e2756cd7e169268798a558df3814',1,'fat32_fsinfo']]], - ['reservednt',['reservedNT',['../structdirectory_entry.html#afe7d00be85f3b78549b21610050da52b',1,'directoryEntry']]], - ['reservedsectorcount',['reservedSectorCount',['../structbios_parm_block.html#adb4830c345b27293c7d7b97b77f52e01',1,'biosParmBlock::reservedSectorCount()'],['../structfat__boot.html#a13f272a8f780fb43a400f873a3fd7b73',1,'fat_boot::reservedSectorCount()'],['../structfat32__boot.html#a8e490f05ad3552dfbdf8f9332d287ba0',1,'fat32_boot::reservedSectorCount()']]], - ['right',['right',['../classios__base.html#aec064a12730b5d87e718c1864e29ac64',1,'ios_base']]], - ['rootdirentrycount',['rootDirEntryCount',['../structbios_parm_block.html#a9a1b24bb2dbb3a123c4ffc703954d71d',1,'biosParmBlock::rootDirEntryCount()'],['../structfat__boot.html#a2124f89e12307df944f08e6657dbf4af',1,'fat_boot::rootDirEntryCount()'],['../structfat32__boot.html#a94185496fb56c6e0e8078fc3803e9142',1,'fat32_boot::rootDirEntryCount()']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_11.html b/libraries/SdFat/extras/html/search/variables_11.html deleted file mode 100644 index 8dd1dba..0000000 --- a/libraries/SdFat/extras/html/search/variables_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_11.js b/libraries/SdFat/extras/html/search/variables_11.js deleted file mode 100644 index 6e928ac..0000000 --- a/libraries/SdFat/extras/html/search/variables_11.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['sectorspercluster',['sectorsPerCluster',['../structbios_parm_block.html#a45d5e2d8c93a028a074e8ce3dc751ab5',1,'biosParmBlock::sectorsPerCluster()'],['../structfat__boot.html#ab3063726125b16a2ccad719548d79abd',1,'fat_boot::sectorsPerCluster()'],['../structfat32__boot.html#a63ded2780732f166f7b7d36bc6aed702',1,'fat32_boot::sectorsPerCluster()']]], - ['sectorsperfat16',['sectorsPerFat16',['../structbios_parm_block.html#a24d6e5a9069491d5db6dbe747336985b',1,'biosParmBlock::sectorsPerFat16()'],['../structfat__boot.html#a0d5ab13399759acfa571e49b85600db1',1,'fat_boot::sectorsPerFat16()'],['../structfat32__boot.html#aeaa78272cd42b162ea448e1642f75cab',1,'fat32_boot::sectorsPerFat16()']]], - ['sectorsperfat32',['sectorsPerFat32',['../structbios_parm_block.html#ad80429df03a6b80f79b18cb6e1008d64',1,'biosParmBlock::sectorsPerFat32()'],['../structfat32__boot.html#aa00db084ff2f7e25febef321469adeb9',1,'fat32_boot::sectorsPerFat32()']]], - ['sectorspertrack',['sectorsPerTrack',['../structfat__boot.html#a6d5ceaf374e0607be8b8162bf657f282',1,'fat_boot::sectorsPerTrack()'],['../structfat32__boot.html#a9525b2e63f84a5cf62ea20199cedf5de',1,'fat32_boot::sectorsPerTrack()']]], - ['sectorspertrtack',['sectorsPerTrtack',['../structbios_parm_block.html#a7c27cb7f66c2c9d5266d896e8df227c7',1,'biosParmBlock']]], - ['seqpos',['seqPos',['../structfname__t.html#a96b7c779dec8dd568be3290451078a4e',1,'fname_t']]], - ['sfn',['sfn',['../structfname__t.html#a37ed0c108b1feb81be4f8c041a4336bd',1,'fname_t']]], - ['showbase',['showbase',['../classios__base.html#a7e3373ab307feecfc228bc9bdb29cd01',1,'ios_base']]], - ['showpoint',['showpoint',['../classios__base.html#ac9bb172682e157f037bd7fb82a236ee6',1,'ios_base']]], - ['showpos',['showpos',['../classios__base.html#a7bfa4a883933105d10f8ce2693cb9f21',1,'ios_base']]], - ['skipws',['skipws',['../classios__base.html#a64977c777d6e45826d1be9763f17f824',1,'ios_base']]], - ['stream_5fbuf_5fsize',['STREAM_BUF_SIZE',['../_stdio_stream_8h.html#ad9a6150ef11e2616c1a99bc777df17d3',1,'StdioStream.h']]], - ['structsignature',['structSignature',['../structfat32__fsinfo.html#aa4a9ed657a0f58a7a1c75760c3a79fd4',1,'fat32_fsinfo']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_12.html b/libraries/SdFat/extras/html/search/variables_12.html deleted file mode 100644 index bc2b2f6..0000000 --- a/libraries/SdFat/extras/html/search/variables_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_12.js b/libraries/SdFat/extras/html/search/variables_12.js deleted file mode 100644 index 1307ab9..0000000 --- a/libraries/SdFat/extras/html/search/variables_12.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['tailsignature',['tailSignature',['../structfat32__fsinfo.html#a484dd16425e4e687dc914d12309470e0',1,'fat32_fsinfo']]], - ['totalsectors',['totalSectors',['../structpartition_table.html#acf96e59ce648a9a0cf35751c3b6d7730',1,'partitionTable']]], - ['totalsectors16',['totalSectors16',['../structbios_parm_block.html#a686c686fde2fb109bea120f2f434db87',1,'biosParmBlock::totalSectors16()'],['../structfat__boot.html#ac8bd40dd9186882e423e10b0c83e89b7',1,'fat_boot::totalSectors16()'],['../structfat32__boot.html#acbcae2f15475a886f674f932da1deb3f',1,'fat32_boot::totalSectors16()']]], - ['totalsectors32',['totalSectors32',['../structbios_parm_block.html#abead42e130c40e2aa535202e7cb07578',1,'biosParmBlock::totalSectors32()'],['../structfat__boot.html#addeb2dd8f78418edbf544303d44133e2',1,'fat_boot::totalSectors32()'],['../structfat32__boot.html#ab79466016103c2762c6b057dd458d434',1,'fat32_boot::totalSectors32()']]], - ['trunc',['trunc',['../classios__base.html#ae62b8972f37509819e1384214071194b',1,'ios_base']]], - ['type',['type',['../structpartition_table.html#a3861cf276c728c4dd30ca04e74197ee8',1,'partitionTable::type()'],['../structlong_directory_entry.html#a9adb019dbf24cce65c8d1419cd000f91',1,'longDirectoryEntry::type()']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_13.html b/libraries/SdFat/extras/html/search/variables_13.html deleted file mode 100644 index 0486c3e..0000000 --- a/libraries/SdFat/extras/html/search/variables_13.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_13.js b/libraries/SdFat/extras/html/search/variables_13.js deleted file mode 100644 index 9ca0b15..0000000 --- a/libraries/SdFat/extras/html/search/variables_13.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['ungetc_5fbuf_5fsize',['UNGETC_BUF_SIZE',['../_stdio_stream_8h.html#a785dd413c0d7b05f95df82d3453ecacd',1,'StdioStream.h']]], - ['uppercase',['uppercase',['../classios__base.html#ade3db1fe3249e87f4c47a9a8916793d9',1,'ios_base']]], - ['usuallyzero',['usuallyZero',['../structmaster_boot_record.html#afacfc863e98f64053cd9459c6dec948f',1,'masterBootRecord']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_14.html b/libraries/SdFat/extras/html/search/variables_14.html deleted file mode 100644 index e613a52..0000000 --- a/libraries/SdFat/extras/html/search/variables_14.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_14.js b/libraries/SdFat/extras/html/search/variables_14.js deleted file mode 100644 index abe9f74..0000000 --- a/libraries/SdFat/extras/html/search/variables_14.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['volumelabel',['volumeLabel',['../structfat__boot.html#a9ee733f1b1abc0210ec8f9676bba2218',1,'fat_boot::volumeLabel()'],['../structfat32__boot.html#a8e6349f46344145a7320637a58107b3b',1,'fat32_boot::volumeLabel()']]], - ['volumeserialnumber',['volumeSerialNumber',['../structfat__boot.html#ac05e88a0d27f0340ba008834361d2b20',1,'fat_boot::volumeSerialNumber()'],['../structfat32__boot.html#a20768678da224faefd8acf12cabdbfb8',1,'fat32_boot::volumeSerialNumber()']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_15.html b/libraries/SdFat/extras/html/search/variables_15.html deleted file mode 100644 index 5b5841e..0000000 --- a/libraries/SdFat/extras/html/search/variables_15.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_15.js b/libraries/SdFat/extras/html/search/variables_15.js deleted file mode 100644 index 41474a9..0000000 --- a/libraries/SdFat/extras/html/search/variables_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['w',['w',['../structsetw.html#ab48d915a24d3f3365c9eb76e138a6f4e',1,'setw']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_2.html b/libraries/SdFat/extras/html/search/variables_2.html deleted file mode 100644 index 282f35b..0000000 --- a/libraries/SdFat/extras/html/search/variables_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_2.js b/libraries/SdFat/extras/html/search/variables_2.js deleted file mode 100644 index bee02c7..0000000 --- a/libraries/SdFat/extras/html/search/variables_2.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['badbit',['badbit',['../classios__base.html#ac8c2c8f2f6bc9e6ce101c20e88ebce35',1,'ios_base']]], - ['basefield',['basefield',['../classios__base.html#a75ce5482aa207d7aa0265d138b50a102',1,'ios_base']]], - ['begincylinderhigh',['beginCylinderHigh',['../structpartition_table.html#a744f0c7f9ad4c426b10de085b4f52392',1,'partitionTable']]], - ['begincylinderlow',['beginCylinderLow',['../structpartition_table.html#a941fcb4df298f5f73ccca011bf40787a',1,'partitionTable']]], - ['beginhead',['beginHead',['../structpartition_table.html#a7d426694b8cf2151ae38568670a8c845',1,'partitionTable']]], - ['beginsector',['beginSector',['../structpartition_table.html#ae201c11d9671c9efc307c654a2b6c026',1,'partitionTable']]], - ['binary',['binary',['../classios__base.html#ac99947c17c2936d15243671366605602',1,'ios_base']]], - ['boolalpha',['boolalpha',['../classios__base.html#afa74acd95d4bbc7cc3551251aac2bf00',1,'ios_base']]], - ['boot',['boot',['../structpartition_table.html#adf386afb1f33046d8b6a1a0afa780ec9',1,'partitionTable']]], - ['bootcode',['bootCode',['../structfat__boot.html#acf9f5d9f61a6e680e11849f957ecf782',1,'fat_boot::bootCode()'],['../structfat32__boot.html#a7a74880066860140386edf3d9278b9f7',1,'fat32_boot::bootCode()']]], - ['bootsectorsig0',['bootSectorSig0',['../structfat__boot.html#a7951b888af4f357b84dd40af2ef7f29d',1,'fat_boot::bootSectorSig0()'],['../structfat32__boot.html#a1cb46a5427b641a6017a082bc56df1be',1,'fat32_boot::bootSectorSig0()']]], - ['bootsectorsig1',['bootSectorSig1',['../structfat__boot.html#afe8f58668ff594bb2022ce7c06b7726c',1,'fat_boot::bootSectorSig1()'],['../structfat32__boot.html#a53bc302a398f02a86d3b28f25a5ec8e2',1,'fat32_boot::bootSectorSig1()']]], - ['bootsig0',['BOOTSIG0',['../_fat_structs_8h.html#acb7f0c892eb84c121c5698b2605e95e3',1,'FatStructs.h']]], - ['bootsig1',['BOOTSIG1',['../_fat_structs_8h.html#a52f90172e11e828b411c803f29853753',1,'FatStructs.h']]], - ['bootsignature',['bootSignature',['../structfat__boot.html#a712dc388c530e91e4a692e7102d6bdc8',1,'fat_boot::bootSignature()'],['../structfat32__boot.html#ab79a1205277ecab05526fb0bac6e42f6',1,'fat32_boot::bootSignature()']]], - ['bytespersector',['bytesPerSector',['../structbios_parm_block.html#aec24d316af486445d55da14cbbfa6bf4',1,'biosParmBlock::bytesPerSector()'],['../structfat__boot.html#a60b2461f8ebf0ad295a95094e1bd7d65',1,'fat_boot::bytesPerSector()'],['../structfat32__boot.html#a03c7086a8c988257a6678179a67a3fee',1,'fat32_boot::bytesPerSector()']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_3.html b/libraries/SdFat/extras/html/search/variables_3.html deleted file mode 100644 index 36e31b1..0000000 --- a/libraries/SdFat/extras/html/search/variables_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_3.js b/libraries/SdFat/extras/html/search/variables_3.js deleted file mode 100644 index e1851c2..0000000 --- a/libraries/SdFat/extras/html/search/variables_3.js +++ /dev/null @@ -1,17 +0,0 @@ -var searchData= -[ - ['c',['c',['../structsetfill.html#a42ffb4e6135c1274ae827cfed7793a82',1,'setfill']]], - ['cache_5ffor_5fread',['CACHE_FOR_READ',['../class_fat_cache.html#ab4b446515ff9a0cebc747630ddd10c93',1,'FatCache']]], - ['cache_5ffor_5fwrite',['CACHE_FOR_WRITE',['../class_fat_cache.html#a81cb572f33443bd6aee9aa33ec395d0f',1,'FatCache']]], - ['cache_5foption_5fno_5fread',['CACHE_OPTION_NO_READ',['../class_fat_cache.html#adf974f55e53ee0aaa85abb0d7d67181c',1,'FatCache']]], - ['cache_5freserve_5ffor_5fwrite',['CACHE_RESERVE_FOR_WRITE',['../class_fat_cache.html#a49d2896ff525ab77852f76df5c2a09c2',1,'FatCache']]], - ['cache_5fstatus_5fdirty',['CACHE_STATUS_DIRTY',['../class_fat_cache.html#aac8c38e5c545d0f80b13d816117f626e',1,'FatCache']]], - ['cache_5fstatus_5fmask',['CACHE_STATUS_MASK',['../class_fat_cache.html#ab70dc4a2e387f0e9bf392044c702ae32',1,'FatCache']]], - ['cache_5fstatus_5fmirror_5ffat',['CACHE_STATUS_MIRROR_FAT',['../class_fat_cache.html#a45236e1c0a2a098f08d3add0e4b1467a',1,'FatCache']]], - ['chksum',['chksum',['../structlong_directory_entry.html#a60c35531bc0e12f2d764d290244f8cc9',1,'longDirectoryEntry']]], - ['cluster',['cluster',['../struct_fat_pos__t.html#a7b50657b0debaf0e6231af2c74a655fe',1,'FatPos_t']]], - ['codearea',['codeArea',['../structmaster_boot_record.html#a26ca1fb4ebbff2cc1a54153b1dfcd688',1,'masterBootRecord']]], - ['creationdate',['creationDate',['../structdirectory_entry.html#a7b43372794655fe6604d3c17c02302fe',1,'directoryEntry']]], - ['creationtime',['creationTime',['../structdirectory_entry.html#a622bfa70c2cd9006108d7473d737a953',1,'directoryEntry']]], - ['creationtimetenths',['creationTimeTenths',['../structdirectory_entry.html#aa5e1ce5b411b88f005b28a3e7c7c5af6',1,'directoryEntry']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_4.html b/libraries/SdFat/extras/html/search/variables_4.html deleted file mode 100644 index c736635..0000000 --- a/libraries/SdFat/extras/html/search/variables_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_4.js b/libraries/SdFat/extras/html/search/variables_4.js deleted file mode 100644 index 6ca820e..0000000 --- a/libraries/SdFat/extras/html/search/variables_4.js +++ /dev/null @@ -1,23 +0,0 @@ -var searchData= -[ - ['data',['data',['../unioncache__t.html#ae675b7a3a87d809070de111d1d1f1d81',1,'cache_t']]], - ['dec',['dec',['../classios__base.html#a2826aed005e7c1f6858060cddae7971a',1,'ios_base']]], - ['dir',['dir',['../unioncache__t.html#a7396fdbdb7c52bd1d72c5329ff32acd1',1,'cache_t']]], - ['dir_5fatt_5farchive',['DIR_ATT_ARCHIVE',['../_fat_structs_8h.html#a0d0745a2bc191d12f6e3294a890c4b13',1,'FatStructs.h']]], - ['dir_5fatt_5fdefined_5fbits',['DIR_ATT_DEFINED_BITS',['../_fat_structs_8h.html#ad0c6ed5cf186a40f98cc3929b52cf8ee',1,'FatStructs.h']]], - ['dir_5fatt_5fdirectory',['DIR_ATT_DIRECTORY',['../_fat_structs_8h.html#a5fe039a9af7304fc97a0e903acd217f7',1,'FatStructs.h']]], - ['dir_5fatt_5ffile_5ftype_5fmask',['DIR_ATT_FILE_TYPE_MASK',['../_fat_structs_8h.html#af006ada1b85a9761dd9538273c1ee97f',1,'FatStructs.h']]], - ['dir_5fatt_5fhidden',['DIR_ATT_HIDDEN',['../_fat_structs_8h.html#aed394afe98ff4b7876a5815319b6ef94',1,'FatStructs.h']]], - ['dir_5fatt_5flong_5fname',['DIR_ATT_LONG_NAME',['../_fat_structs_8h.html#a0039e1903007eb7383a9fe4b80a3569e',1,'FatStructs.h']]], - ['dir_5fatt_5flong_5fname_5fmask',['DIR_ATT_LONG_NAME_MASK',['../_fat_structs_8h.html#a74ddbd24c315a682449a51a2a35adf39',1,'FatStructs.h']]], - ['dir_5fatt_5fread_5fonly',['DIR_ATT_READ_ONLY',['../_fat_structs_8h.html#ae5efa2fd21e8a563a3a45f8a52538cde',1,'FatStructs.h']]], - ['dir_5fatt_5fsystem',['DIR_ATT_SYSTEM',['../_fat_structs_8h.html#a31c7e5c119c9ebc1237746c985cf385d',1,'FatStructs.h']]], - ['dir_5fatt_5fvolume_5fid',['DIR_ATT_VOLUME_ID',['../_fat_structs_8h.html#a410501be78b30a75224dd4e81a4a1105',1,'FatStructs.h']]], - ['dir_5fname_5f0xe5',['DIR_NAME_0XE5',['../_fat_structs_8h.html#a1696d3db9949d6e22d1c2c595fd14669',1,'FatStructs.h']]], - ['dir_5fname_5fdeleted',['DIR_NAME_DELETED',['../_fat_structs_8h.html#a8c08d4823047505f3231e86c5033d08c',1,'FatStructs.h']]], - ['dir_5fname_5ffree',['DIR_NAME_FREE',['../_fat_structs_8h.html#a0f1f0001102ae59b9e7c9e3b04cc06d8',1,'FatStructs.h']]], - ['dir_5fnt_5flc_5fbase',['DIR_NT_LC_BASE',['../_fat_structs_8h.html#a39f9b8960dba007b537e9b71c25384fe',1,'FatStructs.h']]], - ['dir_5fnt_5flc_5fext',['DIR_NT_LC_EXT',['../_fat_structs_8h.html#a8766a8bbab6ad3da38c1b308545d7572',1,'FatStructs.h']]], - ['disksignature',['diskSignature',['../structmaster_boot_record.html#a77151c641444c0653ff71a253f0423ef',1,'masterBootRecord']]], - ['drivenumber',['driveNumber',['../structfat__boot.html#aebd280b93563b75b9612d3db844b0d16',1,'fat_boot::driveNumber()'],['../structfat32__boot.html#aca415c1a6eb1c242d460a6d0ffa9ebec',1,'fat32_boot::driveNumber()']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_5.html b/libraries/SdFat/extras/html/search/variables_5.html deleted file mode 100644 index 4e9e673..0000000 --- a/libraries/SdFat/extras/html/search/variables_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_5.js b/libraries/SdFat/extras/html/search/variables_5.js deleted file mode 100644 index 09381d7..0000000 --- a/libraries/SdFat/extras/html/search/variables_5.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['endcylinderhigh',['endCylinderHigh',['../structpartition_table.html#a32fea225b8ffd925ad919ffc56e9abda',1,'partitionTable']]], - ['endcylinderlow',['endCylinderLow',['../structpartition_table.html#ad7829e34be70084abe145227b0d18274',1,'partitionTable']]], - ['endhead',['endHead',['../structpartition_table.html#a4a3945bfd3a29f474984cb9f180dbd51',1,'partitionTable']]], - ['endsector',['endSector',['../structpartition_table.html#a27cdc4320c418ed0d833ab163ed77ad7',1,'partitionTable']]], - ['eofbit',['eofbit',['../classios__base.html#af75072b7ef2a931c77a2cb8e7ccda460',1,'ios_base']]], - ['extended_5fboot_5fsig',['EXTENDED_BOOT_SIG',['../_fat_structs_8h.html#aefadfae26e4cc8d57c1ff727a9d1cd20',1,'FatStructs.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_6.html b/libraries/SdFat/extras/html/search/variables_6.html deleted file mode 100644 index 3460c61..0000000 --- a/libraries/SdFat/extras/html/search/variables_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_6.js b/libraries/SdFat/extras/html/search/variables_6.js deleted file mode 100644 index fecfaa2..0000000 --- a/libraries/SdFat/extras/html/search/variables_6.js +++ /dev/null @@ -1,39 +0,0 @@ -var searchData= -[ - ['failbit',['failbit',['../classios__base.html#a36157154001bcce17827db6786e35efd',1,'ios_base']]], - ['fat12eoc',['FAT12EOC',['../_fat_structs_8h.html#af314c45d1d37d09c9e44847326232466',1,'FatStructs.h']]], - ['fat12eoc_5fmin',['FAT12EOC_MIN',['../_fat_structs_8h.html#a48951911b522ebf72bf5561c3402aa15',1,'FatStructs.h']]], - ['fat16',['fat16',['../unioncache__t.html#a8f3a4e9392a7d8ace954fc44c57df887',1,'cache_t']]], - ['fat16eoc',['FAT16EOC',['../_fat_structs_8h.html#afcd95ebc621a46c82b9997c8b9208550',1,'FatStructs.h']]], - ['fat16eoc_5fmin',['FAT16EOC_MIN',['../_fat_structs_8h.html#a2f549b850b74666ba7d922bcb373896e',1,'FatStructs.h']]], - ['fat32',['fat32',['../unioncache__t.html#a57e16421bf460d1ba6cb9ce9a23a4a83',1,'cache_t']]], - ['fat32backbootblock',['fat32BackBootBlock',['../structbios_parm_block.html#a7a4e93790b6e66f090c1551020b099bd',1,'biosParmBlock::fat32BackBootBlock()'],['../structfat32__boot.html#ac93acdae62dab5cd1f7a35187992dbf2',1,'fat32_boot::fat32BackBootBlock()']]], - ['fat32eoc',['FAT32EOC',['../_fat_structs_8h.html#a67a9dbf970f43fadd41a6a9fede60c47',1,'FatStructs.h']]], - ['fat32eoc_5fmin',['FAT32EOC_MIN',['../_fat_structs_8h.html#a8f97a312e990c3f4faf7e98c3256aae5',1,'FatStructs.h']]], - ['fat32flags',['fat32Flags',['../structbios_parm_block.html#a626ac3dc473d764688b8171916eecf44',1,'biosParmBlock::fat32Flags()'],['../structfat32__boot.html#aaa31a140202021bf33aed72765531b3f',1,'fat32_boot::fat32Flags()']]], - ['fat32fsinfo',['fat32FSInfo',['../structbios_parm_block.html#a25ea392d8284e6c1d007cb8fcad4b86c',1,'biosParmBlock::fat32FSInfo()'],['../structfat32__boot.html#a03ff6d1197c08688f20c7aad40206bc4',1,'fat32_boot::fat32FSInfo()']]], - ['fat32mask',['FAT32MASK',['../_fat_structs_8h.html#a7491c79fff0bda3b026ffa098a28d6df',1,'FatStructs.h']]], - ['fat32reserved',['fat32Reserved',['../structbios_parm_block.html#a351f87fe3446b1a71963a30bbdc23218',1,'biosParmBlock::fat32Reserved()'],['../structfat32__boot.html#a3343ad07c664fb7564d68c5194ea7da9',1,'fat32_boot::fat32Reserved()']]], - ['fat32rootcluster',['fat32RootCluster',['../structbios_parm_block.html#a77ca01bd99f746e05dd872cbd2979937',1,'biosParmBlock::fat32RootCluster()'],['../structfat32__boot.html#aa216677f22a95dd86ed2e61604883a13',1,'fat32_boot::fat32RootCluster()']]], - ['fat32version',['fat32Version',['../structbios_parm_block.html#abad4f6f0c14dad9f5b7d43de94e685e8',1,'biosParmBlock::fat32Version()'],['../structfat32__boot.html#a29c37e1163772493efb524c5ca0e1aa8',1,'fat32_boot::fat32Version()']]], - ['fat_5fdefault_5fdate',['FAT_DEFAULT_DATE',['../_fat_structs_8h.html#a42eeb0322bced1f7b527c707f8bd54a4',1,'FatStructs.h']]], - ['fat_5fdefault_5ftime',['FAT_DEFAULT_TIME',['../_fat_structs_8h.html#a23c2510407ec3be457e0e4807644deb2',1,'FatStructs.h']]], - ['fatcount',['fatCount',['../structbios_parm_block.html#a7c03f147c3fb18f0df03d346050af13b',1,'biosParmBlock::fatCount()'],['../structfat__boot.html#a04d3b6a45acf28a80ff909dc1b33da2f',1,'fat_boot::fatCount()'],['../structfat32__boot.html#a7882fa8744bd171bfa1512bd442574bc',1,'fat32_boot::fatCount()']]], - ['fbs',['fbs',['../unioncache__t.html#ad1a4f1c0e8b8ca4d530427dbc920c764',1,'cache_t']]], - ['fbs32',['fbs32',['../unioncache__t.html#ad0613173ed4e83920eedfeb33102848a',1,'cache_t']]], - ['filesize',['fileSize',['../structdirectory_entry.html#ac2445d99b50f925f662952e0ccd26a02',1,'directoryEntry']]], - ['filesystemtype',['fileSystemType',['../structfat__boot.html#aee529e32908406866f3ec3c17c4632fa',1,'fat_boot::fileSystemType()'],['../structfat32__boot.html#a13ee6c63e17d634b6826bfdfa94cbd78',1,'fat32_boot::fileSystemType()']]], - ['firstclusterhigh',['firstClusterHigh',['../structdirectory_entry.html#a3b492598b2b05e8425d2a500443613bd',1,'directoryEntry']]], - ['firstclusterlow',['firstClusterLow',['../structdirectory_entry.html#a74bd660417a9c3501eae353326c14bb9',1,'directoryEntry']]], - ['firstsector',['firstSector',['../structpartition_table.html#a02bbdff840c854dc96fa0b6da8589d86',1,'partitionTable']]], - ['flags',['flags',['../structfname__t.html#a39c69edff13165c6e03b308104e7286d',1,'fname_t']]], - ['fname_5fflag_5flc_5fbase',['FNAME_FLAG_LC_BASE',['../_fat_file_8h.html#a79e43960e1b4eecf274f5faea9c3168c',1,'FatFile.h']]], - ['fname_5fflag_5flc_5fext',['FNAME_FLAG_LC_EXT',['../_fat_file_8h.html#a135b7572768b09661aa38afaceec7296',1,'FatFile.h']]], - ['fname_5fflag_5flost_5fchars',['FNAME_FLAG_LOST_CHARS',['../_fat_file_8h.html#acd45286b7dfc5ba68be18c8c3a9d298d',1,'FatFile.h']]], - ['fname_5fflag_5fmixed_5fcase',['FNAME_FLAG_MIXED_CASE',['../_fat_file_8h.html#a63994c21f3b723a55247f063a1b01c9c',1,'FatFile.h']]], - ['fname_5fflag_5fneed_5flfn',['FNAME_FLAG_NEED_LFN',['../_fat_file_8h.html#a1a041207a19d2fd9a1e2739343ccb29b',1,'FatFile.h']]], - ['freecount',['freeCount',['../structfat32__fsinfo.html#a6c2d84388c0a38a74f7682fd602492c7',1,'fat32_fsinfo']]], - ['fsinfo',['fsinfo',['../unioncache__t.html#a46c7b14586a6248824a97101111cbae1',1,'cache_t']]], - ['fsinfo_5flead_5fsig',['FSINFO_LEAD_SIG',['../_fat_structs_8h.html#a7a7a74a7315ad523e3b0c9dbd44d9a32',1,'FatStructs.h']]], - ['fsinfo_5fstruct_5fsig',['FSINFO_STRUCT_SIG',['../_fat_structs_8h.html#a9bf6b77df7bec6c49d81562c54371e81',1,'FatStructs.h']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_7.html b/libraries/SdFat/extras/html/search/variables_7.html deleted file mode 100644 index 34e7f98..0000000 --- a/libraries/SdFat/extras/html/search/variables_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_7.js b/libraries/SdFat/extras/html/search/variables_7.js deleted file mode 100644 index 26e4052..0000000 --- a/libraries/SdFat/extras/html/search/variables_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['goodbit',['goodbit',['../classios__base.html#a07a00996a6e525b88bdfe7935d5ead05',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_8.html b/libraries/SdFat/extras/html/search/variables_8.html deleted file mode 100644 index 1c5802c..0000000 --- a/libraries/SdFat/extras/html/search/variables_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_8.js b/libraries/SdFat/extras/html/search/variables_8.js deleted file mode 100644 index ad9850f..0000000 --- a/libraries/SdFat/extras/html/search/variables_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['headcount',['headCount',['../structbios_parm_block.html#a2324ca82e2a7da4d91f458fa32a6e239',1,'biosParmBlock::headCount()'],['../structfat__boot.html#ae31da876cd9f48de5268a129218df2c2',1,'fat_boot::headCount()'],['../structfat32__boot.html#a1a5298db692526bc64243766d6b54181',1,'fat32_boot::headCount()']]], - ['hex',['hex',['../classios__base.html#a3608e51eb0a80ea94ddadd5b713a3750',1,'ios_base']]], - ['hidddensectors',['hidddenSectors',['../structbios_parm_block.html#a9413199be8525190d40589f60c22bcab',1,'biosParmBlock::hidddenSectors()'],['../structfat__boot.html#a18f1b4c245fe7bd09f5a9430c005e23a',1,'fat_boot::hidddenSectors()'],['../structfat32__boot.html#ab10224aa4bba42b262fcd3479e279e1f',1,'fat32_boot::hidddenSectors()']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_9.html b/libraries/SdFat/extras/html/search/variables_9.html deleted file mode 100644 index ea8a856..0000000 --- a/libraries/SdFat/extras/html/search/variables_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_9.js b/libraries/SdFat/extras/html/search/variables_9.js deleted file mode 100644 index 58cb2a2..0000000 --- a/libraries/SdFat/extras/html/search/variables_9.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['in',['in',['../classios__base.html#ae5432e3c269064480652c4602f5f74ad',1,'ios_base']]], - ['internal',['internal',['../classios__base.html#afc720b7f6f461ec8e9cf5505059e5d7c',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_a.html b/libraries/SdFat/extras/html/search/variables_a.html deleted file mode 100644 index f2e7496..0000000 --- a/libraries/SdFat/extras/html/search/variables_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_a.js b/libraries/SdFat/extras/html/search/variables_a.js deleted file mode 100644 index e043c52..0000000 --- a/libraries/SdFat/extras/html/search/variables_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['jump',['jump',['../structfat__boot.html#a83f9f2d1d0130f25f34c90dfc82e3751',1,'fat_boot::jump()'],['../structfat32__boot.html#a2d93fc193a64ecffbd71ead207fe4810',1,'fat32_boot::jump()']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_b.html b/libraries/SdFat/extras/html/search/variables_b.html deleted file mode 100644 index cd7dfb6..0000000 --- a/libraries/SdFat/extras/html/search/variables_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_b.js b/libraries/SdFat/extras/html/search/variables_b.js deleted file mode 100644 index 76ff7e4..0000000 --- a/libraries/SdFat/extras/html/search/variables_b.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['lastaccessdate',['lastAccessDate',['../structdirectory_entry.html#abca70dc5c5fcbe199fd78df010111331',1,'directoryEntry']]], - ['lastwritedate',['lastWriteDate',['../structdirectory_entry.html#a12b2e7cf87482a942a0b5d3df6c51468',1,'directoryEntry']]], - ['lastwritetime',['lastWriteTime',['../structdirectory_entry.html#a7bab435322d1928f66fbce53ee1f402d',1,'directoryEntry']]], - ['ldir_5fname1_5fdim',['LDIR_NAME1_DIM',['../_fat_structs_8h.html#af843af29c67dd30ca7c5684806bf02fc',1,'FatStructs.h']]], - ['ldir_5fname2_5fdim',['LDIR_NAME2_DIM',['../_fat_structs_8h.html#a99cae591c59e261f54617617e173e7e0',1,'FatStructs.h']]], - ['ldir_5fname3_5fdim',['LDIR_NAME3_DIM',['../_fat_structs_8h.html#a99fbd27fa9e5003a8d77ca7fc14d2090',1,'FatStructs.h']]], - ['ldir_5ford_5flast_5flong_5fentry',['LDIR_ORD_LAST_LONG_ENTRY',['../_fat_structs_8h.html#a8cfb60b9eaf04dcdc6e4f5a466af5540',1,'FatStructs.h']]], - ['leadsignature',['leadSignature',['../structfat32__fsinfo.html#aa8ee056cc1beb1355e15610c1beba5e3',1,'fat32_fsinfo']]], - ['left',['left',['../classios__base.html#ad364df9af2cfde1f40bd8e10c62bb215',1,'ios_base']]], - ['len',['len',['../structfname__t.html#a471184cc4c2671526d7d6fb80b2fe20c',1,'fname_t']]], - ['lfn',['lfn',['../structfname__t.html#a76ffd7abd5b7d3acf90b329c905770fd',1,'fname_t']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_c.html b/libraries/SdFat/extras/html/search/variables_c.html deleted file mode 100644 index 4f03f98..0000000 --- a/libraries/SdFat/extras/html/search/variables_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_c.js b/libraries/SdFat/extras/html/search/variables_c.js deleted file mode 100644 index 9df4d76..0000000 --- a/libraries/SdFat/extras/html/search/variables_c.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['mbr',['mbr',['../unioncache__t.html#a6ac10bfb1ebb1139c448456679663bb6',1,'cache_t']]], - ['mbrsig0',['mbrSig0',['../structmaster_boot_record.html#a42b0b413ecb21ac5314d4f6bca05308f',1,'masterBootRecord']]], - ['mbrsig1',['mbrSig1',['../structmaster_boot_record.html#aafbbcb4f6a2d1181c6458d4c9603df4f',1,'masterBootRecord']]], - ['mediatype',['mediaType',['../structbios_parm_block.html#a4237e7c3ba247516d546c149954e5042',1,'biosParmBlock::mediaType()'],['../structfat__boot.html#a63eaf7185663369af2527309634d3c90',1,'fat_boot::mediaType()'],['../structfat32__boot.html#a3b1ab5d2dc872c0d80cd4f34622de417',1,'fat32_boot::mediaType()']]], - ['mustbezero',['mustBeZero',['../structlong_directory_entry.html#af3055930e869875e49b32ef0b49c3649',1,'longDirectoryEntry']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_d.html b/libraries/SdFat/extras/html/search/variables_d.html deleted file mode 100644 index ec2ae78..0000000 --- a/libraries/SdFat/extras/html/search/variables_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_d.js b/libraries/SdFat/extras/html/search/variables_d.js deleted file mode 100644 index 786e88f..0000000 --- a/libraries/SdFat/extras/html/search/variables_d.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['name',['name',['../structdirectory_entry.html#a05dc993ea55a1a742de5970541a31ecb',1,'directoryEntry']]], - ['name1',['name1',['../structlong_directory_entry.html#a629f1ca5ba2ccce6cac5295578b6e7b4',1,'longDirectoryEntry']]], - ['name2',['name2',['../structlong_directory_entry.html#ad763b5a3da4b8d326d9888493fbb819a',1,'longDirectoryEntry']]], - ['name3',['name3',['../structlong_directory_entry.html#a6f14c81b7d224dc4431217f92601257a',1,'longDirectoryEntry']]], - ['nextfree',['nextFree',['../structfat32__fsinfo.html#a539b3bb0a2ead9df417df9ac8b6b1606',1,'fat32_fsinfo']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_e.html b/libraries/SdFat/extras/html/search/variables_e.html deleted file mode 100644 index 704caba..0000000 --- a/libraries/SdFat/extras/html/search/variables_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_e.js b/libraries/SdFat/extras/html/search/variables_e.js deleted file mode 100644 index e40f1bb..0000000 --- a/libraries/SdFat/extras/html/search/variables_e.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['oct',['oct',['../classios__base.html#a4155540f8d3ffdb8d25a2f50ee4df08f',1,'ios_base']]], - ['oemid',['oemId',['../structfat__boot.html#adc034212201e879fea1eb44db43e55a5',1,'fat_boot::oemId()'],['../structfat32__boot.html#af623a473a960ea20904dce0edfb6bb9d',1,'fat32_boot::oemId()']]], - ['ord',['ord',['../structlong_directory_entry.html#a1b65e85dd63d0708cd1b875ce4e5e338',1,'longDirectoryEntry']]], - ['out',['out',['../classios__base.html#a4c1d517774c0d11af3424e90395f26ae',1,'ios_base']]] -]; diff --git a/libraries/SdFat/extras/html/search/variables_f.html b/libraries/SdFat/extras/html/search/variables_f.html deleted file mode 100644 index 3f6c92f..0000000 --- a/libraries/SdFat/extras/html/search/variables_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/libraries/SdFat/extras/html/search/variables_f.js b/libraries/SdFat/extras/html/search/variables_f.js deleted file mode 100644 index 64a608f..0000000 --- a/libraries/SdFat/extras/html/search/variables_f.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['p',['p',['../structsetprecision.html#a7cb7bb355a303fa39a8035615bde9348',1,'setprecision']]], - ['part',['part',['../structmaster_boot_record.html#aa4e294e50f311635c10c92f4c99227c5',1,'masterBootRecord']]], - ['position',['position',['../struct_fat_pos__t.html#a8e14c6f2705777502b543452743eaa26',1,'FatPos_t']]] -]; diff --git a/libraries/SdFat/extras/html/splitbar.png b/libraries/SdFat/extras/html/splitbar.png deleted file mode 100644 index fe895f2..0000000 Binary files a/libraries/SdFat/extras/html/splitbar.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/struct_fat_pos__t-members.html b/libraries/SdFat/extras/html/struct_fat_pos__t-members.html deleted file mode 100644 index b4b3053..0000000 --- a/libraries/SdFat/extras/html/struct_fat_pos__t-members.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
FatPos_t Member List
-
-
- -

This is the complete list of members for FatPos_t, including all inherited members.

- - - - -
clusterFatPos_t
FatPos_t() (defined in FatPos_t)FatPos_tinline
positionFatPos_t
- - - - diff --git a/libraries/SdFat/extras/html/struct_fat_pos__t.html b/libraries/SdFat/extras/html/struct_fat_pos__t.html deleted file mode 100644 index c21fd63..0000000 --- a/libraries/SdFat/extras/html/struct_fat_pos__t.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - -SdFat: FatPos_t Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
FatPos_t Struct Reference
-
-
- -

Internal type for file position - do not use in user apps. - More...

- -

#include <FatFile.h>

- - - - - - -

-Public Attributes

uint32_t cluster
 
uint32_t position
 
-

Detailed Description

-

Internal type for file position - do not use in user apps.

-

Member Data Documentation

- -
-
- - - - -
uint32_t FatPos_t::cluster
-
-

cluster for position

- -
-
- -
-
- - - - -
uint32_t FatPos_t::position
-
-

stream position

- -
-
-
The documentation for this struct was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/FatFile.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/structbios_parm_block-members.html b/libraries/SdFat/extras/html/structbios_parm_block-members.html deleted file mode 100644 index 7fc6fae..0000000 --- a/libraries/SdFat/extras/html/structbios_parm_block-members.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
biosParmBlock Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structbios_parm_block.html b/libraries/SdFat/extras/html/structbios_parm_block.html deleted file mode 100644 index 4a79561..0000000 --- a/libraries/SdFat/extras/html/structbios_parm_block.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - -SdFat: biosParmBlock Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
biosParmBlock Struct Reference
-
-
- -

BIOS parameter block. - More...

- -

#include <FatStructs.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

uint16_t bytesPerSector
 
uint16_t fat32BackBootBlock
 
uint16_t fat32Flags
 
uint16_t fat32FSInfo
 
uint8_t fat32Reserved [12]
 
uint32_t fat32RootCluster
 
uint16_t fat32Version
 
uint8_t fatCount
 
uint16_t headCount
 
uint32_t hidddenSectors
 
uint8_t mediaType
 
uint16_t reservedSectorCount
 
uint16_t rootDirEntryCount
 
uint8_t sectorsPerCluster
 
uint16_t sectorsPerFat16
 
uint32_t sectorsPerFat32
 
uint16_t sectorsPerTrtack
 
uint16_t totalSectors16
 
uint32_t totalSectors32
 
-

Detailed Description

-

BIOS parameter block.

-

The BIOS parameter block describes the physical layout of a FAT volume.

-

Member Data Documentation

- -
-
- - - - -
uint16_t biosParmBlock::bytesPerSector
-
-

Count of bytes per sector. This value may take on only the following values: 512, 1024, 2048 or 4096

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::fat32BackBootBlock
-
-

If nonzero, indicates the sector number in the reserved area of the volume of a copy of the boot record. Usually 6. No value other than 6 is recommended.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::fat32Flags
-
-

This field is only defined for FAT32 media and does not exist on FAT12 and FAT16 media. Bits 0-3 – Zero-based number of active FAT. Only valid if mirroring is disabled. Bits 4-6 – Reserved. Bit 7 – 0 means the FAT is mirrored at runtime into all FATs. – 1 means only one FAT is active; it is the one referenced in bits 0-3. Bits 8-15 – Reserved.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::fat32FSInfo
-
-

Sector number of FSINFO structure in the reserved area of the FAT32 volume. Usually 1.

- -
-
- -
-
- - - - -
uint8_t biosParmBlock::fat32Reserved[12]
-
-

Reserved for future expansion. Code that formats FAT32 volumes should always set all of the bytes of this field to 0.

- -
-
- -
-
- - - - -
uint32_t biosParmBlock::fat32RootCluster
-
-

Cluster number of the first cluster of the root directory for FAT32. This usually 2 but not required to be 2.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::fat32Version
-
-

FAT32 version. High byte is major revision number. Low byte is minor revision number. Only 0.0 define.

- -
-
- -
-
- - - - -
uint8_t biosParmBlock::fatCount
-
-

The count of FAT data structures on the volume. This field should always contain the value 2 for any FAT volume of any type.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::headCount
-
-

Number of heads for interrupt 0x13. Not used otherwise.

- -
-
- -
-
- - - - -
uint32_t biosParmBlock::hidddenSectors
-
-

Count of hidden sectors preceding the partition that contains this FAT volume. This field is generally only relevant for media visible on interrupt 0x13.

- -
-
- -
-
- - - - -
uint8_t biosParmBlock::mediaType
-
-

This dates back to the old MS-DOS 1.x media determination and is no longer usually used for anything. 0xF8 is the standard value for fixed (nonremovable) media. For removable media, 0xF0 is frequently used. Legal values are 0xF0 or 0xF8-0xFF.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::reservedSectorCount
-
-

Number of sectors before the first FAT. This value must not be zero.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::rootDirEntryCount
-
-

For FAT12 and FAT16 volumes, this field contains the count of 32-byte directory entries in the root directory. For FAT32 volumes, this field must be set to 0. For FAT12 and FAT16 volumes, this value should always specify a count that when multiplied by 32 results in a multiple of bytesPerSector. FAT16 volumes should use the value 512.

- -
-
- -
-
- - - - -
uint8_t biosParmBlock::sectorsPerCluster
-
-

Number of sectors per allocation unit. This value must be a power of 2 that is greater than 0. The legal values are 1, 2, 4, 8, 16, 32, 64, and 128.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::sectorsPerFat16
-
-

Count of sectors occupied by one FAT on FAT12/FAT16 volumes. On FAT32 volumes this field must be 0, and sectorsPerFat32 contains the FAT size count.

- -
-
- -
-
- - - - -
uint32_t biosParmBlock::sectorsPerFat32
-
-

Count of sectors occupied by one FAT on FAT32 volumes.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::sectorsPerTrtack
-
-

Sectors per track for interrupt 0x13. Not used otherwise.

- -
-
- -
-
- - - - -
uint16_t biosParmBlock::totalSectors16
-
-

This field is the old 16-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors32 must be nonzero. For FAT32 volumes, this field must be 0. For FAT12 and FAT16 volumes, this field contains the sector count, and totalSectors32 is 0 if the total sector count fits (is less than 0x10000).

- -
-
- -
-
- - - - -
uint32_t biosParmBlock::totalSectors32
-
-

This field is the new 32-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors16 must be nonzero.

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structdirectory_entry-members.html b/libraries/SdFat/extras/html/structdirectory_entry-members.html deleted file mode 100644 index 9bfada4..0000000 --- a/libraries/SdFat/extras/html/structdirectory_entry-members.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
directoryEntry Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structdirectory_entry.html b/libraries/SdFat/extras/html/structdirectory_entry.html deleted file mode 100644 index 70c64b3..0000000 --- a/libraries/SdFat/extras/html/structdirectory_entry.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - -SdFat: directoryEntry Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
directoryEntry Struct Reference
-
-
- -

FAT short directory entry. - More...

- -

#include <FatStructs.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

uint8_t attributes
 
uint16_t creationDate
 
uint16_t creationTime
 
uint8_t creationTimeTenths
 
uint32_t fileSize
 
uint16_t firstClusterHigh
 
uint16_t firstClusterLow
 
uint16_t lastAccessDate
 
uint16_t lastWriteDate
 
uint16_t lastWriteTime
 
uint8_t name [11]
 
uint8_t reservedNT
 
-

Detailed Description

-

FAT short directory entry.

-

Short means short 8.3 name, not the entry size.

-

Date Format. A FAT directory entry date stamp is a 16-bit field that is basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the 16-bit word):

-

Bits 9-15: Count of years from 1980, valid value range 0-127 inclusive (1980-2107).

-

Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive.

-

Bits 0-4: Day of month, valid value range 1-31 inclusive.

-

Time Format. A FAT directory entry time stamp is a 16-bit field that has a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the 16-bit word).

-

Bits 11-15: Hours, valid value range 0-23 inclusive.

-

Bits 5-10: Minutes, valid value range 0-59 inclusive.

-

Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds).

-

The valid time range is from Midnight 00:00:00 to 23:59:58.

-

Member Data Documentation

- -
-
- - - - -
uint8_t directoryEntry::attributes
-
-

Entry attributes.

-

The upper two bits of the attribute byte are reserved and should always be set to 0 when a file is created and never modified or looked at after that. See defines that begin with DIR_ATT_.

- -
-
- -
-
- - - - -
uint16_t directoryEntry::creationDate
-
-

Date file was created.

- -
-
- -
-
- - - - -
uint16_t directoryEntry::creationTime
-
-

Time file was created.

- -
-
- -
-
- - - - -
uint8_t directoryEntry::creationTimeTenths
-
-

The granularity of the seconds part of creationTime is 2 seconds so this field is a count of tenths of a second and its valid value range is 0-199 inclusive. (WHG note - seems to be hundredths)

- -
-
- -
-
- - - - -
uint32_t directoryEntry::fileSize
-
-

32-bit unsigned holding this file's size in bytes.

- -
-
- -
-
- - - - -
uint16_t directoryEntry::firstClusterHigh
-
-

High word of this entry's first cluster number (always 0 for a FAT12 or FAT16 volume).

- -
-
- -
-
- - - - -
uint16_t directoryEntry::firstClusterLow
-
-

Low word of this entry's first cluster number.

- -
-
- -
-
- - - - -
uint16_t directoryEntry::lastAccessDate
-
-

Last access date. Note that there is no last access time, only a date. This is the date of last read or write. In the case of a write, this should be set to the same date as lastWriteDate.

- -
-
- -
-
- - - - -
uint16_t directoryEntry::lastWriteDate
-
-

Date of last write. File creation is considered a write.

- -
-
- -
-
- - - - -
uint16_t directoryEntry::lastWriteTime
-
-

Time of last write. File creation is considered a write.

- -
-
- -
-
- - - - -
uint8_t directoryEntry::name[11]
-
-

Short 8.3 name.

-

The first eight bytes contain the file name with blank fill. The last three bytes contain the file extension with blank fill.

- -
-
- -
-
- - - - -
uint8_t directoryEntry::reservedNT
-
-

Reserved for use by Windows NT. Set value to 0 when a file is created and never modify or look at it after that.

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structfat32__boot-members.html b/libraries/SdFat/extras/html/structfat32__boot-members.html deleted file mode 100644 index e384899..0000000 --- a/libraries/SdFat/extras/html/structfat32__boot-members.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
fat32_boot Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structfat32__boot.html b/libraries/SdFat/extras/html/structfat32__boot.html deleted file mode 100644 index e63e330..0000000 --- a/libraries/SdFat/extras/html/structfat32__boot.html +++ /dev/null @@ -1,564 +0,0 @@ - - - - - - -SdFat: fat32_boot Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
fat32_boot Struct Reference
-
-
- -

Boot sector for a FAT32 volume. - More...

- -

#include <FatStructs.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

uint8_t bootCode [420]
 
uint8_t bootSectorSig0
 
uint8_t bootSectorSig1
 
uint8_t bootSignature
 
uint16_t bytesPerSector
 
uint8_t driveNumber
 
uint16_t fat32BackBootBlock
 
uint16_t fat32Flags
 
uint16_t fat32FSInfo
 
uint8_t fat32Reserved [12]
 
uint32_t fat32RootCluster
 
uint16_t fat32Version
 
uint8_t fatCount
 
char fileSystemType [8]
 
uint16_t headCount
 
uint32_t hidddenSectors
 
uint8_t jump [3]
 
uint8_t mediaType
 
char oemId [8]
 
uint8_t reserved1
 
uint16_t reservedSectorCount
 
uint16_t rootDirEntryCount
 
uint8_t sectorsPerCluster
 
uint16_t sectorsPerFat16
 
uint32_t sectorsPerFat32
 
uint16_t sectorsPerTrack
 
uint16_t totalSectors16
 
uint32_t totalSectors32
 
char volumeLabel [11]
 
uint32_t volumeSerialNumber
 
-

Detailed Description

-

Boot sector for a FAT32 volume.

-

Member Data Documentation

- -
-
- - - - -
uint8_t fat32_boot::bootCode[420]
-
-

X86 boot code

- -
-
- -
-
- - - - -
uint8_t fat32_boot::bootSectorSig0
-
-

must be 0X55

- -
-
- -
-
- - - - -
uint8_t fat32_boot::bootSectorSig1
-
-

must be 0XAA

- -
-
- -
-
- - - - -
uint8_t fat32_boot::bootSignature
-
-

0X29 if next three fields are valid

- -
-
- -
-
- - - - -
uint16_t fat32_boot::bytesPerSector
-
-

The size of a hardware sector. Valid decimal values for this field are 512, 1024, 2048, and 4096. For most disks used in the United States, the value of this field is 512.

- -
-
- -
-
- - - - -
uint8_t fat32_boot::driveNumber
-
-

Related to the BIOS physical drive number. Floppy drives are identified as 0x00 and physical hard disks are identified as 0x80, regardless of the number of physical disk drives. Typically, this value is set prior to issuing an INT 13h BIOS call to specify the device to access. The value is only relevant if the device is a boot device.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::fat32BackBootBlock
-
-

If non-zero, indicates the sector number in the reserved area of the volume of a copy of the boot record. Usually 6. No value other than 6 is recommended.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::fat32Flags
-
-

This field is only defined for FAT32 media and does not exist on FAT12 and FAT16 media. Bits 0-3 – Zero-based number of active FAT. Only valid if mirroring is disabled. Bits 4-6 – Reserved. Bit 7 – 0 means the FAT is mirrored at runtime into all FATs. – 1 means only one FAT is active; it is the one referenced in bits 0-3. Bits 8-15 – Reserved.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::fat32FSInfo
-
-

Sector number of FSINFO structure in the reserved area of the FAT32 volume. Usually 1.

- -
-
- -
-
- - - - -
uint8_t fat32_boot::fat32Reserved[12]
-
-

Reserved for future expansion. Code that formats FAT32 volumes should always set all of the bytes of this field to 0.

- -
-
- -
-
- - - - -
uint32_t fat32_boot::fat32RootCluster
-
-

Cluster number of the first cluster of the root directory for FAT32. This usually 2 but not required to be 2.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::fat32Version
-
-

FAT32 version. High byte is major revision number. Low byte is minor revision number. Only 0.0 define.

- -
-
- -
-
- - - - -
uint8_t fat32_boot::fatCount
-
-

The number of copies of the FAT on the volume. The value of this field is always 2.

- -
-
- -
-
- - - - -
char fat32_boot::fileSystemType[8]
-
-

A text field with a value of FAT32.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::headCount
-
-

Number of heads for interrupt 0x13. Not used otherwise.

- -
-
- -
-
- - - - -
uint32_t fat32_boot::hidddenSectors
-
-

Count of hidden sectors preceding the partition that contains this FAT volume. This field is generally only relevant for media visible on interrupt 0x13.

- -
-
- -
-
- - - - -
uint8_t fat32_boot::jump[3]
-
-

The first three bytes of the boot sector must be valid, executable x 86-based CPU instructions. This includes a jump instruction that skips the next non-executable bytes.

- -
-
- -
-
- - - - -
uint8_t fat32_boot::mediaType
-
-

This dates back to the old MS-DOS 1.x media determination and is no longer usually used for anything. 0xF8 is the standard value for fixed (non-removable) media. For removable media, 0xF0 is frequently used. Legal values are 0xF0 or 0xF8-0xFF.

- -
-
- -
-
- - - - -
char fat32_boot::oemId[8]
-
-

This is typically a string of characters that identifies the operating system that formatted the volume.

- -
-
- -
-
- - - - -
uint8_t fat32_boot::reserved1
-
-

used by Windows NT - should be zero for FAT

- -
-
- -
-
- - - - -
uint16_t fat32_boot::reservedSectorCount
-
-

The number of sectors preceding the start of the first FAT, including the boot sector. Must not be zero

- -
-
- -
-
- - - - -
uint16_t fat32_boot::rootDirEntryCount
-
-

FAT12/FAT16 only. For FAT32 volumes, this field must be set to 0.

- -
-
- -
-
- - - - -
uint8_t fat32_boot::sectorsPerCluster
-
-

Number of sectors per allocation unit. This value must be a power of 2 that is greater than 0. The legal values are 1, 2, 4, 8, 16, 32, 64, and 128. 128 should be avoided.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::sectorsPerFat16
-
-

On FAT32 volumes this field must be 0, and sectorsPerFat32 contains the FAT size count.

- -
-
- -
-
- - - - -
uint32_t fat32_boot::sectorsPerFat32
-
-

Count of sectors occupied by one FAT on FAT32 volumes.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::sectorsPerTrack
-
-

Sectors per track for interrupt 0x13. Not used otherwise.

- -
-
- -
-
- - - - -
uint16_t fat32_boot::totalSectors16
-
-

For FAT32 volumes, this field must be 0.

- -
-
- -
-
- - - - -
uint32_t fat32_boot::totalSectors32
-
-

Contains the total number of sectors in the FAT32 volume.

- -
-
- -
-
- - - - -
char fat32_boot::volumeLabel[11]
-
-

A field once used to store the volume label. The volume label is now stored as a special file in the root directory.

- -
-
- -
-
- - - - -
uint32_t fat32_boot::volumeSerialNumber
-
-

A random serial number created when formatting a disk, which helps to distinguish between disks. Usually generated by combining date and time.

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structfat32__fsinfo-members.html b/libraries/SdFat/extras/html/structfat32__fsinfo-members.html deleted file mode 100644 index 44fe1c6..0000000 --- a/libraries/SdFat/extras/html/structfat32__fsinfo-members.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
fat32_fsinfo Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structfat32__fsinfo.html b/libraries/SdFat/extras/html/structfat32__fsinfo.html deleted file mode 100644 index 3ca8487..0000000 --- a/libraries/SdFat/extras/html/structfat32__fsinfo.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - -SdFat: fat32_fsinfo Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
fat32_fsinfo Struct Reference
-
-
- -

FSINFO sector for a FAT32 volume. - More...

- -

#include <FatStructs.h>

- - - - - - - - - - - - - - - - -

-Public Attributes

uint32_t freeCount
 
uint32_t leadSignature
 
uint32_t nextFree
 
uint8_t reserved1 [480]
 
uint8_t reserved2 [12]
 
uint32_t structSignature
 
uint8_t tailSignature [4]
 
-

Detailed Description

-

FSINFO sector for a FAT32 volume.

-

Member Data Documentation

- -
-
- - - - -
uint32_t fat32_fsinfo::freeCount
-
-

Contains the last known free cluster count on the volume. If the value is 0xFFFFFFFF, then the free count is unknown and must be computed. Any other value can be used, but is not necessarily correct. It should be range checked at least to make sure it is <= volume cluster count.

- -
-
- -
-
- - - - -
uint32_t fat32_fsinfo::leadSignature
-
-

must be 0X52, 0X52, 0X61, 0X41

- -
-
- -
-
- - - - -
uint32_t fat32_fsinfo::nextFree
-
-

This is a hint for the FAT driver. It indicates the cluster number at which the driver should start looking for free clusters. If the value is 0xFFFFFFFF, then there is no hint and the driver should start looking at cluster 2.

- -
-
- -
-
- - - - -
uint8_t fat32_fsinfo::reserved1[480]
-
-

must be zero

- -
-
- -
-
- - - - -
uint8_t fat32_fsinfo::reserved2[12]
-
-

must be zero

- -
-
- -
-
- - - - -
uint32_t fat32_fsinfo::structSignature
-
-

must be 0X72, 0X72, 0X41, 0X61

- -
-
- -
-
- - - - -
uint8_t fat32_fsinfo::tailSignature[4]
-
-

must be 0X00, 0X00, 0X55, 0XAA

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structfat__boot-members.html b/libraries/SdFat/extras/html/structfat__boot-members.html deleted file mode 100644 index edd34f8..0000000 --- a/libraries/SdFat/extras/html/structfat__boot-members.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
fat_boot Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structfat__boot.html b/libraries/SdFat/extras/html/structfat__boot.html deleted file mode 100644 index b7435ea..0000000 --- a/libraries/SdFat/extras/html/structfat__boot.html +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - -SdFat: fat_boot Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
fat_boot Struct Reference
-
-
- -

Boot sector for a FAT12/FAT16 volume. - More...

- -

#include <FatStructs.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

uint8_t bootCode [448]
 
uint8_t bootSectorSig0
 
uint8_t bootSectorSig1
 
uint8_t bootSignature
 
uint16_t bytesPerSector
 
uint8_t driveNumber
 
uint8_t fatCount
 
char fileSystemType [8]
 
uint16_t headCount
 
uint32_t hidddenSectors
 
uint8_t jump [3]
 
uint8_t mediaType
 
char oemId [8]
 
uint8_t reserved1
 
uint16_t reservedSectorCount
 
uint16_t rootDirEntryCount
 
uint8_t sectorsPerCluster
 
uint16_t sectorsPerFat16
 
uint16_t sectorsPerTrack
 
uint16_t totalSectors16
 
uint32_t totalSectors32
 
char volumeLabel [11]
 
uint32_t volumeSerialNumber
 
-

Detailed Description

-

Boot sector for a FAT12/FAT16 volume.

-

Member Data Documentation

- -
-
- - - - -
uint8_t fat_boot::bootCode[448]
-
-

X86 boot code

- -
-
- -
-
- - - - -
uint8_t fat_boot::bootSectorSig0
-
-

must be 0X55

- -
-
- -
-
- - - - -
uint8_t fat_boot::bootSectorSig1
-
-

must be 0XAA

- -
-
- -
-
- - - - -
uint8_t fat_boot::bootSignature
-
-

0X29 if next three fields are valid

- -
-
- -
-
- - - - -
uint16_t fat_boot::bytesPerSector
-
-

The size of a hardware sector. Valid decimal values for this field are 512, 1024, 2048, and 4096. For most disks used in the United States, the value of this field is 512.

- -
-
- -
-
- - - - -
uint8_t fat_boot::driveNumber
-
-

Related to the BIOS physical drive number. Floppy drives are identified as 0x00 and physical hard disks are identified as 0x80, regardless of the number of physical disk drives. Typically, this value is set prior to issuing an INT 13h BIOS call to specify the device to access. The value is only relevant if the device is a boot device.

- -
-
- -
-
- - - - -
uint8_t fat_boot::fatCount
-
-

The number of copies of the FAT on the volume. The value of this field is always 2.

- -
-
- -
-
- - - - -
char fat_boot::fileSystemType[8]
-
-

A field with a value of either FAT, FAT12 or FAT16, depending on the disk format.

- -
-
- -
-
- - - - -
uint16_t fat_boot::headCount
-
-

Number of heads for interrupt 0x13. Not used otherwise.

- -
-
- -
-
- - - - -
uint32_t fat_boot::hidddenSectors
-
-

Count of hidden sectors preceding the partition that contains this FAT volume. This field is generally only relevant for media visible on interrupt 0x13.

- -
-
- -
-
- - - - -
uint8_t fat_boot::jump[3]
-
-

The first three bytes of the boot sector must be valid, executable x 86-based CPU instructions. This includes a jump instruction that skips the next non-executable bytes.

- -
-
- -
-
- - - - -
uint8_t fat_boot::mediaType
-
-

This dates back to the old MS-DOS 1.x media determination and is no longer usually used for anything. 0xF8 is the standard value for fixed (non-removable) media. For removable media, 0xF0 is frequently used. Legal values are 0xF0 or 0xF8-0xFF.

- -
-
- -
-
- - - - -
char fat_boot::oemId[8]
-
-

This is typically a string of characters that identifies the operating system that formatted the volume.

- -
-
- -
-
- - - - -
uint8_t fat_boot::reserved1
-
-

used by Windows NT - should be zero for FAT

- -
-
- -
-
- - - - -
uint16_t fat_boot::reservedSectorCount
-
-

The number of sectors preceding the start of the first FAT, including the boot sector. The value of this field is always 1.

- -
-
- -
-
- - - - -
uint16_t fat_boot::rootDirEntryCount
-
-

For FAT12 and FAT16 volumes, this field contains the count of 32-byte directory entries in the root directory. For FAT32 volumes, this field must be set to 0. For FAT12 and FAT16 volumes, this value should always specify a count that when multiplied by 32 results in a multiple of bytesPerSector. FAT16 volumes should use the value 512.

- -
-
- -
-
- - - - -
uint8_t fat_boot::sectorsPerCluster
-
-

Number of sectors per allocation unit. This value must be a power of 2 that is greater than 0. The legal values are 1, 2, 4, 8, 16, 32, 64, and 128. 128 should be avoided.

- -
-
- -
-
- - - - -
uint16_t fat_boot::sectorsPerFat16
-
-

Count of sectors occupied by one FAT on FAT12/FAT16 volumes. On FAT32 volumes this field must be 0, and sectorsPerFat32 contains the FAT size count.

- -
-
- -
-
- - - - -
uint16_t fat_boot::sectorsPerTrack
-
-

Sectors per track for interrupt 0x13. Not used otherwise.

- -
-
- -
-
- - - - -
uint16_t fat_boot::totalSectors16
-
-

This field is the old 16-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors32 must be non-zero. For FAT32 volumes, this field must be 0. For FAT12 and FAT16 volumes, this field contains the sector count, and totalSectors32 is 0 if the total sector count fits (is less than 0x10000).

- -
-
- -
-
- - - - -
uint32_t fat_boot::totalSectors32
-
-

This field is the new 32-bit total count of sectors on the volume. This count includes the count of all sectors in all four regions of the volume. This field can be 0; if it is 0, then totalSectors16 must be non-zero.

- -
-
- -
-
- - - - -
char fat_boot::volumeLabel[11]
-
-

A field once used to store the volume label. The volume label is now stored as a special file in the root directory.

- -
-
- -
-
- - - - -
uint32_t fat_boot::volumeSerialNumber
-
-

A random serial number created when formatting a disk, which helps to distinguish between disks. Usually generated by combining date and time.

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structfname__t-members.html b/libraries/SdFat/extras/html/structfname__t-members.html deleted file mode 100644 index f4faa77..0000000 --- a/libraries/SdFat/extras/html/structfname__t-members.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
fname_t Member List
-
-
- -

This is the complete list of members for fname_t, including all inherited members.

- - - - - - -
flagsfname_t
lenfname_t
lfnfname_t
seqPosfname_t
sfnfname_t
- - - - diff --git a/libraries/SdFat/extras/html/structfname__t.html b/libraries/SdFat/extras/html/structfname__t.html deleted file mode 100644 index dc8cd6e..0000000 --- a/libraries/SdFat/extras/html/structfname__t.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - -SdFat: fname_t Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
fname_t Struct Reference
-
-
- -

Internal type for Short File Name - do not use in user apps. - More...

- -

#include <FatFile.h>

- - - - - - - - - - - - -

-Public Attributes

uint8_t flags
 
size_t len
 
const char * lfn
 
uint8_t seqPos
 
uint8_t sfn [11]
 
-

Detailed Description

-

Internal type for Short File Name - do not use in user apps.

-

Member Data Documentation

- -
-
- - - - -
uint8_t fname_t::flags
-
-

Flags for base and extension character case and LFN.

- -
-
- -
-
- - - - -
size_t fname_t::len
-
-

length of Long File Name

- -
-
- -
-
- - - - -
const char* fname_t::lfn
-
-

Long File Name start.

- -
-
- -
-
- - - - -
uint8_t fname_t::seqPos
-
-

position for sequence number

- -
-
- -
-
- - - - -
uint8_t fname_t::sfn[11]
-
-

Short File Name

- -
-
-
The documentation for this struct was generated from the following file:
    -
  • Arduino/libraries/SdFat/src/FatLib/FatFile.h
  • -
-
- - - - diff --git a/libraries/SdFat/extras/html/structlong_directory_entry-members.html b/libraries/SdFat/extras/html/structlong_directory_entry-members.html deleted file mode 100644 index 5a3ba56..0000000 --- a/libraries/SdFat/extras/html/structlong_directory_entry-members.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
longDirectoryEntry Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structlong_directory_entry.html b/libraries/SdFat/extras/html/structlong_directory_entry.html deleted file mode 100644 index 912e497..0000000 --- a/libraries/SdFat/extras/html/structlong_directory_entry.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - -SdFat: longDirectoryEntry Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
longDirectoryEntry Struct Reference
-
-
- -

FAT long directory entry. - More...

- -

#include <FatStructs.h>

- - - - - - - - - - - - - - - - - - -

-Public Attributes

uint8_t attr
 
uint8_t chksum
 
uint16_t mustBeZero
 
uint16_t name1 [LDIR_NAME1_DIM]
 
uint16_t name2 [LDIR_NAME2_DIM]
 
uint16_t name3 [LDIR_NAME3_DIM]
 
uint8_t ord
 
uint8_t type
 
-

Detailed Description

-

FAT long directory entry.

-

Member Data Documentation

- -
-
- - - - -
uint8_t longDirectoryEntry::attr
-
-

Attributes - must be ATTR_LONG_NAME

- -
-
- -
-
- - - - -
uint8_t longDirectoryEntry::chksum
-
-

Checksum of name in the short dir entry at the end of the long dir set.

- -
-
- -
-
- - - - -
uint16_t longDirectoryEntry::mustBeZero
-
-

Must be ZERO. This is an artifact of the FAT "first cluster"

- -
-
- -
-
- - - - -
uint16_t longDirectoryEntry::name1[LDIR_NAME1_DIM]
-
-

Characters 1-5 of the long-name sub-component in this entry.

- -
-
- -
-
- - - - -
uint16_t longDirectoryEntry::name2[LDIR_NAME2_DIM]
-
-

Characters 6-11 of the long-name sub-component in this entry.

- -
-
- -
-
- - - - -
uint16_t longDirectoryEntry::name3[LDIR_NAME3_DIM]
-
-

Characters 12 and 13 of the long-name sub-component in this entry.

- -
-
- -
-
- - - - -
uint8_t longDirectoryEntry::ord
-
-

The order of this entry in the sequence of long dir entries associated with the short dir entry at the end of the long dir set.

-

If masked with 0X40 (LAST_LONG_ENTRY), this indicates the entry is the last long dir entry in a set of long dir entries. All valid sets of long dir entries must begin with an entry having this mask.

- -
-
- -
-
- - - - -
uint8_t longDirectoryEntry::type
-
-

If zero, indicates a directory entry that is a sub-component of a long name. NOTE: Other values reserved for future extensions.

-

Non-zero implies other directory entry types.

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structmaster_boot_record-members.html b/libraries/SdFat/extras/html/structmaster_boot_record-members.html deleted file mode 100644 index d2d01b7..0000000 --- a/libraries/SdFat/extras/html/structmaster_boot_record-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
masterBootRecord Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structmaster_boot_record.html b/libraries/SdFat/extras/html/structmaster_boot_record.html deleted file mode 100644 index 959dfa5..0000000 --- a/libraries/SdFat/extras/html/structmaster_boot_record.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - -SdFat: masterBootRecord Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
masterBootRecord Struct Reference
-
-
- -

Master Boot Record. - More...

- -

#include <FatStructs.h>

-
-Collaboration diagram for masterBootRecord:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - -

-Public Attributes

uint8_t codeArea [440]
 
uint32_t diskSignature
 
uint8_t mbrSig0
 
uint8_t mbrSig1
 
part_t part [4]
 
uint16_t usuallyZero
 
-

Detailed Description

-

Master Boot Record.

-

The first block of a storage device that is formatted with a MBR.

-

Member Data Documentation

- -
-
- - - - -
uint8_t masterBootRecord::codeArea[440]
-
-

Code Area for master boot program.

- -
-
- -
-
- - - - -
uint32_t masterBootRecord::diskSignature
-
-

Optional Windows NT disk signature. May contain boot code.

- -
-
- -
-
- - - - -
uint8_t masterBootRecord::mbrSig0
-
-

First MBR signature byte. Must be 0X55

- -
-
- -
-
- - - - -
uint8_t masterBootRecord::mbrSig1
-
-

Second MBR signature byte. Must be 0XAA

- -
-
- -
-
- - - - -
part_t masterBootRecord::part[4]
-
-

Partition tables.

- -
-
- -
-
- - - - -
uint16_t masterBootRecord::usuallyZero
-
-

Usually zero but may be more boot code.

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structmaster_boot_record__coll__graph.png b/libraries/SdFat/extras/html/structmaster_boot_record__coll__graph.png deleted file mode 100644 index 790e25c..0000000 Binary files a/libraries/SdFat/extras/html/structmaster_boot_record__coll__graph.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/structpartition_table-members.html b/libraries/SdFat/extras/html/structpartition_table-members.html deleted file mode 100644 index 98227a5..0000000 --- a/libraries/SdFat/extras/html/structpartition_table-members.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
partitionTable Member List
-
- - - - - diff --git a/libraries/SdFat/extras/html/structpartition_table.html b/libraries/SdFat/extras/html/structpartition_table.html deleted file mode 100644 index f058b19..0000000 --- a/libraries/SdFat/extras/html/structpartition_table.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - -SdFat: partitionTable Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
partitionTable Struct Reference
-
-
- -

MBR partition table entry. - More...

- -

#include <FatStructs.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Attributes

unsigned beginCylinderHigh: 2
 
uint8_t beginCylinderLow
 
uint8_t beginHead
 
unsigned beginSector: 6
 
uint8_t boot
 
unsigned endCylinderHigh: 2
 
uint8_t endCylinderLow
 
uint8_t endHead
 
unsigned endSector: 6
 
uint32_t firstSector
 
uint32_t totalSectors
 
uint8_t type
 
-

Detailed Description

-

MBR partition table entry.

-

A partition table entry for a MBR formatted storage device. The MBR partition table has four entries.

-

Member Data Documentation

- -
-
- - - - -
unsigned partitionTable::beginCylinderHigh
-
-

High bits cylinder for first block in partition.

- -
-
- -
-
- - - - -
uint8_t partitionTable::beginCylinderLow
-
-

Combine beginCylinderLow with beginCylinderHigh. Legal values are 0-1023. Only used in old PC BIOS.

- -
-
- -
-
- - - - -
uint8_t partitionTable::beginHead
-
-

Head part of Cylinder-head-sector address of the first block in the partition. Legal values are 0-255. Only used in old PC BIOS.

- -
-
- -
-
- - - - -
unsigned partitionTable::beginSector
-
-

Sector part of Cylinder-head-sector address of the first block in the partition. Legal values are 1-63. Only used in old PC BIOS.

- -
-
- -
-
- - - - -
uint8_t partitionTable::boot
-
-

Boot Indicator . Indicates whether the volume is the active partition. Legal values include: 0X00. Do not use for booting. 0X80 Active partition.

- -
-
- -
-
- - - - -
unsigned partitionTable::endCylinderHigh
-
-

High bits of end cylinder

- -
-
- -
-
- - - - -
uint8_t partitionTable::endCylinderLow
-
-

Combine endCylinderLow with endCylinderHigh. Legal values are 0-1023. Only used in old PC BIOS.

- -
-
- -
-
- - - - -
uint8_t partitionTable::endHead
-
-

head part of cylinder-head-sector address of the last sector in the partition. Legal values are 0-255. Only used in old PC BIOS.

- -
-
- -
-
- - - - -
unsigned partitionTable::endSector
-
-

Sector part of cylinder-head-sector address of the last sector in the partition. Legal values are 1-63. Only used in old PC BIOS.

- -
-
- -
-
- - - - -
uint32_t partitionTable::firstSector
-
-

Logical block address of the first block in the partition.

- -
-
- -
-
- - - - -
uint32_t partitionTable::totalSectors
-
-

Length of the partition, in blocks.

- -
-
- -
-
- - - - -
uint8_t partitionTable::type
-
-

Partition type. See defines that begin with PART_TYPE_ for some Microsoft partition types.

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structsetfill-members.html b/libraries/SdFat/extras/html/structsetfill-members.html deleted file mode 100644 index 741a2fc..0000000 --- a/libraries/SdFat/extras/html/structsetfill-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
setfill Member List
-
-
- -

This is the complete list of members for setfill, including all inherited members.

- - - -
csetfill
setfill(char arg)setfillinlineexplicit
- - - - diff --git a/libraries/SdFat/extras/html/structsetfill.html b/libraries/SdFat/extras/html/structsetfill.html deleted file mode 100644 index 6e66ad3..0000000 --- a/libraries/SdFat/extras/html/structsetfill.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - -SdFat: setfill Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
setfill Struct Reference
-
-
- -

type for setfill manipulator - More...

- -

#include <iostream.h>

- - - - -

-Public Member Functions

 setfill (char arg)
 
- - - -

-Public Attributes

char c
 
-

Detailed Description

-

type for setfill manipulator

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
setfill::setfill (char arg)
-
-inlineexplicit
-
-

constructor

-
Parameters
- - -
[in]argnew fill character
-
-
- -
-
-

Member Data Documentation

- -
-
- - - - -
char setfill::c
-
-

fill character

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structsetprecision-members.html b/libraries/SdFat/extras/html/structsetprecision-members.html deleted file mode 100644 index 5c61b75..0000000 --- a/libraries/SdFat/extras/html/structsetprecision-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
setprecision Member List
-
-
- -

This is the complete list of members for setprecision, including all inherited members.

- - - -
psetprecision
setprecision(unsigned int arg)setprecisioninlineexplicit
- - - - diff --git a/libraries/SdFat/extras/html/structsetprecision.html b/libraries/SdFat/extras/html/structsetprecision.html deleted file mode 100644 index 4f8a983..0000000 --- a/libraries/SdFat/extras/html/structsetprecision.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - -SdFat: setprecision Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
setprecision Struct Reference
-
-
- -

type for setprecision manipulator - More...

- -

#include <iostream.h>

- - - - -

-Public Member Functions

 setprecision (unsigned int arg)
 
- - - -

-Public Attributes

unsigned int p
 
-

Detailed Description

-

type for setprecision manipulator

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
setprecision::setprecision (unsigned int arg)
-
-inlineexplicit
-
-

constructor

Parameters
- - -
[in]argnew precision
-
-
- -
-
-

Member Data Documentation

- -
-
- - - - -
unsigned int setprecision::p
-
-

precision

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/structsetw-members.html b/libraries/SdFat/extras/html/structsetw-members.html deleted file mode 100644 index a9a782d..0000000 --- a/libraries/SdFat/extras/html/structsetw-members.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
setw Member List
-
-
- -

This is the complete list of members for setw, including all inherited members.

- - - -
setw(unsigned arg)setwinlineexplicit
wsetw
- - - - diff --git a/libraries/SdFat/extras/html/structsetw.html b/libraries/SdFat/extras/html/structsetw.html deleted file mode 100644 index 2863e93..0000000 --- a/libraries/SdFat/extras/html/structsetw.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - -SdFat: setw Struct Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
- -
- -

type for setw manipulator - More...

- -

#include <iostream.h>

- - - - -

-Public Member Functions

 setw (unsigned arg)
 
- - - -

-Public Attributes

unsigned w
 
-

Detailed Description

-

type for setw manipulator

-

Constructor & Destructor Documentation

- -
-
- - - - - -
- - - - - - - - -
setw::setw (unsigned arg)
-
-inlineexplicit
-
-

constructor

Parameters
- - -
[in]argnew width
-
-
- -
-
-

Member Data Documentation

- -
-
- - - - -
unsigned setw::w
-
-

width

- -
-
-
The documentation for this struct was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/sync_off.png b/libraries/SdFat/extras/html/sync_off.png deleted file mode 100644 index 3b443fc..0000000 Binary files a/libraries/SdFat/extras/html/sync_off.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/sync_on.png b/libraries/SdFat/extras/html/sync_on.png deleted file mode 100644 index e08320f..0000000 Binary files a/libraries/SdFat/extras/html/sync_on.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/tab_a.png b/libraries/SdFat/extras/html/tab_a.png deleted file mode 100644 index 3b725c4..0000000 Binary files a/libraries/SdFat/extras/html/tab_a.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/tab_b.png b/libraries/SdFat/extras/html/tab_b.png deleted file mode 100644 index e2b4a86..0000000 Binary files a/libraries/SdFat/extras/html/tab_b.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/tab_h.png b/libraries/SdFat/extras/html/tab_h.png deleted file mode 100644 index fd5cb70..0000000 Binary files a/libraries/SdFat/extras/html/tab_h.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/tab_s.png b/libraries/SdFat/extras/html/tab_s.png deleted file mode 100644 index ab478c9..0000000 Binary files a/libraries/SdFat/extras/html/tab_s.png and /dev/null differ diff --git a/libraries/SdFat/extras/html/tabs.css b/libraries/SdFat/extras/html/tabs.css deleted file mode 100644 index 9cf578f..0000000 --- a/libraries/SdFat/extras/html/tabs.css +++ /dev/null @@ -1,60 +0,0 @@ -.tabs, .tabs2, .tabs3 { - background-image: url('tab_b.png'); - width: 100%; - z-index: 101; - font-size: 13px; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; -} - -.tabs2 { - font-size: 10px; -} -.tabs3 { - font-size: 9px; -} - -.tablist { - margin: 0; - padding: 0; - display: table; -} - -.tablist li { - float: left; - display: table-cell; - background-image: url('tab_b.png'); - line-height: 36px; - list-style: none; -} - -.tablist a { - display: block; - padding: 0 20px; - font-weight: bold; - background-image:url('tab_s.png'); - background-repeat:no-repeat; - background-position:right; - color: #283A5D; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; - outline: none; -} - -.tabs3 .tablist a { - padding: 0 10px; -} - -.tablist a:hover { - background-image: url('tab_h.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - text-decoration: none; -} - -.tablist li.current a { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} diff --git a/libraries/SdFat/extras/html/unioncache__t-members.html b/libraries/SdFat/extras/html/unioncache__t-members.html deleted file mode 100644 index 7348ecf..0000000 --- a/libraries/SdFat/extras/html/unioncache__t-members.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - -SdFat: Member List - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
-
-
cache_t Member List
-
-
- -

This is the complete list of members for cache_t, including all inherited members.

- - - - - - - - - -
datacache_t
dircache_t
fat16cache_t
fat32cache_t
fbscache_t
fbs32cache_t
fsinfocache_t
mbrcache_t
- - - - diff --git a/libraries/SdFat/extras/html/unioncache__t.html b/libraries/SdFat/extras/html/unioncache__t.html deleted file mode 100644 index 124b011..0000000 --- a/libraries/SdFat/extras/html/unioncache__t.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - -SdFat: cache_t Union Reference - - - - - - - - - - -
-
- - - - - - -
-
SdFat -
-
-
- - - - - - -
-
- - -
- -
- -
-
- -
-
cache_t Union Reference
-
-
- -

Cache for an raw data block. - More...

- -

#include <FatVolume.h>

-
-Collaboration diagram for cache_t:
-
-
Collaboration graph
- - - - - - - - -
[legend]
- - - - - - - - - - - - - - - - - - -

-Public Attributes

uint8_t data [512]
 
dir_t dir [16]
 
uint16_t fat16 [256]
 
uint32_t fat32 [128]
 
fat_boot_t fbs
 
fat32_boot_t fbs32
 
fat32_fsinfo_t fsinfo
 
mbr_t mbr
 
-

Detailed Description

-

Cache for an raw data block.

-

Member Data Documentation

- -
-
- - - - -
uint8_t cache_t::data[512]
-
-

Used to access cached file data blocks.

- -
-
- -
-
- - - - -
dir_t cache_t::dir[16]
-
-

Used to access cached directory entries.

- -
-
- -
-
- - - - -
uint16_t cache_t::fat16[256]
-
-

Used to access cached FAT16 entries.

- -
-
- -
-
- - - - -
uint32_t cache_t::fat32[128]
-
-

Used to access cached FAT32 entries.

- -
-
- -
-
- - - - -
fat_boot_t cache_t::fbs
-
-

Used to access to a cached FAT boot sector.

- -
-
- -
-
- - - - -
fat32_boot_t cache_t::fbs32
-
-

Used to access to a cached FAT32 boot sector.

- -
-
- -
-
- - - - -
fat32_fsinfo_t cache_t::fsinfo
-
-

Used to access to a cached FAT32 FSINFO sector.

- -
-
- -
-
- - - - -
mbr_t cache_t::mbr
-
-

Used to access a cached Master Boot Record.

- -
-
-
The documentation for this union was generated from the following file: -
- - - - diff --git a/libraries/SdFat/extras/html/unioncache__t__coll__graph.png b/libraries/SdFat/extras/html/unioncache__t__coll__graph.png deleted file mode 100644 index 16bea1b..0000000 Binary files a/libraries/SdFat/extras/html/unioncache__t__coll__graph.png and /dev/null differ