# Google Colab Integration Manual Test Checklist

## Prerequisites
- [ ] Flow SDK installed and configured with FCP credentials
- [ ] Access to Google Colab account
- [ ] Terminal for running SSH commands

## Test 1: Basic Connection

1. **Launch GPU Instance**
   ```bash
   flow colab connect --instance-type a100 --hours 1
   ```
   - [ ] Command executes without errors
   - [ ] Progress updates show realistic timing (8-12 minutes)
   - [ ] SSH command is displayed clearly
   - [ ] Connection URL is displayed with token

2. **Establish SSH Tunnel**
   - [ ] Copy and run the SSH command in a new terminal
   - [ ] SSH connection establishes successfully
   - [ ] No errors about port binding

3. **Connect from Google Colab**
   - [ ] Open Google Colab notebook
   - [ ] Go to Runtime > Connect to local runtime
   - [ ] Paste the connection URL
   - [ ] Click Connect
   - [ ] Connection establishes successfully
   - [ ] GPU type shows in Colab (e.g., "Connected: A100")

4. **Verify GPU Access**
   ```python
   import torch
   print(torch.cuda.is_available())
   print(torch.cuda.get_device_name())
   ```
   - [ ] CUDA is available
   - [ ] Correct GPU name is displayed

## Test 2: Session Management

1. **List Sessions**
   ```bash
   flow colab sessions
   ```
   - [ ] Active session is listed
   - [ ] Session details are correct
   - [ ] SSH command and URL are shown

2. **Multiple Sessions**
   - [ ] Launch a second session with different GPU type
   - [ ] Both sessions appear in list
   - [ ] Each has unique session ID

3. **Disconnect Session**
   ```bash
   flow colab disconnect <session-id>
   ```
   - [ ] Session disconnects successfully
   - [ ] Colab shows disconnected state
   - [ ] Session removed from list

## Test 3: Error Handling

1. **Invalid Parameters**
   ```bash
   flow colab connect --instance-type invalid-gpu --hours 0.05
   ```
   - [ ] Clear validation error for hours
   - [ ] Clear error for invalid GPU type

2. **Network Issues**
   - [ ] Disconnect network during launch
   - [ ] Appropriate error message appears
   - [ ] Can recover when network returns

3. **SSH Connection Failure**
   - [ ] Try connecting without SSH tunnel
   - [ ] Colab fails to connect as expected
   - [ ] Clear instructions provided

## Test 4: Long Running Tasks

1. **Extended Session**
   ```bash
   flow colab connect --instance-type a100 --hours 8
   ```
   - [ ] Launch succeeds for 8-hour session
   - [ ] Connection remains stable
   - [ ] Can run long training jobs

2. **Session Persistence**
   - [ ] Variables persist across cell executions
   - [ ] GPU memory management works correctly
   - [ ] No unexpected disconnections

## Test 5: Performance

1. **Data Transfer**
   ```python
   # In Colab after connection
   import numpy as np
   large_array = np.random.rand(1000, 1000, 100)
   ```
   - [ ] Large arrays transfer without issues
   - [ ] Performance comparable to regular Colab

2. **Model Training**
   - [ ] Train a simple model
   - [ ] GPU utilization visible
   - [ ] Training speed as expected for GPU type

## Known Limitations

- [ ] Auto-tunnel feature shows "future feature" message
- [ ] Must manually run SSH command
- [ ] Session state not persisted between connections
- [ ] No automatic Colab notebook opening

## Sign-off

- Tester: ________________
- Date: ________________
- Flow SDK Version: ________________
- Issues Found: ________________